allow_edit($tpl['admin']); /* HTML 控件 */ ctl_fill('edit'); /* 初始化页面信息 */ $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');
/* HTML 控件 */ $tpl['formc_role'] = '<h2>' . f($info_p['name'], 'html') . '</h2>'; $tpl['html_privilege_table'] = html_privilege_table('privilege_ids', $seled_priv_ids, $shows_priv_ids); /* 初始化页面信息 */ $tpl['_body'] = 'edit'; } elseif ($_REQUEST['act'] == 'update') { /* 权限检查 */ admin_privilege_valid('role.php', 'edit'); /* 角色信息 */ $info = info_role(array('role_id' => $_POST['role_id'])); /* 允许编辑检查 */ allow_edit($info); /* 数据提取并初始化$_POST */ $fields = post_role('edit'); /* 允许写入检查 */ allow_write(info_parent_role(array('info' => $info))); /* ------ 当对角色的某一权限撤销时,其下级角色对该权限的拥有权也将被撤销 ---- */ /* 取得提交的角色丢失的权限IDS */ $role_privilege_ids = all_role_privilege_id(array('role_id' => $info['role_id'])); $lost_privilege_ids = array_diff($role_privilege_ids, $_POST['privilege_ids']); /* 删除角色小于被编角色的且权限在 $lost_privilege_ids 中的权限 */ $sub_role_ids = sub_role_id(array('info' => $info), false); del_role_privilege(array('role_ids' => $sub_role_ids, 'privilege_ids' => $lost_privilege_ids)); /* ---------------------------------- END ----------------------------------- */ /* 数据更新 */ if ($db->update(tname('role'), $fields, 'role_id=' . $info['role_id'])) { /* 删除角色权限 */ del_role_privilege(array('role_id' => $info['role_id'])); /* 写入角色权限 */ post_privilege_insert($info['role_id']); /* 写入日志 */