/** * 获取用户所得到的权限 * @param int $userId */ public function getUseRoleAct($userId) { $this->_modelUser = $this->_getGlobalData('Model_User', 'object'); $userInfo = $this->_modelUser->findById($userId); $userRolesArr = $userInfo['roles']; $userRolesArr = explode(',', $userRolesArr); #------用户act------# $userAct = $userInfo['act']; $userAct = $userAct ? explode(',', $userAct) : array(); #------用户act------# $dataList = $this->findAll(); foreach ($dataList as $key => $value) { if ($value['allow'] == RBAC_EVERYONE) { //如果为所有马上为true $dataList[$key]['selected'] = 1; continue; } $curRoles = explode(',', $value['allow']); $intersect = array_intersect($curRoles, $userRolesArr); if (count($intersect)) { $dataList[$key]['selected'] = 1; } else { if (in_array($value['value'], $userAct)) { $dataList[$key]['selected'] = 2; } else { $dataList[$key]['selected'] = 0; } } } return $dataList; }
private function _userEdit() { if ($this->_isPost()) { $updateArr = array('service_id' => $_POST['service_id'], 'department_id' => $_POST['department_id'], 'roles' => implode(',', $_POST['roles']), 'nick_name' => $_POST['nick_name'], 'date_updated' => CURRENT_TIME, 'order_vip_level' => count($_POST['order_vip_level']) ? implode(',', $_POST['order_vip_level']) : ''); if ($_POST['password']) { //更改密码 if ($_POST['password'] != $_POST['pwd_confirm']) { $this->_utilMsg->showMsg('两次密码输入不一致', -1, 2); } $updateArr['password'] = md5($_POST['password']); } if ($this->_modelUser->update($updateArr, "Id={$_POST['Id']}")) { $this->_modelUser->createCache(); $this->_utilMsg->showMsg('修改用户资料成功', 1, Tools::url(CONTROL, ACTION)); } else { $this->_utilMsg->showMsg('修改用户资料失败', 1); } } else { $departmentList = $this->_modelDepartment->findAll(); $departmentList = $this->_modelDepartment->getTtwoArrConvertOneArr($departmentList, 'Id', 'name'); $rolesList = $this->_modelRoles->findAll(); $rolesList = $this->_modelRoles->getTtwoArrConvertOneArr($rolesList, 'role_value', 'role_name'); $dataList = $this->_modelUser->findById($_GET['Id']); $dataList['roles'] = explode(',', $dataList['roles']); $this->_view->assign('selectedVipLevel', explode(',', $dataList['order_vip_level'])); $this->_view->assign('vipLevel', array(0, 1, 2, 3, 4, 5, 6)); $this->_view->assign('dataList', $dataList); $this->_view->assign('rolesList', $rolesList); $this->_view->assign('departmentList', $departmentList); $this->_view->set_tpl(array('body' => 'User/UserEdit.html')); $this->_utilMsg->createNavBar(); $this->_view->display(); } }
public function userdemoteAction() { $user = new Model_User(); if ($user->findById($this->getParamNumeric(AdminController::USER_PARAM))) { $user->demote(); $this->getLog()->info("Demoted {$user}"); } return $this->_helper->redirector('index'); }
/** * 编辑用户 */ public function cEdit() { $this->_modelUser = $this->getGlobal('model/User', 'Model_User'); if ($this->isPost()) { $postArr = array('id' => intval($this->getR('id')), 'vuser' => $this->getR('vuser'), 'pwd' => $this->getR('pwd'), 'pwd1' => $this->getR('pwd1'), 'role' => $this->getR('role'), 'login_count' => RegistryRequest::getInstance()->absInt('login_count')); $info = $this->_modelUser->edit($postArr); if ($info['status'] == 1) { $this->success($info['info'], $info['url']); } else { $this->error($info['info'], $info['url']); } } else { $this->_modelRole = $this->getGlobal('model/Role', 'Model_Role'); $roles = $this->_modelRole->getAll(); $this->assign('roleList', $roles); $dataList = $this->_modelUser->findById($this->getR('id')); $dataList['role'] = $dataList['role'] ? explode(',', $dataList['role']) : array(); $this->assign('dataList', $dataList); $this->display(VIEW_PAGE); } }
/** * 用户的额外模块权限 */ private function _userModelAct() { $moudleName = trim($_GET['moudle_name']); //模块标识名 if (empty($moudleName)) { $this->_utilMsg->showMsg('模块名为空', 1, 1, false); } $userInfo = $this->_modelUser->findById(intval($_GET['user_id'])); if (!$userInfo) { $this->_utilMsg->showMsg('无此用户', 1, 1, false); } $moudleAct = array(); //记录用户的所有 个人模块权限 if ($userInfo['moudle_act']) { $moudleAct = unserialize($userInfo['moudle_act']); } if ($this->_isPost()) { if ($_POST['Id'] && is_array($_POST['Id'])) { $moudleAct[$moudleName] = array_unique($_POST['Id']); } else { unset($moudleAct[$moudleName]); //清空没有权限的模块 } $updateArr = array('moudle_act' => serialize($moudleAct)); if ($this->_modelUser->update($updateArr, "Id={$_POST['user_id']}")) { //更新操作 $this->_modelUser->createCache(); $this->_utilMsg->showMsg('操作成功', 1, Tools::url(CONTROL, ACTION)); } else { $this->_utilMsg->showMsg('操作失败', 1); } } else { $actForCount = $moudleAct; $actForCount['Default'] = $userInfo['act'] ? explode(',', $userInfo['act']) : array(); $moudlesUrl = $this->_getMoudlesUrl($actForCount); //所有模块的链接 $this->_view->assign('moudlesUrl', $moudlesUrl); $_modelMoudle = $this->_getGlobalData('Model_Moudle', 'object'); $act = $_modelMoudle->getAct($moudleName); //获得此模块的全部act $checkBox = ''; //输出的内容 $userRoles = $userInfo['roles'] ? explode(',', $userInfo['roles']) : array(); //用户的所有角色 $userMoudleAct = is_array($moudleAct[$moudleName]) && $moudleAct[$moudleName] ? $moudleAct[$moudleName] : array(); //用户在此模块的个人权限 if ($act) { foreach ($act as &$control) { $checkBox .= '<tr><td align="left">'; $issetRoles = $control['act'] ? $control['act'] : array(); //此功能里有权限的角色 $checked = ''; if (array_intersect($userRoles, $issetRoles)) { //角色交集检查权限 $checked = 'checked="checked" disabled="disabled" '; } elseif (in_array($control['value'], $userMoudleAct)) { //检查是否有个人权限 $checked = 'checked="checked" '; } $checkBox .= "<input type='checkbox' value='{$control['value']}' name='Id[]' {$checked} /><b>{$control['name']}.{$control['value']}</b><hr />"; if ($control['class_methods']) { foreach ($control['class_methods'] as &$method) { $c_a = "{$control['value']}_{$method['value']}"; $issetRoles = $method['act'] ? $method['act'] : array(); //此功能里有权限的角色 $checked = ''; if (array_intersect($userRoles, $issetRoles)) { //角色交集检查权限 $checked = 'checked="checked" disabled="disabled" '; } elseif (in_array($c_a, $userMoudleAct)) { //检查是否有个人权限 $checked = 'checked="checked" '; } $checkBox .= " →<input type='checkbox' value='{$c_a}' name='Id[]' {$checked} />{$method['name']} .{$c_a}<br/>"; } } $checkBox .= '</td></tr>'; } } $this->_view->assign('checkBox', $checkBox); $this->_utilMsg->createNavBar(); $this->_view->set_tpl(array('body' => 'User/UserAct.html')); $this->_view->display(); } }
public function generateDiaryAction() { if ($this->getRequest()->isPost()) { $userid = $this->_getParam('id'); $user = Model_User::findById($userid); $diary = $user->Diaries; for ($day = 0; $day < 7; $day++) { $now = Zend_Date::now(); $date = $now->addDay($day); $diary[]->dateField = $date->toString('yyyy-MM-dd'); } $user->save(); } exit; }