Implement roles management;

Add user profile;
Improve Ui;
Clean code;
Minor fix;
Typo;
This commit is contained in:
c.girardi
2024-02-21 16:56:08 +01:00
parent fca756b556
commit e6f3fcbb4e
27 changed files with 708 additions and 138 deletions

View File

@@ -4,9 +4,11 @@ namespace App\Http\Controllers;
use App\Http\Requests\StoreUserRequest;
use App\Http\Requests\UpdateUserRequest;
use App\Jobs\SendMailJob;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use Spatie\Permission\Models\Role;
class UsersController extends Controller
@@ -62,6 +64,7 @@ class UsersController extends Controller
*/
public function show(User $user)
{
//dispatch(new SendMailJob($user));
return view('users.show', [
'user' => $user
]);
@@ -72,9 +75,9 @@ class UsersController extends Controller
*/
public function edit(User $user)
{
// Check Only Super Admin can update his own Profile
if ($user->hasRole('ADMIN')){
if($user->id != auth()->user()->id){
// Check Only ADMIN can update his own Profile
if ($user->hasRole('ADMIN')) {
if ($user->id != auth()->user()->id) {
abort(403, 'USER DOES NOT HAVE THE RIGHT PERMISSIONS');
}
}
@@ -93,12 +96,19 @@ class UsersController extends Controller
{
$input = $request->all();
if(!empty($request->password)){
if (!empty($request->password)) {
$input['password'] = Hash::make($request->password);
}else{
} else {
$input = $request->except('password');
}
if ($request->hasFile('image')) {
$filename = $request->image->getClientOriginalName();
$request->image->storeAs('images', $filename, 'public');
$input['image'] = $filename;
}
$user->update($input);
$user->syncRoles($request->roles);
@@ -112,9 +122,8 @@ class UsersController extends Controller
*/
public function destroy(User $user)
{
// About if user is Super Admin or User ID belongs to Auth User
if ($user->hasRole('ADMIN') || $user->id == auth()->user()->id)
{
// About if user is ADMIN or User ID belongs to Auth User
if ($user->hasRole('ADMIN') || $user->id == auth()->user()->id) {
abort(403, 'USER DOES NOT HAVE THE RIGHT PERMISSIONS');
}