Drupal上使用代码添加新角色,并赋予角色权限
2017-10-20 17:20
169 查看
Drupal虽然提供了界面操作用户和拥护权限,但有时候需要通过程序自动创建新角色和管理权限,下面就通过程序新增角色和管理角色权限。
Drupal上角色是保存在role表,而角色的权限则是保存在role_permission表。现在知道了保存的位置,程序上的实现就简单了。
$values = array();
$config['新角色']['permission'] = array(
1 => array('node' => 'access content')
);
if(isset($role_config[$role_name])) {
$transaction = isset($transaction) ? $transaction : db_transaction();
try{
$insert = db_insert('role');//创建角色
$state = $insert->fields(array(
'name' => $role_name,
'weight'=> 100,
))->execute();
if($state) {
foreach($role_config[$role_name]['permission'] as $val_arr) {
foreach($val_arr as $module => $permission) {
$values[] = array(
'rid' => $state,
'permission'=> $permission,
'module' => $module
);
}
}
$insert2 = db_insert('role_permission');//勾选角色拥有的权限
$insert2->fields(array('rid', 'permission','module'));
foreach($values as $value) {
$insert2->values($value);
}
$insert2->execute();
}
}catch(Exception $e) {
$transaction->rollback();
}
}
Drupal上角色是保存在role表,而角色的权限则是保存在role_permission表。现在知道了保存的位置,程序上的实现就简单了。
$values = array();
$config['新角色']['permission'] = array(
1 => array('node' => 'access content')
);
if(isset($role_config[$role_name])) {
$transaction = isset($transaction) ? $transaction : db_transaction();
try{
$insert = db_insert('role');//创建角色
$state = $insert->fields(array(
'name' => $role_name,
'weight'=> 100,
))->execute();
if($state) {
foreach($role_config[$role_name]['permission'] as $val_arr) {
foreach($val_arr as $module => $permission) {
$values[] = array(
'rid' => $state,
'permission'=> $permission,
'module' => $module
);
}
}
$insert2 = db_insert('role_permission');//勾选角色拥有的权限
$insert2->fields(array('rid', 'permission','module'));
foreach($values as $value) {
$insert2->values($value);
}
$insert2->execute();
}
}catch(Exception $e) {
$transaction->rollback();
}
}
相关文章推荐
- 规范 6.2 不要使用危险的许可与目标组合 说明: 有些许可和目标的组合会导致权限过大, 而这些权限本不应该被赋予。另外有些权限 必须只赋予给特定的代码。 1. 不要将AllPermission许可赋
- 使用T-SQL脚本在SQL Server创建角色,并给角色赋予相应权限
- 【代码学习】角色添加权限的方法,先删除,再添加。而不是用修改,这样很方便。
- 在Drupal 7中添加区块时,不能使用PHP代码的原因与解决办法
- QuickCSharp框架开发(20)------授权部分的代码以及如何使用授权 添加用户、角色与分配资源部分的代码暂且省略
- 为代码添加权限以及使用时的权限检查
- 使用T-SQL脚本在SQL Server创建角色,并给角色赋予相应权限
- 使用membership来进行角色与权限管理
- 使用PInvoke.NET插件为托管代码添加Win32 API签名
- 使用membership来进行角色与权限管理
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 使用membership来进行角色与权限管理
- 使用DirectoryServices给文件添加访问权限
- 使用membership来进行角色与权限管理
- 使用SQL语句赋予登录用户权限
- OD端//使用SQLyou数据库管理工具-------一次性 图文告诉你怎么改GM权限/角色属性/调经验金钱及掉宝等
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 转贴---》代码阅读总结之ASP.NET StartKit TimeTracker(角色权限)
- 使用membership(System.Web.Security)来进行角色与权限管理 (转)