aboutsummaryrefslogtreecommitdiff
path: root/h-source/Application
diff options
context:
space:
mode:
authorAntonio Gallo <tonicucoz@gmail.com>2010-12-04 16:08:32 +0000
committerAntonio Gallo <tonicucoz@gmail.com>2010-12-04 16:08:32 +0000
commitb64ea63443e33fc070298c0130461c834de342bc (patch)
tree12ddddc2c060b6916c6e8ed921a73a03c64d0f1e /h-source/Application
parent498e38bfaecf95b1f854c63c5d15d57f4b34ea89 (diff)
moderators can now consult the list of actions carried out by other moderators
Diffstat (limited to 'h-source/Application')
-rw-r--r--h-source/Application/Controllers/HistoryController.php44
-rw-r--r--h-source/Application/Controllers/ModeratorsController.php70
-rw-r--r--h-source/Application/Views/Meet/contributions.php14
-rw-r--r--h-source/Application/Views/Moderators/index.php74
-rw-r--r--h-source/Application/Views/My/panel.php6
-rw-r--r--h-source/Application/Views/Search/results.php2
6 files changed, 183 insertions, 27 deletions
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 @@
+<?php
+
+// h-source, a web software to build a community of people that want to share their hardware information.
+// Copyright (C) 2010 Antonio Gallo (h-source-copyright.txt)
+//
+// This file is part of h-source
+//
+// h-source is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// h-source is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with h-source. If not, see <http://www.gnu.org/licenses/>.
+
+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 @@
</div>
<?php } ?>
+ <!--talk messages submitted-->
+ <?php if ($hasTalk) { ?>
+ <div class="user_hardware_pages">
+ <a href="<?php echo $this->baseUrl."/meet/talk/$lang/$meet_username".$this->viewStatus;?>">talk messages submitted by <b><?php echo $meet_username;?></b></a>
+ </div>
+ <?php } ?>
+
<!--issues opened-->
<?php if ($hasIssues) { ?>
<div class="user_hardware_pages">
@@ -53,13 +60,6 @@
</div>
<?php } ?>
- <!--talk messages submitted-->
- <?php if ($hasTalk) { ?>
- <div class="user_hardware_pages">
- <a href="<?php echo $this->baseUrl."/meet/talk/$lang/$meet_username".$this->viewStatus;?>">talk messages submitted by <b><?php echo $meet_username;?></b></a>
- </div>
- <?php } ?>
-
</div>
</div> \ 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 @@
+<?php if (!defined('EG')) die('Direct access not allowed!'); ?>
+
+<?php
+// h-source, a web software to build a community of people that want to share their hardware information.
+// Copyright (C) 2010 Antonio Gallo (h-source-copyright.txt)
+//
+// This file is part of h-source
+//
+// h-source is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// h-source is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with h-source. If not, see <http://www.gnu.org/licenses/>.
+?>
+
+ <div id="left">
+
+ <div class="position_tree_box">
+ <a href="<?php echo $this->baseUrl."/home/index/$lang";?>">Home</a> &raquo; <a href="<?php echo $this->baseUrl."/my/home/$lang/$token";?>">panel</a> &raquo; moderators' page
+ </div>
+
+ <div class="contrib_explain_box">
+ List of actions carried out by moderators
+ </div>
+
+ <table class="listTable">
+ <tr class="listHead">
+ <td class="simpleText">ACTION ID</td>
+ <td class="simpleText">MODERATOR</td>
+ <td class="simpleText">ACTION</td>
+ <td class="simpleText">TYPE</td>
+ <td class="simpleText">OBJECT ID</td>
+ <td class="simpleText text_item_date">DATE</td>
+ <td class="simpleText">MOTIVATION</td>
+ </tr>
+ <?php foreach ($table as $row) { ?>
+ <tr class="listRow">
+ <td class="simpleText">
+ <span class='textItem'><?php echo $row['history']['id_history'];?></span>
+ </td>
+ <td class="simpleText">
+ <span class='textItem'><?php echo $u->getUser($row['history']['created_by']);?></span>
+ </td>
+ <td class="simpleText">
+ <span class='textItem'><?php echo $row['history']['action'];?></span>
+ </td>
+ <td class="simpleText">
+ <span class='textItem'><?php echo $row['history']['type'];?></span>
+ </td>
+ <td class="simpleText">
+ <span class='textItem'><?php echo $row['history']['id'];?></span>
+ </td>
+ <td class="simpleText text_item_date">
+ <span class='textItem'><?php echo smartDate($row['history']['creation_date']);?></span>
+ </td>
+ <td class="simpleText">
+ <span class='textItem'><?php echo $row['history']['message'];?></span>
+ </td>
+ </tr>
+ <?php } ?>
+ </table>
+
+ <div class="history_page_list">
+ <?php echo gtext("page list");?>: <?php echo $pageList;?>
+ </div>
+
+ </div>
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 @@
</div>
<?php } ?>
+ <?php if ($ismoderator) { ?>
+ <div class="moderator_panel_link">
+ watch all the <a href="<?php echo Url::getRoot('moderators/actions/'.$lang);?>">moderators' actions</a>
+ </div>
+ <?php } ?>
+
<ul class='panelApplicationList'>
<li><a href="<?php echo Url::getRoot('meet/user/'.$lang.'/'.$username);?>">Watch your public profile</a></li>
<li><a href="<?php echo Url::getRoot('my/profile/'.$lang.'/'.$token);?>">Edit your profile</a></li>
diff --git a/h-source/Application/Views/Search/results.php b/h-source/Application/Views/Search/results.php
index d092bd7..1b6a27d 100644
--- a/h-source/Application/Views/Search/results.php
+++ b/h-source/Application/Views/Search/results.php
@@ -39,7 +39,7 @@
<div class="search_result_item">
<div>
- <?php echo gtext("model name");?>: <b><a href="<?php echo $this->baseUrl."/".MyStrings::$reverse[$row['hardware']['type']]."/view/$lang/".$row['hardware']['id_hard']."/".$row['hardware']['model'];?>"><?php echo $row['hardware']['model'];?></a></b>
+ <?php echo gtext("model name");?>: <b><a href="<?php echo $this->baseUrl."/".MyStrings::$reverse[$row['hardware']['type']]."/view/$lang/".$row['hardware']['id_hard']."/".encodeUrl($row['hardware']['model']);?>"><?php echo $row['hardware']['model'];?></a></b>
</div>
<div>
<?php echo gtext("model type");?>: <b><?php echo $row['hardware']['type'];?></b>