Özellikler böyle şeyler için oldukça kullanışlıdır. Bununla birlikte, roller oluşturmanız ve programatik olarak izinler eklemeniz gerekiyorsa, veritabanını kendiniz kazmaya gerek yoktur.
Yeni bir kullanıcı rolü oluşturduğunuzda user_role_save()
, aktardığınız nesneyi atanan yeni kullanıcı rolü kimliği ile günceller. Bunun bir örneğini standard_install()
Standart kurulum profilindeki işlevde görebilirsiniz .
$admin_role = new stdClass();
$admin_role->name = 'administrator';
...
user_role_save($admin_role);
user_role_grant_permissions($admin_role->rid, array_keys(module_invoke_all('permission')));
Bu örnek, yeni bir kullanıcı rolü oluşturabileceğinizi ve ardından rid
doldurulan özelliğine erişebileceğinizi gösterir user_role_save()
. Ayrıca, bu role nasıl izin verileceğini de gösterir user_role_grant_permissions()
. Bu durumda, mevcut tüm izinleri 'yönetici' rolü üstleniyor.
Başkası tarafından oluşturulan bir kullanıcı rolünün kimliğini almanız gerekiyorsa, user_role_load_by_name()
o kullanıcı rolünün nesnesini almak için kullanabilirsiniz . O zaman sadece kimliği yakala $role->rid
.