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:
Michal Kváček
2016-01-24 21:18:27 +01:00
parent bad25cb161
commit 1767872402
6 changed files with 85 additions and 27 deletions
+57 -3
View File
@@ -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'));
}
}
+1 -13
View File
@@ -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'
];
}
}
+4
View File
@@ -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');
});
+2 -1
View File
@@ -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>
<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.password') <em>(@lang('admin/userManagement.passwordLeaveEmpty'))</em>
<input type="text" name="password" value="">
</label>
<label>
@lang('admin/userManagement.roles')