Files
crm-server/app/admin/model/Admin.php
T
2025-04-18 15:19:16 +08:00

54 lines
1.2 KiB
PHP

<?php
namespace app\admin\model;
use support\Model;
class Admin extends Model
{
protected $table = 'admins';
protected $hidden = ['password'];
public function roles()
{
return $this->belongsToMany(Role::class, 'admin_roles', 'user_id', 'role_id');
}
public function hasRole($role)
{
return $this->roles()->where('name', $role)->exists();
}
public function getJWTIdentifier()
{
return $this->getKey();
}
public function getJWTCustomClaims()
{
return [];
}
public function hasAnyRole($roles)
{
return $this->roles()->whereIn('name', (array)$roles)->exists();
}
public function hasPermission($permission)
{
return $this->permissions()->contains('slug', $permission);
}
public function isPermission($permission)
{
$permissions = $this->permissions();
return in_array($permission, array_column($permissions->toArray(), 'slug'));
}
public function permissions()
{
return $this->roles()
->with('permissions')
->get()
->pluck('permissions')
->flatten()
->unique('id');
}
}