Bagaimana saya bisa memeriksa apakah pengguna memiliki peran tertentu?
Saya menemukan ini tetapi untuk Drupal 6.
Karena Anda sudah menemukan posting itu , pastikan Anda juga membaca komentar. Ini dengan jelas menjelaskan mengapa memeriksa izin direkomendasikan daripada memeriksa peran. Saat Anda menggunakan izin, Anda dapat menetapkan izin itu ke beberapa peran, yang membuat sistem Anda lebih fleksibel. Juga, ingatlah bahwa peran dapat diubah namanya, yang akan merusak kode Anda.
Yang mengatakan, jika Anda ingin memeriksa peran, Anda dapat melakukan ini:
// Load the currently logged in user.
global $user;
// Check if the user has the 'editor' role.
if (in_array('editor', $user->roles)) {
// do fancy stuff
}
Untuk memeriksa apakah pengguna saat ini memiliki peran tunggal atau peran ganda apa pun, cara yang bagus adalah dengan melakukan:
sumber
Pembaruan untuk versi Drupal> = 7.36
Anda dapat menggunakan fungsi user_has_role dari Drupal API https://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_has_role/7 .
Coba contoh ini:
sumber
Anda dapat menginstal devel module dan melakukan dpm ($ user). Ini akan mencetak array dengan semua informasi pengguna termasuk peran pengguna.
Dari larik ini, Anda dapat menemukan posisi larik "peran" dan menggunakannya dalam modul Anda untuk menemukan peran pengguna.
sumber
Untuk menjadi futureproof jika nama peran berubah, yang terbaik adalah memeriksa id peran (menyingkirkan) yang dapat ditemukan di tabel peran dalam database.
Jika Anda ingin memeriksa peran dengan rid 16, lakukan:
sumber
Berikut kode aktual dari komentar yang disebut dalam jawaban yang diterima sebagai praktik terbaik
sumber
Anda dapat memeriksa peran pengguna dengan print_r ($ user) dan hasilnya Anda akan mendapatkan sesuatu seperti ini
sumber
untuk memeriksa apakah pengguna memiliki peran tertentu:
sumber
sumber
Jawaban di atas tidak berfungsi, tidak yakin cara, saya menemukan posting ini dan kode harus `
// Periksa untuk melihat apakah $ user memiliki peran administrator. if (in_array ('administrator', array_values ($ user-> peran)))) {// Lakukan sesuatu. }?> `
sumber