ldc-portsalaries/app/Http/Controllers/UsersController.php

45 lines
1.2 KiB
PHP
Raw Normal View History

2021-05-08 06:50:19 +02:00
<?php
namespace App\Http\Controllers;
use App\Enums\Role;
2021-05-08 06:50:19 +02:00
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
2021-05-08 06:50:19 +02:00
class UsersController extends CrudController
{
/** @var User */
protected static $modelClass = User::class;
// Eloquent callbacks
public function indexQuery(Builder $query): Builder
{
/** @var \App\Models\User */
$user = auth()->user();
if (!$user->role->equals(Role::admin())) {
return $query->whereId($user->id);
}
return $query;
}
public function storeModel(Model &$model)
{
/** @var \App\Models\User */
$user = auth()->user();
if (!$user->role->equals(Role::admin()) and $model->id !== $user->id) {
abort(403, 'Vous n\'êtes pas autorisé à modifier un autre utilisateur que vous même');
}
}
public function updateModel(Model &$model)
{
/** @var \App\Models\User */
$user = auth()->user();
if (!$user->role->equals(Role::admin()) and $model->id !== $user->id) {
abort(403, 'Vous n\'êtes pas autorisé à modifier un autre utilisateur que vous même');
}
}
2021-05-08 06:50:19 +02:00
}