/** * 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')); } } }
/** * 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')); } }