Deploy / deploy (push) Successful in 16s
- canView() + canViewAny() in EnforcesRoles: all SMS roles can view - View pages for all 7 resources so viewers can open records read-only - Custom ActivityResource restricts activity log to admin + manager only Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
39 lines
967 B
PHP
39 lines
967 B
PHP
<?php
|
|
|
|
namespace App\Traits;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
trait EnforcesRoles
|
|
{
|
|
public static function canViewAny(): bool
|
|
{
|
|
return auth()->user()?->hasAnyRole(['sms-admin', 'sms-manager', 'sms-viewer']) ?? false;
|
|
}
|
|
|
|
public static function canView(Model $record): bool
|
|
{
|
|
return auth()->user()?->hasAnyRole(['sms-admin', 'sms-manager', 'sms-viewer']) ?? false;
|
|
}
|
|
|
|
public static function canCreate(): bool
|
|
{
|
|
return auth()->user()?->hasAnyRole(['sms-admin', 'sms-manager']) ?? false;
|
|
}
|
|
|
|
public static function canEdit(Model $record): bool
|
|
{
|
|
return auth()->user()?->hasAnyRole(['sms-admin', 'sms-manager']) ?? false;
|
|
}
|
|
|
|
public static function canDelete(Model $record): bool
|
|
{
|
|
return auth()->user()?->hasRole('sms-admin') ?? false;
|
|
}
|
|
|
|
public static function canDeleteAny(): bool
|
|
{
|
|
return auth()->user()?->hasRole('sms-admin') ?? false;
|
|
}
|
|
}
|