can('sop-template.view'); } /** * 查看 SOP 模板 */ public function view(User $user, SopTemplate $sopTemplate): bool { return $user->can('sop-template.view'); } /** * 创建 SOP 模板 */ public function create(User $user): bool { return $user->can('sop-template.create'); } /** * 更新 SOP 模板 */ public function update(User $user, SopTemplate $sopTemplate): bool { // 首先检查权限 if (!$user->can('sop-template.update')) { return false; } // 已发布的模板不能直接编辑 if ($sopTemplate->status === 'published') { return false; } return true; } /** * 删除 SOP 模板 */ public function delete(User $user, SopTemplate $sopTemplate): bool { // 首先检查权限 if (!$user->can('sop-template.delete')) { return false; } // 已发布的模板不能删除 if ($sopTemplate->status === 'published') { return false; } return true; } /** * 发布 SOP 模板 */ public function publish(User $user, SopTemplate $sopTemplate): bool { // 首先检查权限 if (!$user->can('sop-template.publish')) { return false; } return $sopTemplate->status === 'draft'; } /** * 归档 SOP 模板 */ public function archive(User $user, SopTemplate $sopTemplate): bool { // 首先检查权限 if (!$user->can('sop-template.archive')) { return false; } return $sopTemplate->status === 'published'; } }