Esempio n. 1
0
 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);
     }
 }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
 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);
     }
 }