/** * 允许写入检查 - 角色和细粒度权限越权检查 */ function allow_write($fields) { global $_LANG, $_PRIV; /* 提交的管理员的角色信息 */ $role_info = info_role(array('role_id' => $fields['role_id'])); /* 无效的角色信息 */ if (empty($role_info)) { sys_msg($_LANG['lawless_submit']); } /* 对提交的管理员的角色进行越权检查(当前管理员角色必须大于提交的角色) */ $filter1 = array('info' => $_PRIV['role']); $filter2 = array('info' => $role_info); if (cmp_role($filter1, $filter2) != '>') { sys_msg($_LANG['lawless_submit']); } /* 对提交的管理员的细粒度权限进行越权检查(当前管理员细粒度权限必须大于等于提交的细粒度权限) */ $filter1 = array('privilege_ids' => admin_privilege_ids()); $filter2 = array('privilege_ids' => $_POST['privilege_ids']); $flag = cmp_privilege($filter1, $filter2); if ($flag == '<' || $flag == false) { sys_msg($_LANG['lawless_submit']); } }
/* 参照信息 */ $filter = array(); $filter['table'] = tname('role'); $filter['primary'] = 'role_id'; $filter['primary_id'] = $_POST['id']; /* 节点移动 */ if ($_POST['updown'] == 'up') { lrtree_umove($filter) ? make_json_ok() : make_json_fail(); } else { lrtree_dmove($filter) ? make_json_ok() : make_json_fail(); } } elseif ($_REQUEST['act'] == 'privtable') { /* 权限检查 */ admin_privilege_valid('role.php', 'list'); /* 上级角色信息 */ $info_p = info_role(array('role_id' => $_GET['prole_id'])); /* 允许获取权限表检查 */ allow_privtable($info_p); /* 角色权限IDS */ $role_priv_ids = all_role_privilege_id(array('role_id' => $info_p['role_id'])); /* 角色权限表 */ if (empty($role_priv_ids)) { exit('<div class="tips-div"><span>' . $_LANG['str_role_nopriv'] . '</span></div>'); } else { exit(html_privilege_table('privilege_ids', '', $role_priv_ids)); } } else { /* 权限检查 */ admin_privilege_valid('role.php', 'list'); /* 取得管理员的非增加、列表操作 */ $m_aa = admin_module_acts('role.php');