netgescon-day0/app/Models/ProgramAclRule.php

34 lines
729 B
PHP
Executable File

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
class ProgramAclRule extends Model
{
protected $fillable = [
'scope_type',
'scope_key',
'program_key',
'is_allowed',
];
protected $casts = [
'is_allowed' => 'bool',
];
public function scopeForRole(Builder $query, string $role): Builder
{
return $query
->where('scope_type', 'role')
->where('scope_key', $role);
}
public function scopeForUser(Builder $query, int $userId): Builder
{
return $query
->where('scope_type', 'user')
->where('scope_key', (string) $userId);
}
}