后端管理

This commit is contained in:
2025-04-18 15:19:16 +08:00
parent 00c8bb9c50
commit c3d9527532
19 changed files with 1353 additions and 84 deletions
+54
View File
@@ -0,0 +1,54 @@
<?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');
}
}
+1 -1
View File
@@ -8,7 +8,7 @@ class Menu extends Model
{
protected $table = 'menus';
public function children()
public function child()
{
return $this->hasMany(Menu::class, 'parent_id')->orderBy('sort');
}
+1 -1
View File
@@ -10,7 +10,7 @@ class Role extends Model
public function users()
{
return $this->belongsToMany(User::class, 'user_roles', 'role_id', 'user_id');
return $this->belongsToMany(Admin::class, 'user_roles', 'role_id', 'user_id');
}
public function permissions()
-29
View File
@@ -1,29 +0,0 @@
<?php
namespace app\admin\model;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $table = 'users';
protected $hidden = ['password'];
public function roles()
{
return $this->belongsToMany(Role::class, 'user_roles', 'user_id', 'role_id');
}
public function hasRole($role)
{
return $this->roles()->where('name', $role)->exists();
}
public function hasPermission($permission)
{
return $this->roles()
->whereHas('permissions', function($query) use ($permission) {
$query->where('slug', $permission);
})
->exists();
}
}