AA
Size: a a a
AA
ИС
В
morphMap()
. А не делают по умолчанию лишь потому что, модель может меняться и да, оставляют это на усмотрение разработчика.AA
ИС
AA
В
AA
В
Plan
используешь трейт HasPermissions
, что бы иметь возможность задавать разрешения конкретно для плана.User
при подключении трейта HasRoles
переименовываешь метод use HasRoles { hasPermissionTo as baseHasPermissionTo; }
hasPermissionTo
в модели User
c следующим телом:public function hasPermissionTo($permission, $guardName = null): bool
{
return $this->baseHasPermissionTo($permission, $guardName) || $this->plan->hasPermissionTo($permission, $guardName);
}
исп
ользуешь трейт HasPermissions, чт
о бы иметь возможность задавать разрешения конкретно для плана. (идентично первому варианту)ServiceProvider:
$t
his->gate->before(function (Authorizable $user, string $ability) {
try {
$plan = $user->plan;
if ($plan && method_exists($plan, 'hasPermissionTo')) {
return $plan->hasPermissionTo($ability) ?: null;
}
} catch (PermissionDoesNotExist $e) {}
});
Об
а варианта позволяют использовать $user->can(‘permission’); как о
бычно.РИ
ИС
РИ
РИ
KB
РИ
AA
Plan
используешь трейт HasPermissions
, что бы иметь возможность задавать разрешения конкретно для плана.User
при подключении трейта HasRoles
переименовываешь метод use HasRoles { hasPermissionTo as baseHasPermissionTo; }
hasPermissionTo
в модели User
c следующим телом:public function hasPermissionTo($permission, $guardName = null): bool
{
return $this->baseHasPermissionTo($permission, $guardName) || $this->plan->hasPermissionTo($permission, $guardName);
}
исп
ользуешь трейт HasPermissions, чт
о бы иметь возможность задавать разрешения конкретно для плана. (идентично первому варианту)ServiceProvider:
$t
his->gate->before(function (Authorizable $user, string $ability) {
try {
$plan = $user->plan;
if ($plan && method_exists($plan, 'hasPermissionTo')) {
return $plan->hasPermissionTo($ability) ?: null;
}
} catch (PermissionDoesNotExist $e) {}
});
Об
а варианта позволяют использовать $user->can(‘permission’); как о
бычно.В
РИ
OK
OK