No Add Admin Role

Yalnızca kullanıcı ID 1’in yönetici rolü atamasına izin veren güvenli WordPress eklentisidir. Başka kullanıcılar admin yetkisine sahip olsa da veremez.

No Add Admin Role, WordPress kullanıcılarının yalnızca kullanıcı ID’si 1 olan (genellikle site sahibi) kişinin “administrator” (yönetici) rolünü atamasına izin veren, hafif ama etkili bir eklentidir. Diğer tüm kullanıcılar için bu rol görünmez ve atanamaz hale gelir.
Bu sayede istem dışı veya kötü niyetli yetki yükseltmelerinin önüne geçilir.

Çok kullanıcılı yapıya sahip WordPress siteleri yöneten ajanslar, freelancerlar ve kurumsal ekipler için idealdir.

Özellikler

  • Yalnızca kullanıcı ID’si 1 olan kişi yönetici rolü atayabilir

  • “Administrator” rolü, diğer kullanıcılar için görünmez hale gelir

  • Gönderilen formlar üzerinden yönetici rolü atanmaya çalışıldığında engellenir

  • Açık uyarı mesajı ile bilgilendirme yapılır

  • Eklenti kurulumu sonrası herhangi bir ayar gerektirmez

  • WordPress 5.0 ve üzeri tüm sürümlerle uyumludur

  • Dil desteği mevcuttur – Türkçe .po/.mo dosyalarıyla birlikte gelir

  • Tamamen açık kaynak kodludur

  1. WordPress yönetim paneline giriş yap.

  2. Eklentiler > Yeni Ekle menüsüne tıkla.

  3. Eklenti Yükle butonuna bas ve ZIP dosyasını seç.

  4. Şimdi Kur ve ardından Etkinleştir butonlarına tıkla.

Rol Filtreleme

Aşağıdaki filtre sayesinde kullanıcı ID’si 1 dışında kalanlar administrator rolünü görmez:

add_filter('editable_roles', function($roles) {
    if (get_current_user_id() !== 1) {
        unset($roles['administrator']);
    }
    return $roles;
});

Rol Atamasını Engelleme

POST üzerinden yapılan manuel rol atamalarını aşağıdaki kod ile engeller:

add_action('edit_user_profile_update', function($user_id) {
    if (get_current_user_id() !== 1 && $_POST['role'] === 'administrator') {
        wp_redirect(add_query_arg(['message' => 'naar_no_admin'], admin_url('user-edit.php?user_id=' . $user_id)));
        exit;
    }
});

Uyarı Mesajı

Yönetici rolü atamaya çalışıldığında kullanıcıya hata mesajı gösterilir:

add_action('admin_notices', function() {
    if (isset($_GET['message']) && $_GET['message'] === 'naar_no_admin') {
        echo '<div class="notice notice-error is-dismissible"><p>' . esc_html__('Yönetici rolünü atama yetkiniz yok.', 'no-add-admin-role') . '</p></div>';
    }
});