summaryrefslogtreecommitdiffstats
path: root/app/model/issue.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/model/issue.php')
-rw-r--r--app/model/issue.php66
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);
}
}