2021-05-08 06:50:19 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
2021-06-07 18:26:14 +02:00
|
|
|
use App\Enums\Role;
|
2021-05-08 06:50:19 +02:00
|
|
|
use App\Models\User;
|
2021-06-07 18:26:14 +02:00
|
|
|
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;
|
2021-06-07 18:26:14 +02:00
|
|
|
|
|
|
|
|
// 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
|
|
|
}
|