From b64ea63443e33fc070298c0130461c834de342bc Mon Sep 17 00:00:00 2001 From: Antonio Gallo Date: Sat, 4 Dec 2010 16:08:32 +0000 Subject: moderators can now consult the list of actions carried out by other moderators --- .../Application/Controllers/HistoryController.php | 44 ++++--- .../Controllers/ModeratorsController.php | 70 ++++++++++ h-source/Application/Views/Meet/contributions.php | 14 +- h-source/Application/Views/Moderators/index.php | 74 +++++++++++ h-source/Application/Views/My/panel.php | 6 + h-source/Application/Views/Search/results.php | 2 +- h-source/Config/Route.php | 1 + h-source/Public/Css/website.css | 141 ++++++++++++++------- h-source/tables.sql | 3 +- 9 files changed, 281 insertions(+), 74 deletions(-) create mode 100644 h-source/Application/Controllers/ModeratorsController.php create mode 100644 h-source/Application/Views/Moderators/index.php diff --git a/h-source/Application/Controllers/HistoryController.php b/h-source/Application/Controllers/HistoryController.php index 997878b..76b1158 100644 --- a/h-source/Application/Controllers/HistoryController.php +++ b/h-source/Application/Controllers/HistoryController.php @@ -76,6 +76,7 @@ class HistoryController extends BaseController 'id_name' => 'id_mes', 'field_name' => 'deleted', 'actions' => array('hide','show'), + 'group' => 'moderator', ), @@ -86,6 +87,7 @@ class HistoryController extends BaseController 'id_name' => 'id_talk', 'field_name' => 'deleted', 'actions' => array('hide','show'), + 'group' => 'moderator', ), @@ -96,6 +98,7 @@ class HistoryController extends BaseController 'id_name' => 'id_user', 'field_name' => 'blocked', 'actions' => array('block','unblock'), + 'group' => 'moderator', ), @@ -142,22 +145,23 @@ class HistoryController extends BaseController if ($this->s['registered']->status['status'] === 'logged') { - if ($this->ismoderator) + if (!$this->s['registered']->checkCsrf($clean['token'])) die("wrong token"); + + if ($this->m['UsersModel']->isBlocked($this->s['registered']->status['id_user'])) die("your account has been blocked"); + + $clean['id_user'] = (int)$this->s['registered']->status['id_user']; + $clean['id'] = $this->request->post('id',0,'forceInt'); + $type = $this->request->post('type','','sanitizeAll'); + $message = $this->request->post('message',''); + + $modelName = 'error'; + + if (array_key_exists($type,$this->types)) { - if (!$this->s['registered']->checkCsrf($clean['token'])) die("wrong token"); - - if ($this->m['UsersModel']->isBlocked($this->s['registered']->status['id_user'])) die("your account has been blocked"); - - $clean['id_user'] = (int)$this->s['registered']->status['id_user']; - $clean['id'] = $this->request->post('id',0,'forceInt'); - $type = $this->request->post('type',0,'sanitizeAll'); - $message = $this->request->post('message',''); - - $modelName = 'error'; - - if (array_key_exists($type,$this->types)) + if (in_array($action,$this->types[$type]['actions'])) { - if (in_array($action,$this->types[$type]['actions'])) + $clean['group'] = $this->types[$type]['group']; + if (in_array($clean['group'],$this->s['registered']->status['groups'])) { $modelName = $this->types[$type]['model_name']; $clean['type'] = $this->types[$type]['clean_type']; @@ -182,6 +186,7 @@ class HistoryController extends BaseController { $this->m['HistoryModel']->setFields('id:forceInt,type,message','sanitizeAll'); $this->m['HistoryModel']->values['created_by'] = $clean['id_user']; + $this->m['HistoryModel']->values['gr'] = $clean['group']; $this->m['HistoryModel']->values['action'] = $this->strings[$action]['action']; $this->m['HistoryModel']->updateTable('insert'); @@ -217,12 +222,13 @@ class HistoryController extends BaseController if ($this->s['registered']->status['status'] === 'logged') { - if ($this->ismoderator) + if (!$this->m['UsersModel']->isBlocked($this->s['registered']->status['id_user'])) { - if (!$this->m['UsersModel']->isBlocked($this->s['registered']->status['id_user'])) + $clean['id'] = (int)$id; + if (array_key_exists($type,$this->types)) { - $clean['id'] = (int)$id; - if (array_key_exists($type,$this->types)) + $clean['group'] = $this->types[$type]['group']; + if (in_array($clean['group'],$this->s['registered']->status['groups'])) { $clean['type'] = $this->types[$type]['clean_type']; @@ -237,7 +243,7 @@ class HistoryController extends BaseController break; } - $data['res'] = $this->m['HistoryModel']->select()->where(array('id'=>$clean['id'],'type'=>$clean['type']))->send(); + $data['res'] = $this->m['HistoryModel']->select()->where(array('id'=>$clean['id'],'type'=>$clean['type'],'gr'=>$clean['group']))->send(); $data['md_action'] = array('hide'=>'hidden','show'=>'restored','block'=>'blocked','unblock'=>'un-blocked'); diff --git a/h-source/Application/Controllers/ModeratorsController.php b/h-source/Application/Controllers/ModeratorsController.php new file mode 100644 index 0000000..f7a5737 --- /dev/null +++ b/h-source/Application/Controllers/ModeratorsController.php @@ -0,0 +1,70 @@ +. + +if (!defined('EG')) die('Direct access not allowed!'); + +class ModeratorsController extends BaseController +{ + + public function __construct($model, $controller, $queryString) + { + parent::__construct($model, $controller, $queryString); + + $this->model('HistoryModel'); + + $this->modelName = 'HistoryModel'; + + $data['title'] = 'moderators page - '.Website::$generalName; + $this->append($data); + + $this->setArgKeys(array('page:forceNat'=>1)); + } + + public function actions($lang = 'en') + { + $this->shift(1); + + Params::$nullQueryValue = 'undef'; + + $this->s['registered']->check('moderator'); + + $whereClauseArray = array( + 'gr' => 'moderator', + ); + + $this->helper('Pages','moderators/actions/'.$this->lang,'page'); + + $this->m['HistoryModel']->clear()->select()->where($whereClauseArray)->orderBy('id_history desc'); + + $recordNumber = $this->m['HistoryModel']->rowNumber(); + $page = $this->viewArgs['page']; + + $this->m['HistoryModel']->limit = $this->h['Pages']->getLimit($page,$recordNumber,30); + + $data['table'] = $this->m['HistoryModel']->send(); + + $data['pageList'] = $this->h['Pages']->render($page-4,8); + + $this->append($data); + $this->load('index'); + $this->right(); + } + +} \ No newline at end of file diff --git a/h-source/Application/Views/Meet/contributions.php b/h-source/Application/Views/Meet/contributions.php index a62160d..1ebbf30 100644 --- a/h-source/Application/Views/Meet/contributions.php +++ b/h-source/Application/Views/Meet/contributions.php @@ -39,6 +39,13 @@ + + +
+ viewStatus;?>">talk messages submitted by +
+ +
@@ -53,13 +60,6 @@
- - -
- viewStatus;?>">talk messages submitted by -
- - \ No newline at end of file diff --git a/h-source/Application/Views/Moderators/index.php b/h-source/Application/Views/Moderators/index.php new file mode 100644 index 0000000..7594695 --- /dev/null +++ b/h-source/Application/Views/Moderators/index.php @@ -0,0 +1,74 @@ + + +. +?> + +
+ +
+ ">Home » ">panel » moderators' page +
+ +
+ List of actions carried out by moderators +
+ + + + + + + + + + + + + + + + + + + + + + +
ACTION IDMODERATORACTIONTYPEOBJECT IDDATEMOTIVATION
+ + + getUser($row['history']['created_by']);?> + + + + + + + + + + +
+ +
+ : +
+ +
diff --git a/h-source/Application/Views/My/panel.php b/h-source/Application/Views/My/panel.php index 44f159e..b5cc35e 100644 --- a/h-source/Application/Views/My/panel.php +++ b/h-source/Application/Views/My/panel.php @@ -32,6 +32,12 @@ + + + +