Ajustes varios de permisos y visuales
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Enums\RoleName;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Concerns\HasUlids;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
@@ -30,6 +32,23 @@ class User extends Authenticatable
|
||||
return $this->belongsToMany(Role::class, 'user_roles', 'user_id', 'role_id');
|
||||
}
|
||||
|
||||
public function isAn(...$roles): bool
|
||||
{
|
||||
return $this->roles()->whereIn('name', $roles)->exists();
|
||||
}
|
||||
|
||||
public function scopeFilterSuperadmin(Builder $query) {
|
||||
if(!auth()->check()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!auth()->user()->isAn(RoleName::SuperAdmin)) {
|
||||
$query->whereDoesntHave('roles', function (Builder $builder) {
|
||||
$builder->where('name', RoleName::SuperAdmin);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user