/** * News anlegen * * @post /course/:course_id/news * @post /user/:user_id/news * @post /studip/news */ public function createNews($range_id = 'studip') { if (!\StudipNews::haveRangePermission('edit', $range_id, $GLOBALS['user']->id)) { $this->error(401, "Not authorized to create a news here."); } $news = new \StudipNews(); $news->setData(array('user_id' => $GLOBALS['user']->id, 'author' => $GLOBALS['user']->getFullName(), 'topic' => trim(@$this->data['topic']), 'body' => trim(@$this->data['body']), 'date' => time(), 'expire' => isset($this->data['expire']) ? intval($this->data['expire']) : 2 * 7 * 24 * 60 * 60, 'allow_comments' => isset($this->data['allow_comments']) ? intval($this->data['allow_comments']) : 0)); $news->addRange($range_id); if ($errors = $this->validateNews($news)) { $this->error(400, compact('errors')); } if (!$news->store()) { $this->error(500); } $news->storeRanges(); $this->redirect('news/' . $news->id, 201, "ok"); }