From 6af60248e642ecad3a7e0cad0524a4433357b268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sun, 24 Jan 2016 23:38:34 +0100 Subject: [PATCH] FEATURE #1359: add status changing (user management) --- app/Enumerations/UserStates.php | 42 +++++++++++++++++++ app/Http/Controllers/Admin/EditUser.php | 19 +++++++-- app/Http/Controllers/Admin/UserDetail.php | 8 +++- resources/lang/en/admin/userManagement.php | 40 ++++++++++-------- .../admin/userManagement/editForm.blade.php | 16 +++++++ 5 files changed, 103 insertions(+), 22 deletions(-) create mode 100644 app/Enumerations/UserStates.php diff --git a/app/Enumerations/UserStates.php b/app/Enumerations/UserStates.php new file mode 100644 index 00000000..4980084b --- /dev/null +++ b/app/Enumerations/UserStates.php @@ -0,0 +1,42 @@ + 'admin/userManagement.status_' . User::STATE_DELETED, + User::STATE_BLOCKED => 'admin/userManagement.status_' . User::STATE_BLOCKED, + User::STATE_ACTIVE => 'admin/userManagement.status_' . User::STATE_ACTIVE + ]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/EditUser.php b/app/Http/Controllers/Admin/EditUser.php index 6c1cb158..f9b0a7c5 100644 --- a/app/Http/Controllers/Admin/EditUser.php +++ b/app/Http/Controllers/Admin/EditUser.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin; use App\Enumerations\UserRoles; +use App\Enumerations\UserStates; use App\Http\Controllers\Controller; use App\Http\Requests; use App\Http\Requests\EditUserRequest; @@ -19,12 +20,20 @@ class EditUser extends Controller $id = Auth::user()->id; } - // try to find given user - $user = User::findOrFail($id); + // @todo add some authorization (e.g. via can/cannot methods) + // try to find given user + $user = User::where('status', '!=', User::STATE_DELETED) + ->findOrFail($id); + + $states = UserStates::getWithTranslations(); $roles = UserRoles::getWithTranslations(); - return view('admin.userManagement.edit', ['user' => $user, 'roles' => $roles]); + return view('admin.userManagement.edit', [ + 'user' => $user, + 'states' => $states, + 'roles' => $roles + ]); } /** @@ -52,6 +61,10 @@ class EditUser extends Controller $user->role = $request->role; } + if (isset($request->status)) { + $user->status = $request->status; + } + if (isset($request->password)) { $user->password = Hash::make($request->password); } diff --git a/app/Http/Controllers/Admin/UserDetail.php b/app/Http/Controllers/Admin/UserDetail.php index 5d62b9bf..0416f2b3 100644 --- a/app/Http/Controllers/Admin/UserDetail.php +++ b/app/Http/Controllers/Admin/UserDetail.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin; use App\Enumerations\UserRoles; +use App\Enumerations\UserStates; use App\Http\Controllers\Controller; use App\Http\Requests; use App\Models\User; @@ -21,7 +22,12 @@ class UserDetail extends Controller $user = User::findOrFail($id); $roles = UserRoles::getWithTranslations(); + $states = UserStates::getWithTranslations(); - return view('admin.userManagement.detail', ['user' => $user, 'roles' => $roles]); + return view('admin.userManagement.detail', [ + 'user' => $user, + 'states' => $states, + 'roles' => $roles + ]); } } \ No newline at end of file diff --git a/resources/lang/en/admin/userManagement.php b/resources/lang/en/admin/userManagement.php index d0a3f9f6..1f7e58f1 100644 --- a/resources/lang/en/admin/userManagement.php +++ b/resources/lang/en/admin/userManagement.php @@ -1,24 +1,28 @@ 'Add new user', - 'name' => 'Full name', - 'email' => 'Email', - 'password' => 'Password', - 'roles' => 'Please, select user\'s role', - 'role_admin' => 'Admin', - 'role_editor' => 'Editor', - 'role_visitor' => 'Visitor', - 'register' => 'Create user', + 'addNewUser' => 'Add new user', + 'name' => 'Full name', + 'email' => 'Email', + 'password' => 'Password', + 'roles' => 'Please, select user\'s role', + 'role_admin' => 'Admin', + 'role_editor' => 'Editor', + 'role_visitor' => 'Visitor', + 'status' => 'Status', + 'status_deleted' => 'Deleted', + 'status_blocked' => 'Blocked', + 'status_active' => 'Active', + 'register' => 'Create user', 'registrationSuccessfull' => 'New user successfully added.', - 'profile' => 'Your profile', - 'overview' => 'List of all users', - 'noUsers' => 'No users avialable.', - 'detail' => 'Details of user :name (:email)', - 'editUser' => 'Editing user :name (:email)', - 'usersActions' => 'User\'s actions', - 'update' => 'Update informations', - 'passwordLeaveEmpty' => 'Leave empty, if you do not want to change it.', - 'userSuccessfullyEdited' => 'User successfully edited.', + 'profile' => 'Your profile', + 'overview' => 'List of all users', + 'noUsers' => 'No users avialable.', + 'detail' => 'Details of user :name (:email)', + 'editUser' => 'Editing user :name (:email)', + 'usersActions' => 'User\'s actions', + 'update' => 'Update informations', + '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/editForm.blade.php b/resources/views/admin/userManagement/editForm.blade.php index 7d471ce7..ea54466f 100644 --- a/resources/views/admin/userManagement/editForm.blade.php +++ b/resources/views/admin/userManagement/editForm.blade.php @@ -41,6 +41,22 @@ {{ $errors->first('role') }} @endif + + + + @if (isset($errors) && $errors->has('role')) +
+ {{ $errors->first('role') }} +
+ @endif @endif