public function allot() { $username = $_GET['user']; $user_id = $_GET['user_id']; $uinfo = mod_member::get_oneamdinbyuser_id($user_id); if ($uinfo['user_name'] != $username) { mod_login::message('对不起,非法操作'); } if ($_POST['submit']) { $sright = r_serialize(forrightserialize($_POST['action_code'])); mod_member::saverights($sright, $user_id); mod_login::message('权限赋予成功'); } else { $rightlist = mod_menu::get_user_action(); $haveright = mod_member::get_right($user_id); $role['action_list'] = forunrightserialize(r_unserialize($haveright)); pm_tpl::assign('priv_arr', $rightlist); pm_tpl::assign('role', $role); pm_tpl::assign('uinfo', $uinfo); pm_tpl::assign('ur_here', '分派权限'); $action_link = array('href' => '?c=member&a=member_list', 'text' => '管理员列表'); pm_tpl::assign('action_link', $action_link); pm_tpl::display('member_allot'); } }
function r_serialize($array, $ret = '', $i = 1) { if (!is_array($array)) { return null; } foreach ($array as $k => $v) { if (is_array($v)) { $next = $i + 1; $ret .= "{$k}\t"; $ret = r_serialize($v, $ret, $next); $ret .= "\n{$i}\n"; } else { $ret .= "{$k}\t{$v}\n{$i}\n"; } } if (substr($ret, -3) == "\n{$i}\n") { $ret = substr($ret, 0, -3); } return $ret; }
public static function member_save_role($user_id, $role_id, $role_rights) { $memberinfo = self::get_oneamdinbyuser_id($user_id); $rights = $memberinfo['rights']; $rights = forunrightserialize(r_unserialize($rights)); $roles_right = forunrightserialize(r_unserialize($role_rights)); $newright = array_merge($rights, $roles_right); $newright = r_serialize(forrightserialize($newright)); pm_db::query("UPDATE iosadm_admin_user SET role_id={$role_id},rights='{$newright}' WHERE user_id={$user_id}"); }