feat(manage): 部门负责人视角支持项目级可见开关并尊重任务可见性
新增项目级"负责人视角"开关(projects.department_owner_view,默认开启), 项目负责人可关闭,关闭后该项目及其群聊对部门负责人视角隐藏。同时将负责人 只读视角调整为尊重任务可见性:仅"全员可见"任务可被查看/进入任务群,指定 成员可见的任务仅对被指定成员开放。 - 新增 projects.department_owner_view 字段(migration) - ProjectController::update 支持读写该开关 - UserDepartment::ownerViewContext 过滤已关闭项目,并合并为单次 JOIN 查询 - ProjectTask::findForDepartmentView / task__one / tasks 列表尊重任务可见性 - WebSocketDialog::checkDialog 任务群按可见性放行 - 前端项目设置新增开关(仅系统开启该功能时显示) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2278,7 +2278,8 @@ class ProjectTask extends AbstractModel
|
||||
$builder->withTrashed();
|
||||
}
|
||||
$task = $builder->first();
|
||||
if (!empty($task) && UserDepartment::isDepartmentReadonlyProject($departmentView, intval($task->project_id))) {
|
||||
// 仅"全员可见"(visibility=1)的任务走负责人只读视角;指定成员可见的任务交由 userTask 按可见性校验
|
||||
if (!empty($task) && intval($task->visibility) === 1 && UserDepartment::isDepartmentReadonlyProject($departmentView, intval($task->project_id))) {
|
||||
if ($archived === true && $task->archived_at != null) {
|
||||
throw new ApiException('任务已归档', ['task_id' => $task_id]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user