FEATURE #1359: add working user edit
Finally user can be edited in admin. Admin can change password and role of given user.
This commit is contained in:
@@ -2,13 +2,67 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Admin;
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Enumerations\UserRoles;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests;
|
use App\Http\Requests;
|
||||||
use App\Http\Requests\CreateNewUserRequest;
|
use App\Http\Requests\EditUserRequest;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Hash;
|
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'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -2,20 +2,8 @@
|
|||||||
|
|
||||||
namespace App\Http\Requests;
|
namespace App\Http\Requests;
|
||||||
|
|
||||||
use App\Http\Requests\Request;
|
|
||||||
|
|
||||||
class EditUserRequest extends 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.
|
* Get the validation rules that apply to the request.
|
||||||
*
|
*
|
||||||
@@ -24,7 +12,7 @@ class EditUserRequest extends Request
|
|||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
//
|
'email' => 'required|email'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,4 +64,8 @@ Route::group([
|
|||||||
// display form for creating new user
|
// display form for creating new user
|
||||||
Route::post('users/new', 'CreateNewUser@postRegistration')
|
Route::post('users/new', 'CreateNewUser@postRegistration')
|
||||||
->name('users.newPost');
|
->name('users.newPost');
|
||||||
|
|
||||||
|
// method for saving edited data of user
|
||||||
|
Route::post('users/edit/{id}', 'EditUser@postEdit')
|
||||||
|
->name('users.editPost');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ return [
|
|||||||
'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.',
|
||||||
|
|
||||||
];
|
];
|
||||||
@@ -30,6 +30,19 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="columns large-8">
|
<div class="columns large-8">
|
||||||
|
|
||||||
|
@if (session('success'))
|
||||||
|
<div class="callout success">
|
||||||
|
{{ session('success') }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if (session('error'))
|
||||||
|
<div class="callout alert">
|
||||||
|
{{ session('error') }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
<div class="callout">
|
<div class="callout">
|
||||||
<h3>@lang('admin/userManagement.editUser', ['name' => str_limit($user->name, 20), 'email' => $user->email])</h3>
|
<h3>@lang('admin/userManagement.editUser', ['name' => str_limit($user->name, 20), 'email' => $user->email])</h3>
|
||||||
@include('admin.userManagement.editForm')
|
@include('admin.userManagement.editForm')
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
<form method="POST" action="{{route('users.newPost')}}">
|
<form method="POST" action="{{route('users.editPost', ['id' => $user->id])}}">
|
||||||
{!! csrf_field() !!}
|
{!! csrf_field() !!}
|
||||||
|
|
||||||
<input type="hidden" value="{{$user->id}}" name="userId" />
|
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/userManagement.name')
|
@lang('admin/userManagement.name')
|
||||||
<input type="text" placeholder="@lang('admin/userManagement.name')" value="{{$user->name}}" name="name">
|
<input type="text" placeholder="@lang('admin/userManagement.name')" value="{{$user->name}}" name="name">
|
||||||
@@ -20,14 +18,14 @@
|
|||||||
@endif
|
@endif
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label>
|
|
||||||
@lang('admin/userManagement.password') <em>(@lang('admin/userManagement.passwordLeaveEmpty'))</em>
|
|
||||||
|
|
||||||
<input type="text" name="password" value="">
|
|
||||||
</label>
|
|
||||||
|
|
||||||
|
|
||||||
@if (\Auth::user()->role == \App\Models\User::ROLE_ADMIN)
|
@if (\Auth::user()->role == \App\Models\User::ROLE_ADMIN)
|
||||||
|
|
||||||
|
<label>
|
||||||
|
@lang('admin/userManagement.password') <em>(@lang('admin/userManagement.passwordLeaveEmpty'))</em>
|
||||||
|
|
||||||
|
<input type="text" name="password" value="">
|
||||||
|
</label>
|
||||||
|
|
||||||
<label>
|
<label>
|
||||||
@lang('admin/userManagement.roles')
|
@lang('admin/userManagement.roles')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user