public function profileAction() { $this->disableLayout(); $request = $this->getRequest(); $id = $request->getParam('id'); $user = Modules_Core_Services_User::getById($id); $this->view->user = $user; $width = $request->getParam('width'); $align = strtolower($request->getParam('align')); switch ($align) { case 'left': $margin = '8px 0'; break; case 'right': $margin = '8px 0 8px auto'; break; case 'center': $margin = '8px auto'; default: break; } $this->view->margin = $margin; $this->view->id = $id; $this->view->width = $width; $this->view->align = $align; header('Content-type: application/x-javascript'); }
public function editAction() { $request = $this->getRequest(); $userId = $request->getParam('user_id'); $user = Modules_Core_Services_User::getById($userId); if (null == $user) { throw new Exception(); } /** * Hide user password */ $user['password'] = null; $this->view->userData = $user; $roles = Modules_Core_Services_Role::getAllRoles(); $this->view->roles = $roles; if ($request->isPost()) { $userData = $request->getPost('user'); $userData = Modules_Core_Services_User::validate($userData); /** * Check user exist */ if ($userData['username'] && Modules_Core_Services_User::getByUsername($userData['username'], $userId)) { $userData['messages_error'] = true; $userData['messages']['username'] = '******'; } /** * Check user exist */ if ($userData['email'] && Modules_Core_Services_User::getByEmail($userData['email'], $userId)) { $userData['messages_error'] = true; $userData['messages']['email'] = 'user_email_exist'; } if (isset($userData['messages_error']) && $userData['messages_error']) { $this->view->errorMessages = $userData['messages']; $userData['user_id'] = $userId; $this->view->userData = $userData; return; } $salt = $user['salt']; $user = array('user_id' => $userId, 'username' => $userData['username'], 'password' => md5(md5($userData['password']) . $salt), 'email' => $this->view->STRING->escape($userData['email']), 'fullname' => $this->view->STRING->escape($userData['fullname']), 'salt' => $salt, 'status' => $this->view->STRING->escape($userData['status']), 'role_id' => $userData['role_id']); Modules_Core_Services_User::update($user); Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('user_actions_edit_success')); $this->redirect($this->view->url('core_user_edit', $user)); } }
public function userAction() { $request = $this->getRequest(); $userId = $request->getParam('user_id'); $user = Modules_Core_Services_User::getById($userId); if (null == $user) { return; } $this->view->user = $user; $act = $request->getParam('act'); if ($request->isPost()) { $this->setNoRender(); $this->disableLayout(); $mod = $request->getPost('mod'); $this->view->mod = $mod; $controllers = Modules_Core_Services_Action::getDbActionsByModule($mod); switch ($act) { case 'save': /** * Reset rule for user */ Modules_Core_Services_Rule::reset('user', $user['user_id'], $mod); $actions = $request->getPost('actions'); if ($controllers) { foreach ($controllers as $index => $controller) { if ($controller['actions']) { foreach ($controller['actions'] as $indexAction => $controllerAction) { $allow = 0; if ($actions) { foreach ($actions as $action) { if ($mod . '_' . $controller['controller_id'] . '_' . $controllerAction['action_id'] == $action) { $allow = 1; } } } $rule = array('module_id' => $mod, 'controller_id' => $controller['controller_id'], 'action_id' => $controllerAction['action_id'], 'object_type' => 'user', 'object_id' => $user['user_id'], 'allow' => $allow); $ruleId = Modules_Core_Services_Rule::add($rule); } } } } $this->getResponse()->setBody('RESULT_OK'); return; break; default: $dbUserRules = Modules_Core_Services_Rule::getRules('user', $user['user_id']); $dbRoleRules = Modules_Core_Services_Rule::getRules('role', $user['role_id']); $dbRules = array_merge($dbUserRules, $dbRoleRules); $this->view->dbRules = $dbRules; $this->view->controllers = $controllers; $viewFile = ROOT_DIR . DS . 'templates' . DS . $this->view->APP_TEMPLATE . DS . 'modules' . DS . 'core' . DS . 'permission' . DS . 'user.ajax.phtml'; $response = $this->view->render($viewFile); $this->getResponse()->setBody($response); return; break; } } $modules = Modules_Core_Services_Module::getModulesInstalled(); /** * Add module core to the top array */ $modules = array_pad($modules, -count($modules) - 1, array('module_id' => 'core')); $this->view->modules = $modules; }