fix: 任务负责人无法修改子任务的问题

This commit is contained in:
kuaifan 2021-12-23 23:20:04 +08:00
parent 41eb28992e
commit 08234afe4f
2 changed files with 24 additions and 6 deletions

View File

@ -666,7 +666,7 @@ class ProjectController extends AbstractController
} }
// //
$task = ProjectTask::userTask($file->task_id, [], true, $project); $task = ProjectTask::userTask($file->task_id, [], true, $project);
if (!$task->owner && !$project->owner) { if (!$task->isOwnerParent() && !$project->owner) {
return Base::retError('仅限项目或任务负责人操作'); return Base::retError('仅限项目或任务负责人操作');
} }
// //
@ -751,7 +751,7 @@ class ProjectController extends AbstractController
$name = Request::input('name'); $name = Request::input('name');
// //
$task = ProjectTask::userTask($task_id, [], true, $project); $task = ProjectTask::userTask($task_id, [], true, $project);
if (!$task->owner && !$project->owner) { if (!$task->isOwnerParent() && !$project->owner) {
return Base::retError('仅限项目或任务负责人添加'); return Base::retError('仅限项目或任务负责人添加');
} }
// //
@ -795,7 +795,7 @@ class ProjectController extends AbstractController
$task_id = intval($data['task_id']); $task_id = intval($data['task_id']);
// //
$task = ProjectTask::userTask($task_id, [], true, $project); $task = ProjectTask::userTask($task_id, [], true, $project);
if (!$task->owner && !$project->owner) { if (!$task->isOwnerParent() && !$project->owner) {
return Base::retError('仅限项目或任务负责人修改'); return Base::retError('仅限项目或任务负责人修改');
} }
// //
@ -841,7 +841,7 @@ class ProjectController extends AbstractController
$task_id = Base::getPostInt('task_id'); $task_id = Base::getPostInt('task_id');
// //
$task = ProjectTask::userTask($task_id, [], true, $project); $task = ProjectTask::userTask($task_id, [], true, $project);
if (!$task->owner && !$project->owner) { if (!$task->isOwnerParent() && !$project->owner) {
return Base::retError('仅限项目或任务负责人上传'); return Base::retError('仅限项目或任务负责人上传');
} }
// //
@ -940,7 +940,7 @@ class ProjectController extends AbstractController
$type = Request::input('type', 'add'); $type = Request::input('type', 'add');
// //
$task = ProjectTask::userTask($task_id, [], false, $project); $task = ProjectTask::userTask($task_id, [], false, $project);
if (!$task->owner && !$project->owner) { if (!$task->isOwnerParent() && !$project->owner) {
return Base::retError('仅限项目或任务负责人操作'); return Base::retError('仅限项目或任务负责人操作');
} }
// //
@ -968,7 +968,7 @@ class ProjectController extends AbstractController
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
// //
$task = ProjectTask::userTask($task_id, [], true, $project); $task = ProjectTask::userTask($task_id, [], true, $project);
if (!$task->owner && !$project->owner) { if (!$task->isOwnerParent() && !$project->owner) {
return Base::retError('仅限项目或任务负责人删除'); return Base::retError('仅限项目或任务负责人删除');
} }
// //

View File

@ -629,6 +629,24 @@ class ProjectTask extends AbstractModel
return $user->owner ? 2 : 1; return $user->owner ? 2 : 1;
} }
/**
* 是否负责人
* @param bool $isParent 是父级任务的负责人也算
* @return bool
*/
public function isOwnerParent($isParent = true) {
if ($this->owner) {
return true;
}
if ($isParent && $this->parent_id > 0) {
$parentTask = self::find($this->parent_id);
if ($parentTask?->owner) {
return true;
}
}
return false;
}
/** /**
* 标记已完成、未完成 * 标记已完成、未完成
* @param Carbon|null $complete_at 完成时间 * @param Carbon|null $complete_at 完成时间