欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Drupal 7: 编程创建用户角色并设置角色权限

shiping1 的头像

Drupal 7: 编程创建用户角色并设置角色权限

 

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

普通分类: