From 707e2af9d1907d4508c01cc10929fb410e565e70 Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Fri, 29 Sep 2017 18:00:10 +0200 Subject: [news] small design change + implemented new permission system --- modules-available/news/page.inc.php | 65 ++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 22 deletions(-) (limited to 'modules-available/news/page.inc.php') diff --git a/modules-available/news/page.inc.php b/modules-available/news/page.inc.php index ee377dc4..bf70f1a8 100644 --- a/modules-available/news/page.inc.php +++ b/modules-available/news/page.inc.php @@ -32,12 +32,6 @@ class Page_News extends Page // load user, we will need it later User::load(); - // only admins should be able to edit news - if (!User::hasPermission('superadmin')) { - Message::addError('main.no-permission'); - Util::redirect('?do=Main'); - } - // check which action we need to do $action = Request::any('action', 'show'); if ($action === 'clear') { @@ -66,26 +60,53 @@ class Page_News extends Page $pageType = Request::post('news-type'); if ($pageType == 'news') { - if (!$this->saveNews()) { - // re-set the fields we got - Request::post('news-title') ? $this->newsTitle = Request::post('news-title') : $this->newsTitle = false; - Request::post('news-content') ? $this->newsContent = Request::post('news-content') : $this->newsContent = false; - } else { - Message::addSuccess('news-save-success'); - $lastId = Database::lastInsertId(); - Util::redirect("?do=News&newsid=$lastId"); - } + if(User::hasPermission("news.save")) { + if (!$this->saveNews()) { + // re-set the fields we got + Request::post('news-title') ? $this->newsTitle = Request::post('news-title') : $this->newsTitle = false; + Request::post('news-content') ? $this->newsContent = Request::post('news-content') : $this->newsContent = false; + } else { + Message::addSuccess('news-save-success'); + $lastId = Database::lastInsertId(); + Util::redirect("?do=News&newsid=$lastId"); + } + } else { + Message::addError('main.no-permission'); + Util::redirect('?do=news'); + } } elseif ($pageType == 'help') { - if ($this->saveHelp()) { - Message::addSuccess('help-save-success'); - $lastId = Database::lastInsertId(); - Util::redirect("?do=News&newsid=$lastId"); - } + if(User::hasPermission("help.save")) { + if ($this->saveHelp()) { + Message::addSuccess('help-save-success'); + $lastId = Database::lastInsertId(); + Util::redirect("?do=News&newsid=$lastId"); + } + } else { + Message::addError('main.no-permission'); + Util::redirect('?do=news'); + } } } elseif ($action === 'delete') { // delete it - $this->delNews(Request::post('newsid')); - Util::redirect('?do=News&editHelp='.Request::any('editHelp')); + $pageType = Request::post('news-type'); + + if ($pageType == 'news') { + if (User::hasPermission("news.delete")) { + $this->delNews(Request::post('newsid')); + Util::redirect('?do=News&editHelp='.Request::any('editHelp')); + } else { + Message::addError('main.no-permission'); + Util::redirect('?do=news'); + } + } elseif ($pageType == 'help') { + if (User::hasPermission("help.delete")) { + $this->delNews(Request::post('newsid')); + Util::redirect('?do=News&editHelp='.Request::any('editHelp')); + } else { + Message::addError('main.no-permission'); + Util::redirect('?do=news'); + } + } } else { // unknown action, redirect user Message::addError('invalid-action', $action); -- cgit v1.2.3-55-g7522