fix: 修复项目成员无法认领任务的情况

This commit is contained in:
kuaifan 2025-07-07 20:34:24 +08:00
parent 44baa743c0
commit b4101f856a
2 changed files with 14 additions and 11 deletions

View File

@ -2120,6 +2120,8 @@ class ProjectController extends AbstractController
// //
$task = ProjectTask::userTask($task_id); $task = ProjectTask::userTask($task_id);
// //
if ($task->hasOwner()) {
// 已经存在负责人,则需要检查权限(即:没有任务负责人时,不检查权限)
$project = Project::userProject($task->project_id); $project = Project::userProject($task->project_id);
$permissionKey = ProjectPermission::TASK_UPDATE; $permissionKey = ProjectPermission::TASK_UPDATE;
if (Arr::exists($param, 'times')) { if (Arr::exists($param, 'times')) {
@ -2128,6 +2130,7 @@ class ProjectController extends AbstractController
$permissionKey = ProjectPermission::TASK_STATUS; $permissionKey = ProjectPermission::TASK_STATUS;
} }
ProjectPermission::userTaskPermission($project, $permissionKey, $task); ProjectPermission::userTaskPermission($project, $permissionKey, $task);
}
// //
$taskUser = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($task_id)->get(); $taskUser = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($task_id)->get();
$owners = $taskUser->where('owner', 1)->pluck('userid')->toArray(); $owners = $taskUser->where('owner', 1)->pluck('userid')->toArray();

View File

@ -129,7 +129,7 @@ class ProjectPermission extends AbstractModel
* 更新项目权限 * 更新项目权限
* *
* @param int $projectId * @param int $projectId
* @param array $permissions * @param $newPermissions
* @return ProjectPermission * @return ProjectPermission
*/ */
public static function updatePermissions($projectId, $newPermissions) public static function updatePermissions($projectId, $newPermissions)
@ -146,9 +146,9 @@ class ProjectPermission extends AbstractModel
/** /**
* 检查用户是否有执行特定动作的权限 * 检查用户是否有执行特定动作的权限
* @param string $action 动作名称
* @param Project $project 项目实例 * @param Project $project 项目实例
* @param ProjectTask $task 任务实例 * @param string $action 动作名称
* @param ProjectTask|null $task 任务实例
* @return bool * @return bool
*/ */
public static function userTaskPermission(Project $project, $action, ProjectTask $task = null) public static function userTaskPermission(Project $project, $action, ProjectTask $task = null)