70 lines
1.8 KiB
PHP
70 lines
1.8 KiB
PHP
<?php
|
||
namespace catchAdmin\permissions\model;
|
||
|
||
use catchAdmin\permissions\model\search\PermissionsSearch;
|
||
use catcher\base\CatchModel;
|
||
|
||
class Permissions extends CatchModel
|
||
{
|
||
use PermissionsSearch;
|
||
|
||
protected $name = 'permissions';
|
||
|
||
protected $field = [
|
||
'id', //
|
||
'permission_name', // 菜单名称
|
||
'parent_id', // 父级ID
|
||
'icon',
|
||
'creator_id',
|
||
'module', // 模块
|
||
'route', // 路由
|
||
'method', // 请求方法
|
||
'permission_mark', // 权限标识
|
||
'type', // 1 菜单 2 按钮
|
||
'sort', // 排序字段
|
||
'created_at', // 创建时间
|
||
'updated_at', // 更新时间
|
||
'deleted_at', // 删除状态,null 未删除 timestamp 已删除
|
||
|
||
];
|
||
|
||
public const MENU_TYPE = 1;
|
||
public const BTN_TYPE = 2;
|
||
|
||
public const GET = 'get';
|
||
public const POST = 'post';
|
||
public const PUT = 'put';
|
||
public const DELETE = 'delete';
|
||
|
||
public function getList()
|
||
{
|
||
return $this->catchSearch()
|
||
->order('sort', 'desc')
|
||
->order('id', 'desc')
|
||
->select()
|
||
->toArray();
|
||
}
|
||
|
||
public function roles(): \think\model\relation\BelongsToMany
|
||
{
|
||
return $this->belongsToMany(Roles::class, 'role_has_permissions', 'role_id', 'permission_id');
|
||
}
|
||
|
||
/**
|
||
* 获取当前用户权限
|
||
*
|
||
* @time 2020年01月14日
|
||
* @param array $permissionIds
|
||
* @return \think\Collection
|
||
* @throws \think\db\exception\DbException
|
||
* @throws \think\db\exception\ModelNotFoundException
|
||
* @throws \think\db\exception\DataNotFoundException
|
||
*/
|
||
public static function getCurrentUserPermissions(array $permissionIds): \think\Collection
|
||
{
|
||
return parent::whereIn('id', $permissionIds)
|
||
->field(['permission_name as title', 'route', 'icon'])
|
||
->select();
|
||
}
|
||
}
|