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;
|
||||
|
||||
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'));
|
||||
}
|
||||
}
|
||||
@@ -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'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
});
|
||||
|
||||
@@ -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.',
|
||||
|
||||
];
|
||||
@@ -30,6 +30,19 @@
|
||||
|
||||
</div>
|
||||
<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">
|
||||
<h3>@lang('admin/userManagement.editUser', ['name' => str_limit($user->name, 20), 'email' => $user->email])</h3>
|
||||
@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() !!}
|
||||
|
||||
<input type="hidden" value="{{$user->id}}" name="userId" />
|
||||
|
||||
<label>
|
||||
@lang('admin/userManagement.name')
|
||||
<input type="text" placeholder="@lang('admin/userManagement.name')" value="{{$user->name}}" name="name">
|
||||
@@ -20,14 +18,14 @@
|
||||
@endif
|
||||
</label>
|
||||
|
||||
@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>
|
||||
|
||||
|
||||
@if (\Auth::user()->role == \App\Models\User::ROLE_ADMIN)
|
||||
<label>
|
||||
@lang('admin/userManagement.roles')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user