diff --git a/app/Http/Controllers/Admin/EditUser.php b/app/Http/Controllers/Admin/EditUser.php index 041a5f63..6c1cb158 100644 --- a/app/Http/Controllers/Admin/EditUser.php +++ b/app/Http/Controllers/Admin/EditUser.php @@ -2,13 +2,67 @@ namespace App\Http\Controllers\Admin; +use App\Enumerations\UserRoles; use App\Http\Controllers\Controller; use App\Http\Requests; -use App\Http\Requests\CreateNewUserRequest; +use App\Http\Requests\EditUserRequest; use App\Models\User; -use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; -class EditUser extends Controller { +class EditUser extends Controller +{ + public function getEditUser($id = null) + { + // when no user specified, lets assume we want to edit "me" + if (!$id) { + $id = Auth::user()->id; + } + // try to find given user + $user = User::findOrFail($id); + + $roles = UserRoles::getWithTranslations(); + + return view('admin.userManagement.edit', ['user' => $user, 'roles' => $roles]); + } + + /** + * @param EditUserRequest $request + * @param $id + * + * @return \Illuminate\Http\RedirectResponse + */ + public function postEdit(EditUserRequest $request, $id) + { + $user = User::findOrFail($id); + + // update username if set + if (isset($request->username)) { + $user->username = $request->username; + } + + // change name (if set) + if (isset($request->name)) { + $user->name = $request->name; + } + + if (Auth::user()->role == User::ROLE_ADMIN) { + if (isset($request->role)) { + $user->role = $request->role; + } + + if (isset($request->password)) { + $user->password = Hash::make($request->password); + } + } + + $user->email = $request->email; + + $user->save(); + + return redirect() + ->route('users.detail', ['id' => $id]) + ->with('success', trans('admin/userManagement.userSuccessfullyEdited')); + } } \ No newline at end of file diff --git a/app/Http/Requests/EditUserRequest.php b/app/Http/Requests/EditUserRequest.php index 39116713..54d460e7 100644 --- a/app/Http/Requests/EditUserRequest.php +++ b/app/Http/Requests/EditUserRequest.php @@ -2,20 +2,8 @@ namespace App\Http\Requests; -use App\Http\Requests\Request; - class EditUserRequest extends Request { - /** - * Determine if the user is authorized to make this request. - * - * @return bool - */ - public function authorize() - { - return false; - } - /** * Get the validation rules that apply to the request. * @@ -24,7 +12,7 @@ class EditUserRequest extends Request public function rules() { return [ - // + 'email' => 'required|email' ]; } } diff --git a/app/Http/routes.php b/app/Http/routes.php index 976c8de8..7d28fc50 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -64,4 +64,8 @@ Route::group([ // display form for creating new user Route::post('users/new', 'CreateNewUser@postRegistration') ->name('users.newPost'); + + // method for saving edited data of user + Route::post('users/edit/{id}', 'EditUser@postEdit') + ->name('users.editPost'); }); diff --git a/resources/lang/en/admin/userManagement.php b/resources/lang/en/admin/userManagement.php index 81c2c6d6..d0a3f9f6 100644 --- a/resources/lang/en/admin/userManagement.php +++ b/resources/lang/en/admin/userManagement.php @@ -18,6 +18,7 @@ return [ 'editUser' => 'Editing user :name (:email)', 'usersActions' => 'User\'s actions', 'update' => 'Update informations', - 'passwordLeaveEmpty' => 'Leave empty, if you do not want to change it.' + 'passwordLeaveEmpty' => 'Leave empty, if you do not want to change it.', + 'userSuccessfullyEdited' => 'User successfully edited.', ]; \ No newline at end of file diff --git a/resources/views/admin/userManagement/detail.blade.php b/resources/views/admin/userManagement/detail.blade.php index c47f1540..202db9db 100644 --- a/resources/views/admin/userManagement/detail.blade.php +++ b/resources/views/admin/userManagement/detail.blade.php @@ -30,6 +30,19 @@
+ + @if (session('success')) +
+ {{ session('success') }} +
+ @endif + + @if (session('error')) +
+ {{ session('error') }} +
+ @endif +

@lang('admin/userManagement.editUser', ['name' => str_limit($user->name, 20), 'email' => $user->email])

@include('admin.userManagement.editForm') diff --git a/resources/views/admin/userManagement/editForm.blade.php b/resources/views/admin/userManagement/editForm.blade.php index 10e6ce81..7d471ce7 100644 --- a/resources/views/admin/userManagement/editForm.blade.php +++ b/resources/views/admin/userManagement/editForm.blade.php @@ -1,8 +1,6 @@ -
+ {!! csrf_field() !!} - - - - - @if (\Auth::user()->role == \App\Models\User::ROLE_ADMIN) + + +