public function registerAction() { $request = $this->getRequest(); 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'])) { $userData['messages_error'] = true; $userData['messages']['username'] = '******'; } /** * Check user exist */ if ($userData['email'] && Modules_Core_Services_User::getByEmail($userData['email'])) { $userData['messages_error'] = true; $userData['messages']['email'] = 'user_email_exist'; } if (isset($userData['messages_error']) && $userData['messages_error']) { $this->view->errorMessages = $userData['messages']; $this->view->userData = $userData; return; } $config = Gio_Core_Module::getConfig('core', true); if (!isset($config['user']['default_role_id']) || null == ($role = Modules_Core_Services_Role::getById($config['user']['default_role_id']))) { return; } $salt = md5(time()); $user = array('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' => 'active', 'created_date' => date('Y-m-d H:i:s'), 'role_id' => $role['role_id']); $userId = Modules_Core_Services_User::add($user); /** * Send welcome mail */ Modules_Core_Services_User::registerSuccess($user['username'], $user['email']); Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('user_register_success')); $this->redirect($this->view->url('core_user_register')); } }
public function editAction() { $request = $this->getRequest(); $roleId = $request->getParam('role_id'); $role = Modules_Core_Services_Role::getById($roleId); if (null == $role) { throw new Exception(); } $this->view->roleData = $role; if ($request->isPost()) { $roleData = $request->getPost('role'); $roleData = Modules_Core_Services_Role::validate($roleData); if (isset($roleData['messages_error']) && $roleData['messages_error']) { $this->view->errorMessages = $roleData['messages']; $roleData['role_id'] = $roleId; $this->view->roleData = $roleData; return; } $salt = $role['salt']; $role = array('role_id' => $roleId, 'name' => $this->view->STRING->escape($roleData['name']), 'description' => $this->view->STRING->escape($roleData['description']), 'status' => $this->view->STRING->escape($roleData['status'])); Modules_Core_Services_Role::update($role); Gio_Core_Messenger::getInstance()->addMessage($this->view->TRANSLATOR->translator('role_actions_edit_success')); $this->redirect($this->view->url('core_role_edit', $role)); } }
public function roleAction() { $request = $this->getRequest(); $roleId = $request->getParam('role_id'); $role = Modules_Core_Services_Role::getById($roleId); if (null == $role) { return; } $this->view->role = $role; $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('role', $role['role_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' => 'role', 'object_id' => $role['role_id'], 'allow' => $allow); $ruleId = Modules_Core_Services_Rule::add($rule); } } } } $this->getResponse()->setBody('RESULT_OK'); return; break; default: $dbRoleRules = Modules_Core_Services_Rule::getRules('role', $role['role_id']); $dbRules = $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 . 'role.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; }