public function execute(Request $request, Session $session, $view) { $this->addMeta('Content-Type', 'text/html; charset=UTF-8'); // include css stylesheets $this->addCss('styles/styles.css'); $this->addCss('styles/menu.css'); $this->addCss('styles/table_style.css'); if (isset($user)) { $view->setEntry('onSuccess'); return $view; } if (!$request->getParameter(SUBMIT_PARAM)) { $view->setEntry('execute'); } else { $username = $request->getParameter('username'); $password = $request->getParameter('password'); // Authenticat user $service = new SecurityService(); $userInfo = $service->auth($username, $password); if (!$userInfo) { $this->_setError('invalid_login', 'Invalid login info!'); $view->setEntry('onError'); } else { $isActive = $userInfo->is_active; if (strcmp($isActive, '0') == 0) { $this->_setError('invalid_login', 'This user has been de-activated!'); $view->setEntry('onError'); return $view; } // set user info into the session $user = new Model(); $user->username = $username; $userInfoArray = get_object_vars($userInfo); foreach ($userInfoArray as $k => $v) { $user->{$k} = $v; } // get access control info $userId = $userInfo->id; $acl = $service->getAcl($userId); if (!isset($acl)) { self::$_logger->warn('This user has no roles...'); } else { $user->roles = $acl; } self::$_logger->debug($user, false, false, true); $session->set('user', $user); $view->setEntry('onSuccess'); } } return $view; }
public function removeOrganization(Request $request, Session $session, $view) { if (!$request->getParameter(SUBMIT_PARAM)) { return new Template('remove_organization'); } else { $id = $request->getParameter('id'); $service = new SecurityService(); try { $result['response_code'] = 1; $service->removeOrganization($id); } catch (Exception $ex) { $result['response_code'] = -1; $message = $ex->getMessage(); if (preg_match('/user_roles/', $message)) { $result['message'] = 'This organization can not be removed because it already has at least 1 user.'; } else { $result['message'] = 'This organization can not be removed. Error message: ' . $message; } } return $this->showJsonResponse($result); } }
public function createUser(Request $request, Session $session, $view) { if (!$request->getParameter(SUBMIT_PARAM)) { $service = new SecurityService(); $organizations = $service->getOrganizations(false, 'id, name'); self::dumpObject($organizations, self::$_debug); $listOfOrganizations = array(); foreach ($organizations as $idx => $organization) { $name = trim($organization->name); $id = $organization->id; $listOfOrganizations[$id] = $name; } $listOfOrganizations[0] = '=== Select One ==='; ksort($listOfOrganizations); self::dumpObject($listOfOrganizations, self::$_debug); $roles = $service->getRoles('id'); $listOfRoles = array(); foreach ($roles as $idx => $role) { $name = trim($role->name); $id = $role->id; $listOfRoles[$id] = $name; } $listOfRoles[0] = '=== Select One ==='; ksort($listOfRoles); self::dumpObject($listOfRoles, self::$_debug); $status = array(1 => 'Yes', 0 => 'No'); $this->setAttribute('list_of_roles', $listOfRoles); $this->setAttribute('activestatus', $status); $this->setAttribute('selected_status', 0); $this->setAttribute('list_of_organizations', $listOfOrganizations); $this->setAttribute('selected_organization', 0); return new Template('create_user'); } else { $responseCode = 1; $id = $request->getParameter('id'); $email = $request->getParameter('email'); // duplicate check $result = $this->_dupeCheck(false, $email); $responseCode = $result['response_code']; if ($responseCode == -1) { $message = $result['message']; } else { $firstName = trim($request->getParameter('firstname')); $lastName = trim($request->getParameter('lastname')); $email = trim($request->getParameter('email')); $organizationId = $request->getParameter('organizationid'); $password = trim($request->getParameter('password')); $isActive = $request->getParameter('is_active'); $roleId = $request->getParameter('role_id'); // update info $data = array('first_name' => $firstName, 'last_name' => $lastName, 'email' => $email, 'organization_id' => $organizationId, 'password' => $password, 'is_active' => $isActive); $result = $this->_createUser($data, $roleId); $responseCode = $result['response_code']; } $data = array('response_code' => $responseCode, 'message' => $message); return $this->showJsonResponse($data); } }
public function updateRolePermission(Request $request, Session $session, $view) { $service = new SecurityService(); if (!$request->getParameter(SUBMIT_PARAM)) { $id = $request->getParameter('id'); $info = $service->getRolePermissionById($id); $this->setAttribute('id', $id); $this->setAttribute('role_id', $request->getParameter('role_id')); $this->setAttribute('original_permission_handle', $info->permission); $this->setAttributes(get_object_vars($info)); return new Template('update_role_permission'); } else { $id = $request->getParameter('id'); $roleId = $request->getParameter('role_id'); $orginalPermissionHandle = $request->getParameter('original_permission_handle'); $permission = $request->getParameter('permission'); $info = $service->getRolePermissionByHandle($roleId, $permission); $permissionName = $info->permission; if (!empty($info) && strcmp($permissionName, $orginalPermissionHandle) != 0) { $result['response_code'] = -1; $result['message'] = 'This permission handle is taken. Please enter a different one.'; } else { $responseCode = 1; self::$_logger->debug('pattern = ' . $request->getParameter('pattern')); $data = $request->getParameters(true); $service->updateRolePermission($id, $data); $result['response_code'] = $responseCode; } return $this->showJsonResponse($result); } }