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.php58
1 files changed, 58 insertions, 0 deletions
diff --git a/app/model/issue.php b/app/model/issue.php
new file mode 100644
index 0000000..4300bbb
--- /dev/null
+++ b/app/model/issue.php
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ * SCROTT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * For more information, please refer to UNLICENSE
+ */
+
+require_once "class/form.class.php";
+require_once "class/issue.class.php";
+require_once "class/mesg.class.php";
+
+/*
+ * Action: iss-mesg-add - Post new issue message
+ */
+if (isAction("iss-mesg-add"))
+{
+ $form = new form();
+ $form->text("issue");
+ $form->text("mesg");
+
+ if (!$form->populate(input()))
+ return;
+
+ $issue = new issue($form->issue);
+
+ if (!($user = user::getCurrent()))
+ {
+ logError(ERROR, "You must be logged in to post a message");
+ 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()['closeIssue']))
+ {
+ $issue->close($user);
+ logError(NOTICE, "Issue #" . $issue->numb . " closed");
+ $log = mesg::initNewLog("% closed issue", $user, $issue);
+ }
+}
+
+?>