Update from Git Manager GUI
This commit is contained in:
@@ -192,20 +192,37 @@ class WBF_Roles {
|
||||
];
|
||||
}
|
||||
|
||||
/** Ist der aktuelle WP-User der Seiteninhaber (Superadmin)? */
|
||||
public static function is_wp_superadmin() {
|
||||
return current_user_can('administrator') || (is_multisite() && is_super_admin());
|
||||
/**
|
||||
* Gibt die WP-User-ID des echten Superadmins zurück.
|
||||
* Das ist immer der bei der WordPress-Installation angelegte erste Nutzer (ID 1).
|
||||
* Alle anderen WP-Administratoren sind KEINE Forum-Superadmins.
|
||||
*/
|
||||
public static function get_wp_superadmin_id() {
|
||||
// Primär: gespeicherte ID aus den Plugin-Einstellungen (falls manuell überschrieben)
|
||||
$saved_id = (int) get_option( 'wbf_superadmin_wp_id', 0 );
|
||||
if ( $saved_id > 0 ) return $saved_id;
|
||||
// Fallback: WP-Installations-User (ID 1)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/** Superadmin-Status erzwingen: Forum-User des WP-Admins immer auf superadmin setzen */
|
||||
/** Ist der aktuelle eingeloggte WP-User der echte Superadmin (nur ID 1 bzw. gespeicherte ID)? */
|
||||
public static function is_wp_superadmin() {
|
||||
if ( ! is_user_logged_in() ) return false;
|
||||
return get_current_user_id() === self::get_wp_superadmin_id();
|
||||
}
|
||||
|
||||
/**
|
||||
* Superadmin-Status erzwingen — aber NUR für den einen echten WP-Superadmin (ID 1).
|
||||
* Alle anderen WP-Admins können normale Forum-Rollen haben und behalten diese auch.
|
||||
*/
|
||||
public static function sync_superadmin() {
|
||||
if ( ! is_user_logged_in() ) return;
|
||||
if ( ! self::is_wp_superadmin() ) return;
|
||||
if ( ! self::is_wp_superadmin() ) return; // nur ID 1 kommt durch
|
||||
|
||||
$wp_user = wp_get_current_user();
|
||||
$forum_user = WBF_DB::get_user_by('email', $wp_user->user_email);
|
||||
$wp_user = wp_get_current_user();
|
||||
$forum_user = WBF_DB::get_user_by( 'email', $wp_user->user_email );
|
||||
if ( $forum_user && $forum_user->role !== self::SUPERADMIN ) {
|
||||
WBF_DB::update_user($forum_user->id, ['role' => self::SUPERADMIN]);
|
||||
WBF_DB::update_user( $forum_user->id, [ 'role' => self::SUPERADMIN ] );
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user