makes the user's published field invisible to the authenticated user
This commit is contained in:
parent
d9881c7cbf
commit
242718c9c1
3 changed files with 28 additions and 20 deletions
|
|
@ -25,8 +25,14 @@ class UpdateUserRequest extends StoreUserRequest
|
|||
*/
|
||||
protected function prepareForValidation(): void
|
||||
{
|
||||
/** @var \App\Models\User $userModel */
|
||||
$userModel = request()->route()->parameter('user');
|
||||
/** @var \App\Models\User $authUserModel */
|
||||
$authUserModel = auth('backend')->user();
|
||||
$this->merge([
|
||||
'published' => $this->boolean('published'),
|
||||
'published' => $authUserModel->getKey() !== $userModel->getKey() ?
|
||||
$this->boolean('published') :
|
||||
true,
|
||||
'password' => $this->input('password') ??
|
||||
\optional($this->route('user'))->password,
|
||||
'password_confirmation' => $this->input('password_confirmation') ??
|
||||
|
|
|
|||
|
|
@ -122,8 +122,9 @@ class UserPolicy
|
|||
*/
|
||||
public function changePublished(User $authUser, User $user): bool
|
||||
{
|
||||
return $authUser->getRouteKey() !== $user->getRouteKey() and
|
||||
return ($user->getRouteKey()) ? $authUser->getRouteKey() !== $user->getRouteKey() and
|
||||
UserStaticRules::atLeastRole($authUser, RoleEnum::admin) and
|
||||
UserStaticRules::atLeastRole($authUser, $user->role);
|
||||
UserStaticRules::atLeastRole($authUser, $user->role) :
|
||||
UserStaticRules::atLeastRole($authUser, RoleEnum::admin);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,8 +82,7 @@
|
|||
'required' => true,
|
||||
'associatedModels' => Arr::where(
|
||||
\App\Enums\Users\RoleEnum::toArray(),
|
||||
fn(object $role) => $role->value >=
|
||||
auth('backend')->user()->role->value()),
|
||||
fn(object $role) => $role->value >= auth('backend')->user()->role->value()),
|
||||
'helper' => __('Sélectionnez un rôle dans la liste déroulante.'),
|
||||
])
|
||||
</div>
|
||||
|
|
@ -124,22 +123,24 @@
|
|||
</fieldset>
|
||||
</div>
|
||||
{{-- STATUS --}}
|
||||
<div class="col-12 col-md-6 mb-3">
|
||||
<fieldset class="h-100 border p-3">
|
||||
<legend>{{ __('Visibilité') }}</legend>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
@include('bo.partials.inputs.tinyint-boolean', [
|
||||
'id' => 'userPublished',
|
||||
'name' => 'published',
|
||||
'label' => __('État de publication de l\':model', ['model' => __('models.classes.user')]),
|
||||
'helper' => __('Deux réponses possibles : oui ou non.'),
|
||||
'model' => $userModel ?? null,
|
||||
])
|
||||
@can('changePublished', $userModel)
|
||||
<div class="col-12 col-md-6 mb-3">
|
||||
<fieldset class="h-100 border p-3">
|
||||
<legend>{{ __('Visibilité') }}</legend>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
@include('bo.partials.inputs.tinyint-boolean', [
|
||||
'id' => 'userPublished',
|
||||
'name' => 'published',
|
||||
'label' => __('État de publication de l\':model', ['model' => __('models.classes.user')]),
|
||||
'helper' => __('Deux réponses possibles : oui ou non.'),
|
||||
'model' => $userModel ?? null,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
@endcan
|
||||
<div class="col-12 text-center">
|
||||
<p><b>{{ __('* Champs obligatoires') }}</b></p>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue