Core/app/Models/PermissionGroup.php

56 lines
1.2 KiB
PHP
Raw Permalink Normal View History

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;
use Spatie\Permission\Models\Role;
class PermissionGroup extends Model
{
use LogsActivity;
protected $fillable = [
'name'
];
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()->logAll()
->useLogName('master data');
}
public function permission(){
return $this->hasMany(Permission::class);
}
public function roles($group){
$permission = Permission::where('permission_group_id', $group->id)->first();
$data = [];
$roles = Role::all();
foreach($roles as $role){
if($role->hasPermissionTo($permission->name)){
array_push($data,$role);
}
}
return $data;
}
public static function getpermissionsByGroupId($id)
{
$permissions = DB::table('permissions')
->select('name', 'id')
->where('permission_group_id', $id)
->get();
return $permissions;
}
}