- 更新 DocumentPolicy 添加权限检查 - viewAny/view/create/update/delete/download 都检查相应权限 - 保留现有的分组访问控制逻辑 - 保留安全日志记录功能 - 更新 TerminalPolicy 添加权限检查 - 所有方法都基于 terminal.* 权限 - 新增 sync 方法用于配置同步权限检查 - 更新 SopTemplatePolicy 添加权限检查 - 所有方法都基于 sop-template.* 权限 - 保留现有的状态检查逻辑(已发布不可编辑/删除) - 创建 SystemSettingPolicy - 实现 viewAny/view/update 权限检查 - 创建 ActivityLogPolicy - 实现 viewAny/view/export 权限检查 - 创建 GroupPolicy - 实现完整的 CRUD 权限检查 - 删除前检查关联文档和用户 - 在 AppServiceProvider 中注册所有策略
104 lines
2.1 KiB
PHP
104 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Policies;
|
|
|
|
use App\Models\Terminal;
|
|
use App\Models\User;
|
|
|
|
class TerminalPolicy
|
|
{
|
|
/**
|
|
* 判断用户是否可以查看终端列表
|
|
*
|
|
* @param User $user
|
|
* @return bool
|
|
*/
|
|
public function viewAny(User $user): bool
|
|
{
|
|
return $user->can('terminal.view');
|
|
}
|
|
|
|
/**
|
|
* 判断用户是否可以查看特定终端
|
|
*
|
|
* @param User $user
|
|
* @param Terminal $terminal
|
|
* @return bool
|
|
*/
|
|
public function view(User $user, Terminal $terminal): bool
|
|
{
|
|
return $user->can('terminal.view');
|
|
}
|
|
|
|
/**
|
|
* 判断用户是否可以创建终端
|
|
*
|
|
* @param User $user
|
|
* @return bool
|
|
*/
|
|
public function create(User $user): bool
|
|
{
|
|
return $user->can('terminal.create');
|
|
}
|
|
|
|
/**
|
|
* 判断用户是否可以更新终端
|
|
*
|
|
* @param User $user
|
|
* @param Terminal $terminal
|
|
* @return bool
|
|
*/
|
|
public function update(User $user, Terminal $terminal): bool
|
|
{
|
|
return $user->can('terminal.update');
|
|
}
|
|
|
|
/**
|
|
* 判断用户是否可以删除终端
|
|
*
|
|
* @param User $user
|
|
* @param Terminal $terminal
|
|
* @return bool
|
|
*/
|
|
public function delete(User $user, Terminal $terminal): bool
|
|
{
|
|
return $user->can('terminal.delete');
|
|
}
|
|
|
|
/**
|
|
* 判断用户是否可以同步终端配置
|
|
*
|
|
* @param User $user
|
|
* @param Terminal $terminal
|
|
* @return bool
|
|
*/
|
|
public function sync(User $user, Terminal $terminal): bool
|
|
{
|
|
return $user->can('terminal.sync');
|
|
}
|
|
|
|
/**
|
|
* 判断用户是否可以恢复已删除的终端
|
|
*
|
|
* @param User $user
|
|
* @param Terminal $terminal
|
|
* @return bool
|
|
*/
|
|
public function restore(User $user, Terminal $terminal): bool
|
|
{
|
|
return $user->can('terminal.delete');
|
|
}
|
|
|
|
/**
|
|
* 判断用户是否可以永久删除终端
|
|
*
|
|
* @param User $user
|
|
* @param Terminal $terminal
|
|
* @return bool
|
|
*/
|
|
public function forceDelete(User $user, Terminal $terminal): bool
|
|
{
|
|
return $user->can('terminal.delete');
|
|
}
|
|
}
|