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

View File

@ -629,6 +629,24 @@ class ProjectTask extends AbstractModel
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 完成时间