perf: 任务创建人和协助人可修改任务内容和详情,但不可修改任务状态
This commit is contained in:
parent
49ff61ad65
commit
76ab47c82e
@ -1336,7 +1336,10 @@ class ProjectController extends AbstractController
|
||||
parse_str(Request::getContent(), $data);
|
||||
$task_id = intval($data['task_id']);
|
||||
//
|
||||
$task = ProjectTask::userTask($task_id, true, 2);
|
||||
if (Arr::exists($data, 'content') || Arr::exists($data, 'name'))
|
||||
$task = ProjectTask::userTask($task_id, true, 3);
|
||||
else
|
||||
$task = ProjectTask::userTask($task_id, true, 2);
|
||||
// 更新任务
|
||||
$updateMarking = [];
|
||||
$task->updateTask($data, $updateMarking);
|
||||
|
@ -909,6 +909,20 @@ class ProjectTask extends AbstractModel
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否是参与者或者创建人
|
||||
* @return bool
|
||||
*/
|
||||
public function isActor(): bool
|
||||
{
|
||||
$user = User::auth();
|
||||
$actor = ProjectTaskUser::whereTaskId($this->id)->whereUserid($user->userid)->exists();
|
||||
if (!$actor && $user->userid != $this->userid) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否有负责人
|
||||
* @return bool
|
||||
@ -1120,7 +1134,7 @@ class ProjectTask extends AbstractModel
|
||||
* 获取任务(会员有任务权限 或 会员存在项目内)
|
||||
* @param int $task_id
|
||||
* @param bool $archived true:仅限未归档, false:仅限已归档, null:不限制
|
||||
* @param int|bool $mustOwner 0|false:不限制, 1|true:限制任务或项目负责人, 2:已有负责人才限制任务或项目负责人(子任务时如果是主任务负责人也可以)
|
||||
* @param int|bool $mustOwner 0|false:不限制, 1|true:限制任务或项目负责人, 2:已有负责人才限制任务或项目负责人(子任务时如果是主任务负责人也可以),3:限制项目或任务负责人或任务参与者或者任务创建人
|
||||
* @param array $with
|
||||
* @return self
|
||||
*/
|
||||
@ -1156,7 +1170,9 @@ class ProjectTask extends AbstractModel
|
||||
if (($mustOwner === 1 || $mustOwner === true) && !$task->isOwner() && !$project->owner) {
|
||||
throw new ApiException('仅限项目或任务负责人操作');
|
||||
}
|
||||
//
|
||||
if ($mustOwner === 3 && !$task->isActor() && !$task->isOwner() && !$project->owner) {
|
||||
throw new ApiException('仅限项目或任务负责人或任务参与者或者任务创建人操作');
|
||||
}
|
||||
return $task;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user