Exemplo n.º 1
0
 public function updateUser(Request $request, Session $session, $view)
 {
     if (!$request->getParameter(SUBMIT_PARAM)) {
         $id = $request->getParameter('id');
         // get user info
         $service = new SecurityService();
         $userInfo = $service->getUser($id);
         // get role
         $selectedRole = $service->getRoleByUserId($id, 'r.id');
         $selectedRoleId = $selectedRole->id;
         self::dumpObject($userInfo, self::$_debug);
         $organizations = $service->getOrganizations(false, 'id, name');
         self::dumpObject($organizations, self::$_debug);
         $listOfOrganizations = array();
         foreach ($organizations as $idx => $organization) {
             $name = $organization->name;
             $id = $organization->id;
             $listOfOrganizations[$id] = $name;
         }
         self::dumpObject($listOfOrganizations, self::$_debug);
         $roles = $service->getRoles('id');
         $listOfRoles = array();
         foreach ($roles as $idx => $role) {
             $name = $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('activestatus', $status);
         $this->setAttribute('selected_status', $userInfo->is_active);
         $this->setAttribute('list_of_organizations', $listOfOrganizations);
         $this->setAttribute('selected_organization', $userInfo->organization_id);
         $this->setAttribute('user', $userInfo);
         $this->setAttribute('list_of_roles', $listOfRoles);
         $this->setAttribute('selected_role', $selectedRoleId);
         return new Template('update_user');
     } else {
         $responseCode = 1;
         $id = $request->getParameter('id');
         $email = $request->getParameter('email');
         $originalEmail = $request->getParameter('original_email');
         // duplicate check
         $result = $this->_dupeCheck($originalEmail, $email);
         $responseCode = $result['response_code'];
         if ($responseCode == -1) {
             $message = $result['message'];
         } else {
             $firstName = $request->getParameter('firstname');
             $lastName = $request->getParameter('lastname');
             $email = $request->getParameter('email');
             $organizationId = $request->getParameter('organizationid');
             $roleId = $request->getParameter('role_id');
             // update info
             $data = array('first_name' => $firstName, 'last_name' => $lastName, 'email' => $email, 'organization_id' => $organizationId, 'role_id' => $roleId);
             $loggedInUser = $this->_getCurrentUser();
             $currenUserId = $loggedInUser->id;
             if (strcmp($currenUserId, $id) != 0) {
                 $data['is_active'] = $request->getParameter('is_active');
             } elseif (strcmp($currenUserId, $id) == 0) {
                 $loggedInUser->email = $email;
                 $loggedInUser->organization_id = $organizationId;
                 $loggedInUser->first_name = $firstName;
                 $loggedInUser->last_name = $lastName;
             }
             $result = $this->_updateUser($id, $data);
         }
         $data = array('response_code' => $responseCode, 'message' => $message);
         return $this->showJsonResponse($data);
     }
 }