Esempio n. 1
0
/**
 * 允许写入检查 - 角色和细粒度权限越权检查
 */
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']);
    }
}
Esempio n. 2
0
    /* 参照信息 */
    $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');