FEATURE #1359: add status changing (user management)

This commit is contained in:
Michal Kváček
2016-01-24 23:38:34 +01:00
parent f872475752
commit 6af60248e6
5 changed files with 103 additions and 22 deletions
+42
View File
@@ -0,0 +1,42 @@
<?php
/**
* Created by PhpStorm.
* User: michal
* Date: 24.1.16
* Time: 23:20
*/
namespace App\Enumerations;
use App\Models\User;
class UserStates
{
/**
* Getter for states
*
* This method returns only list of roles as inserted into database
*
* @return array
*/
public static function getSimple()
{
return array_values(self::getWithTranslations());
}
/**
* Getter for states with translations
*
* This method returns all user states as keys. Values are strings used for translations.
*
* @return array
*/
public static function getWithTranslations()
{
return [
User::STATE_DELETED => 'admin/userManagement.status_' . User::STATE_DELETED,
User::STATE_BLOCKED => 'admin/userManagement.status_' . User::STATE_BLOCKED,
User::STATE_ACTIVE => 'admin/userManagement.status_' . User::STATE_ACTIVE
];
}
}
+16 -3
View File
@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Enumerations\UserRoles; use App\Enumerations\UserRoles;
use App\Enumerations\UserStates;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests; use App\Http\Requests;
use App\Http\Requests\EditUserRequest; use App\Http\Requests\EditUserRequest;
@@ -19,12 +20,20 @@ class EditUser extends Controller
$id = Auth::user()->id; $id = Auth::user()->id;
} }
// try to find given user // @todo add some authorization (e.g. via can/cannot methods)
$user = User::findOrFail($id);
// try to find given user
$user = User::where('status', '!=', User::STATE_DELETED)
->findOrFail($id);
$states = UserStates::getWithTranslations();
$roles = UserRoles::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; $user->role = $request->role;
} }
if (isset($request->status)) {
$user->status = $request->status;
}
if (isset($request->password)) { if (isset($request->password)) {
$user->password = Hash::make($request->password); $user->password = Hash::make($request->password);
} }
+7 -1
View File
@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Enumerations\UserRoles; use App\Enumerations\UserRoles;
use App\Enumerations\UserStates;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests; use App\Http\Requests;
use App\Models\User; use App\Models\User;
@@ -21,7 +22,12 @@ class UserDetail extends Controller
$user = User::findOrFail($id); $user = User::findOrFail($id);
$roles = UserRoles::getWithTranslations(); $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
]);
} }
} }
+22 -18
View File
@@ -1,24 +1,28 @@
<?php <?php
return [ return [
'addNewUser' => 'Add new user', 'addNewUser' => 'Add new user',
'name' => 'Full name', 'name' => 'Full name',
'email' => 'Email', 'email' => 'Email',
'password' => 'Password', 'password' => 'Password',
'roles' => 'Please, select user\'s role', 'roles' => 'Please, select user\'s role',
'role_admin' => 'Admin', 'role_admin' => 'Admin',
'role_editor' => 'Editor', 'role_editor' => 'Editor',
'role_visitor' => 'Visitor', 'role_visitor' => 'Visitor',
'register' => 'Create user', 'status' => 'Status',
'status_deleted' => 'Deleted',
'status_blocked' => 'Blocked',
'status_active' => 'Active',
'register' => 'Create user',
'registrationSuccessfull' => 'New user successfully added.', 'registrationSuccessfull' => 'New user successfully added.',
'profile' => 'Your profile', 'profile' => 'Your profile',
'overview' => 'List of all users', 'overview' => 'List of all users',
'noUsers' => 'No users avialable.', 'noUsers' => 'No users avialable.',
'detail' => 'Details of user :name (:email)', 'detail' => 'Details of user :name (:email)',
'editUser' => 'Editing user :name (:email)', 'editUser' => 'Editing user :name (:email)',
'usersActions' => 'User\'s actions', 'usersActions' => 'User\'s actions',
'update' => 'Update informations', '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.', 'userSuccessfullyEdited' => 'User successfully edited.',
]; ];
@@ -41,6 +41,22 @@
{{ $errors->first('role') }} {{ $errors->first('role') }}
</div> </div>
@endif @endif
<label>
@lang('admin/userManagement.status')
<select name="status">
@foreach($states as $status => $translation)
<option value="{{$status}}" @if($status == $user->status) selected @endif>@lang($translation)</option>
@endforeach
</select>
</label>
@if (isset($errors) && $errors->has('role'))
<div class="callout alert">
{{ $errors->first('role') }}
</div>
@endif
@endif @endif
<label> <label>