diff options
Diffstat (limited to 'app/model/issue.php')
-rw-r--r-- | app/model/issue.php | 66 |
1 files changed, 57 insertions, 9 deletions
diff --git a/app/model/issue.php b/app/model/issue.php index 4300bbb..7159015 100644 --- a/app/model/issue.php +++ b/app/model/issue.php @@ -23,7 +23,8 @@ if (isAction("iss-mesg-add")) { $form = new form(); $form->text("issue"); - $form->text("mesg"); + $form->text("mesg", false); + $form->text("assignee"); if (!$form->populate(input())) return; @@ -36,22 +37,69 @@ if (isAction("iss-mesg-add")) return; } - if (!$user->canCreateSub($issue)) + if (isset($form->mesg) && $form->mesg != "") { - logError(ERROR, "You do not have permission to post to this issue"); - return; + if (!$user->canCreateSub($issue)) + { + logError(ERROR, "You do not have permission to post to this issue"); + return; + } + + $mesg = mesg::initNew($form->mesg, $user, $issue); + + if ($mesg->setAttachment("attachment")) + logError(NOTICE, "Saved attachment " . $mesg->attachment); + } + + if (isset(input()['advIssue'])) + { + if (!$user->canModify($issue)) + { + logError(ERROR, "You do not have permission to move this issue"); + return; + } + + $issue->advance($user); + + if ($issue->isOpen()) + { + $sgename = $issue->getParent()->name; + $log = mesg::initNewLog("%s advanced issue to '" . $sgename . "'", $user, $issue); + } + else + { + $log = mesg::initNewLog("%s closed issue", $user, $issue); + } } - $mesg = mesg::initNew($form->mesg, $user, $issue); + else if (isset(input()['assIssue'])) + { + if (!$user->canModify($issue)) + { + logError(ERROR, "You do not have permission to assign this issue"); + return; + } + + $assignee = new user($form->assignee); + $stat = $issue->addAssignee($assignee, $user); - if ($mesg->setAttachment("attachment")) - logError(NOTICE, "Saved attachment " . $mesg->attachment); + if (!$stat) + logError(ERROR, "Failed to assign issue"); + else + $log = mesg::initNewLog("%s assigned " . $assignee->getDisplayName(), $user, $issue); + } - if (isset(input()['closeIssue'])) + else if (isset(input()['closeIssue'])) { + if (!$user->canModify($issue)) + { + logError(ERROR, "You do not have permission to close this issue"); + return; + } + $issue->close($user); logError(NOTICE, "Issue #" . $issue->numb . " closed"); - $log = mesg::initNewLog("% closed issue", $user, $issue); + $log = mesg::initNewLog("%s closed issue", $user, $issue); } } |