欢迎各位兄弟 发布技术文章
这里的技术是共享的
Drupal中如何编程创建用户角色并设置角色权限呢?
以下是摘自profiles/standard/standard.install的代码,通过该代码可以可以很直观了解创建和设置权限的过程。
// Enable default permissions for system roles.
// 设置系统用户(匿名用户和注册用户)的默认权限
$filtered_html_permission = filter_permission_name($filtered_html_format);
user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access content', 'access comments', $filtered_html_permission));
user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, array('access content', 'access comments', 'post comments', 'skip comment approval', $filtered_html_permission));
// Create a default role for site administrators, with all available permissions assigned.
// 创建网站管理员角色,并分配所有权限
$admin_role = new stdClass(); // 创建标准类
$admin_role->name = 'administrator'; // 设置角色名称
$admin_role->weight = 2; // (可选)设置角色显示权重,即在admin/people/permissions/roles页面中的显示顺序
user_role_save($admin_role); // 创建角色
user_role_grant_permissions($admin_role->rid, array_keys(module_invoke_all('permission'))); // 分配权限
// Set this as the administrator role.
variable_set('user_admin_role', $admin_role->rid);
// Assign user 1 the "administrator" role.
// 设置uid为1的用户(网站管理员)的角色
db_insert('users_roles')
->fields(array('uid' => 1, 'rid' => $admin_role->rid))
->execute();
来自 http://drupal.milkythinking.com/drupal7/programmatically-create-roles-and-grant-permissions