Example #1
0
/**
 * 删除管理员
 *
 * @params arr  $filter  过滤条件
 */
function del_admin($filter)
{
    global $_LANG;
    /* 根据管理员ID删除 */
    if (is_numeric($filter['admin_id']) && intval($filter['admin_id']) > 0) {
        /* 初始化 */
        $admin_id = intval($filter['admin_id']);
        /* 系统帐号,保留 */
        if ($admin_id == 1) {
            return array('error' => 1, 'message' => $_LANG['lawless_submit']);
        }
        /* 删除管理员权限 */
        del_admin_privilege(array('admin_id' => $admin_id));
        /* 重置管理员日志中的管理员ID */
        $GLOBALS['db']->update(tname('admin_log'), array('admin_id' => '0'), 'admin_id=' . $admin_id);
        /* 删除管理员 */
        $GLOBALS['db']->delete(tname('admin'), 'admin_id=' . $admin_id);
        return array('error' => 0, 'message' => $_LANG['del_ok']);
    }
    return array('error' => 1, 'message' => $_LANG['fail_del']);
}
Example #2
0
    $tpl['_body'] = 'edit';
} elseif ($_REQUEST['act'] == 'update') {
    /* 权限检查 */
    admin_privilege_valid('admin.php', 'edit');
    /* 管理员信息(连表角色,拥有信任的角色信息) */
    $info = info_admin(array('admin_id' => $_POST['admin_id']));
    /* 允许编辑检查 */
    allow_edit($info);
    /* 数据提取并初始化$_POST */
    $fields = post_admin('edit');
    /* 允许写入检查 */
    allow_write($fields);
    /* 数据更新 */
    if ($db->update(tname('admin'), $fields, 'admin_id=' . $info['admin_id'])) {
        /* 更新管理员权限 - 准备 - 删除管理员细粒度权限(仅删除所有在当前管理员的细粒度权限里的权限) */
        del_admin_privilege(array('admin_id' => $info['admin_id'], 'privilege_ids' => admin_privilege_ids()));
        /* 更新管理员权限 */
        post_privilege_insert($info['admin_id']);
        /* 初始化管理员的权限文件 */
        init_privilege_sys_pfile($info['username']);
        /* 写入日志和系统提示 */
        admin_log(admin_privilege_name_fk('admin.php', 'edit') . ': ' . $info['name']);
        make_json_ok();
    }
} elseif ($_REQUEST['act'] == 'ufield') {
    /* 权限检查 */
    admin_privilege_valid('admin.php', 'edit');
    /* 更新字段 - 管理员姓名,管理员帐号 */
    if (in_array($_POST['field'], array('name', 'username'))) {
        /* 数据检查 */
        post_admin_check(array($_POST['field'] => $_POST['val']));
Example #3
0
/**
 * 删除权限
 *
 * @params arr  $filter  过滤条件
 */
function del_privilege($filter)
{
    global $_LANG;
    /* 根据权限ID删除 */
    if (is_numeric($filter['privilege_id']) && intval($filter['privilege_id']) > 0) {
        /* 删除管理员权限和角色权限 */
        del_admin_privilege(array('privilege_id' => $filter['privilege_id']));
        del_role_privilege(array('privilege_id' => $filter['privilege_id']));
        /* 删除权限 */
        $GLOBALS['db']->delete(tname('privilege'), 'privilege_id=' . intval($filter['privilege_id']));
        return array('error' => 0, 'message' => $_LANG['del_ok']);
    }
    /* 根据模块ID删除 */
    if (is_numeric($filter['module_id']) && intval($filter['module_id']) > 0) {
        /* 取得模块的所有权限 */
        $priv_ids = privilege_ids(array('module_id' => $filter['module_id']));
        /* 删除管理员权限和角色权限 */
        del_admin_privilege(array('privilege_ids' => $priv_ids));
        del_role_privilege(array('privilege_ids' => $priv_ids));
        /* 删除权限 */
        $GLOBALS['db']->delete(tname('privilege'), 'module_id=' . intval($filter['module_id']));
        return array('error' => 0, 'message' => $_LANG['del_ok']);
    }
    return array('error' => 1, 'message' => $_LANG['fail_del']);
}