新增职务权限管理与聊天室管理权限控制
This commit is contained in:
+22
-1
@@ -3,7 +3,8 @@
|
||||
/**
|
||||
* 文件功能:职务模型
|
||||
* 对应 positions 表,职务属于某个部门,包含等级、图标、人数上限和奖励上限
|
||||
* 任命权限通过 position_appoint_limits 中间表多对多关联定义
|
||||
* 任命权限通过 position_appoint_limits 中间表多对多关联定义,
|
||||
* 聊天室顶部管理权限通过 permissions JSON 字段配置
|
||||
*
|
||||
* @author ChatRoom Laravel
|
||||
*
|
||||
@@ -35,6 +36,7 @@ class Position extends Model
|
||||
'daily_reward_limit',
|
||||
'recipient_daily_limit',
|
||||
'sort_order',
|
||||
'permissions',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -50,6 +52,7 @@ class Position extends Model
|
||||
'daily_reward_limit' => 'integer',
|
||||
'recipient_daily_limit' => 'integer',
|
||||
'sort_order' => 'integer',
|
||||
'permissions' => 'array',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -123,6 +126,24 @@ class Position extends Model
|
||||
return $this->currentCount() >= $this->max_persons;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断当前职务是否拥有指定权限码。
|
||||
*/
|
||||
public function hasPermission(string $permission): bool
|
||||
{
|
||||
return in_array($permission, $this->permissions ?? [], true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回当前职务的权限码列表。
|
||||
*
|
||||
* @return list<string>
|
||||
*/
|
||||
public function permissionCodes(): array
|
||||
{
|
||||
return array_values($this->permissions ?? []);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询范围:按位阶降序
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user