示例#1
0
 /**
  * Edit group action
  * @param int $groupId
  */
 public function putShow($groupId)
 {
     \Core\Services\FilterData::removeHtmlExclude();
     $groupname = Input::get('groupname');
     $permissions = array();
     $errors = $this->_validateGroup(Input::get('permission'), $groupname, $permissions);
     if (!empty($errors)) {
         return Response::json(array('groupUpdated' => false, 'errorMessages' => $errors));
     } else {
         try {
             $group = Sentry::getGroupProvider()->findById($groupId);
             $group->name = $groupname;
             $group->permissions = $permissions;
             $permissions = empty($permissions) ? '' : json_encode($permissions);
             // delete permissions in db
             DB::table('groups')->where('id', $groupId)->update(array('permissions' => $permissions));
             if ($group->save()) {
                 $message = array('groupUpdated' => true, 'message' => trans('core::groups.messages.success'), 'messageType' => 'success', 'redirectUrl' => URL::route('listGroups'));
                 \Session::put('message', $message);
                 return Response::json($message);
             } else {
                 return Response::json(array('groupUpdated' => false, 'message' => trans('core::groups.messages.try'), 'messageType' => 'danger'));
             }
         } catch (\Cartalyst\Sentry\Groups\NameRequiredException $e) {
         } catch (\Cartalyst\Sentry\Groups\GroupExistsException $e) {
             return Response::json(array('groupUpdated' => false, 'message' => trans('core::groups.messages.exists'), 'messageType' => 'danger'));
         }
     }
 }
示例#2
0
 /**
  * Update user account
  * @param int $userId
  * @return Response
  */
 public function putShow($userId)
 {
     \Core\Services\FilterData::removeHtmlExclude();
     try {
         $validator = new UserValidator(Input::all(), 'update');
         if (!$validator->passes()) {
             return Response::json(array('userUpdated' => false, 'errorMessages' => $validator->getErrors()));
         }
         $permissionsValues = Input::get('permission');
         $permissions = $this->_formatPermissions($permissionsValues);
         // Find the user using the user id
         $user = Sentry::getUserProvider()->findById($userId);
         $user->username = Input::get('username');
         $user->email = Input::get('email');
         $user->last_name = Input::get('last_name');
         $user->first_name = Input::get('first_name');
         $user->middle_name = Input::get('middle_name');
         $user->permissions = $permissions;
         $user->branch_id = Input::get('branch_id');
         $user->arranger_number = Input::get('arranger_number');
         $permissions = empty($permissions) ? '' : json_encode($permissions);
         // delete permissions in db
         DB::table('users')->where('id', $userId)->update(array('permissions' => $permissions));
         $pass = Input::get('pass');
         if (!empty($pass)) {
             $user->password = $pass;
         }
         // Update the user
         if ($user->save()) {
             // if the user has permission to update
             $banned = Input::get('banned');
             if (isset($banned) && Sentry::getUser()->getId() !== $user->getId()) {
                 $this->_banUser($userId, $banned);
             }
             if (Sentry::getUser()->hasAccess('user-group-management')) {
                 $groups = Input::get('groups') === null ? array() : Input::get('groups');
                 $userGroups = $user->getGroups()->toArray();
                 foreach ($userGroups as $group) {
                     if (!in_array($group['id'], $groups)) {
                         $group = Sentry::getGroupProvider()->findById($group['id']);
                         $user->removeGroup($group);
                     }
                 }
                 if (isset($groups) && is_array($groups)) {
                     foreach ($groups as $groupId) {
                         $group = Sentry::getGroupProvider()->findById($groupId);
                         $user->addGroup($group);
                     }
                 }
             }
             $message = array('userUpdated' => true, 'message' => trans('core::users.messages.update-success'), 'messageType' => 'success', 'redirectUrl' => URL::route('listUsers'));
             \Session::put('message', $message);
             return Response::json($message);
         } else {
             return Response::json(array('userUpdated' => false, 'message' => trans('core::users.messages.update-fail'), 'messageType' => 'danger'));
         }
     } catch (\Cartalyst\Sentry\Users\UserExistsException $e) {
         return Response::json(array('userUpdated' => false, 'message' => trans('core::users.messages.user-email-exists'), 'messageType' => 'danger'));
     } catch (\Exception $e) {
         return Response::json(array('userUpdated' => false, 'message' => trans('core::users.messages.user-name-exists'), 'messageType' => 'danger'));
     }
 }