aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Gallo <tonicucoz@gmail.com>2013-10-15 19:25:31 +0000
committerAntonio Gallo <tonicucoz@gmail.com>2013-10-15 19:25:31 +0000
commitaf80b967213a02fc9cd39dbddbdb2ac582b00200 (patch)
tree3f54abef1eca38b1ac129029f443d77651bdeef3
parenta93461b231fb94f3a6a9df09a30557732201ddcc (diff)
added the ManagerController and the manager users group. Now the users in the manager group can modify the list of allowed distros by means of the main panel
-rw-r--r--h-source/Application/Controllers/ManagerController.php72
-rw-r--r--h-source/Application/Include/distributions.php2
-rw-r--r--h-source/Application/Include/languages.php3
-rw-r--r--h-source/Application/Models/DistrosModel.php2
-rw-r--r--h-source/Application/Views/Desktop/Manager/distros.php35
-rw-r--r--h-source/Config/Route.php1
-rw-r--r--h-source/Public/Css/main.css73
-rw-r--r--h-source/README.txt6
-rw-r--r--h-source/tables.sql46
9 files changed, 219 insertions, 21 deletions
diff --git a/h-source/Application/Controllers/ManagerController.php b/h-source/Application/Controllers/ManagerController.php
new file mode 100644
index 0000000..b178ea6
--- /dev/null
+++ b/h-source/Application/Controllers/ManagerController.php
@@ -0,0 +1,72 @@
+<?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!');
+
+//this controller is used to carry out the actions of the superadmin
+class ManagerController extends BaseController
+{
+
+ public function __construct($model, $controller, $queryString)
+ {
+ parent::__construct($model, $controller, $queryString);
+
+ $this->model('DistrosModel');
+ $this->modelName = 'DistrosModel';
+
+ $data['title'] = 'Manager - '.Website::$generalName;
+ $this->append($data);
+
+ $this->setArgKeys(array('page:forceInt'=>1));
+
+ $this->s['registered']->check('manager');
+ }
+
+ public function distros($lang = 'en') { //view all the users
+
+ $this->shift(1);
+
+ $this->loadScaffold('main',array('popup'=>true,'popupType'=>'inclusive','recordPerPage'=>30, 'mainAction'=>'distros/'.$this->lang, "mainMenu" => "add"));
+
+ $this->scaffold->loadMain('distros.full_name,distros.clean_name','distros.id_distro','moveup,movedown,ledit,del');
+ $this->scaffold->setHead(gtext('TITLE').','.gtext('DISTRO-CODE'));
+
+ $this->scaffold->mainMenu->links['add']['url'] = 'form/insert/0';
+ $this->scaffold->mainMenu->links['add']['title'] = gtext('Insert a new distro');
+
+ $this->scaffold->update('del');
+
+ $this->scaffold->model->clear();
+
+ $this->scaffold->model->orderBy("id_order");
+
+ $this->scaffold->update('moveup,movedown');
+
+ $data['scaffold'] = $this->scaffold->render();
+// echo $this->scaffold->model->getQuery();
+
+ $data['notice'] = $this->scaffold->model->notice;
+
+ $this->append($data);
+ $this->cleverLoad('distros');
+ $this->right($this->lang);
+ }
+
+} \ No newline at end of file
diff --git a/h-source/Application/Include/distributions.php b/h-source/Application/Include/distributions.php
index 0572802..14d59d5 100644
--- a/h-source/Application/Include/distributions.php
+++ b/h-source/Application/Include/distributions.php
@@ -35,7 +35,7 @@ class Distributions
{
$distros = new DistrosModel();
- self::$allowed = $distros->clear()->toList("clean_name","full_name")->send();
+ self::$allowed = $distros->clear()->toList("clean_name","full_name")->orderBy("id_order")->send();
}
public static function getName($distList = '')
diff --git a/h-source/Application/Include/languages.php b/h-source/Application/Include/languages.php
index 0527dcf..a5cb2eb 100644
--- a/h-source/Application/Include/languages.php
+++ b/h-source/Application/Include/languages.php
@@ -419,6 +419,9 @@ class Lang
/*0358*/"Thanks for helping the h-node project and the free software movement!" => "Grazie per aver aiutato il progetto h-node e il movimento del software libero!",
/*0359*/"You have just inserted a new notebook into the database. Can you please insert its devices separately too? Thanks!" => "Hai appena inserito un nuovo portatile. Potresti gentilmente inserire separatamente anche i suoi dispositivi?",
/*0360*/"insert" => "inserisci",
+ /*0361*/"List of allowed fully free distributions" => "Lista delle distribuzioni completamente libere ammesse",
+ /*0362*/"Insert a new distro" => "Inserisci una nuova distribuzione",
+ /*0362*/"DISTRO-CODE" => "CODICE DISTRIBUZIONE",
),
'es' => array
(
diff --git a/h-source/Application/Models/DistrosModel.php b/h-source/Application/Models/DistrosModel.php
index 41e0c6a..58cd435 100644
--- a/h-source/Application/Models/DistrosModel.php
+++ b/h-source/Application/Models/DistrosModel.php
@@ -26,6 +26,8 @@ class DistrosModel extends Model_Tree {
$this->_tables = 'distros';
$this->_idFields = 'id_distro';
+ $this->_idOrder = 'id_order';
+
parent::__construct();
}
diff --git a/h-source/Application/Views/Desktop/Manager/distros.php b/h-source/Application/Views/Desktop/Manager/distros.php
new file mode 100644
index 0000000..79d60ea
--- /dev/null
+++ b/h-source/Application/Views/Desktop/Manager/distros.php
@@ -0,0 +1,35 @@
+<?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; <?php echo gtext('List of allowed fully free distributions');?>
+ </div>
+
+ <div class="contrib_explain_box">
+ <?php echo gtext('List of allowed fully free distributions');?>
+ </div>
+
+ <?php echo $scaffold;?>
+
+ </div>
diff --git a/h-source/Config/Route.php b/h-source/Config/Route.php
index 9086b08..2aa6720 100644
--- a/h-source/Config/Route.php
+++ b/h-source/Config/Route.php
@@ -267,6 +267,7 @@ class Route
'hostcontrollers,differences',
'hostcontrollers,climb',
'hostcontrollers,talk',
+ 'manager,distros',
);
//it can be 'yes' or 'no'
diff --git a/h-source/Public/Css/main.css b/h-source/Public/Css/main.css
index 2314940..267cfd5 100644
--- a/h-source/Public/Css/main.css
+++ b/h-source/Public/Css/main.css
@@ -2128,6 +2128,79 @@ div#description_tabs_content
font-size:12px;
}
+/*page division*/
+.pageList {
+ text-align:left;
+ font:normal 14px/1 Verdana,arial;
+ padding:10px;
+}
+
+div.pageList a {
+ padding:0 5px;
+ padding:0 10px;
+ border-left:1px solid #708090;
+ color: #686868;
+ text-decoration:none;
+/* background:#4169E1; */
+}
+
+.page_list_legend
+{
+ padding-right:10px;
+}
+
+
+.mainMenu {
+ height:35px;
+ padding-top:6px;
+ margin-bottom:10px;
+}
+
+.scaffold_header
+{
+ background:#ffa524;
+ padding:6px;
+ font:bold 14px/1.5 Verdana,arial;
+ color:#ffffff;
+ position:relative;
+ z-index:1;
+ height:22px;
+}
+
+.mainMenuItem, .mainMenuItemLarge {
+ float:left;
+ width:105px;
+ height:25px;
+ margin:10px;
+ text-align:left;
+}
+.mainMenuItemLarge
+{
+ width:185px;
+}
+.mainMenuItem img, .mainMenuItemLarge img
+{
+ vertical-align:middle;
+}
+
+.mainMenuItem a, .mainMenuItemLarge a {
+ vertical-align:-2px;
+ color: #686868;
+ font:bold 16px/1 Verdana,arial;
+ font-size:14px;
+}
+
+
+td.editForm, td.delForm, td.associateForm, td.moveupForm, td.movedownForm,td.Form, td.ledit {
+ width:3%;
+}
+
+
+td.simpleLink
+{
+ width:3%;
+}
+
/*.version_div a
{
display:block;
diff --git a/h-source/README.txt b/h-source/README.txt
index fd7a4a9..e0e016b 100644
--- a/h-source/README.txt
+++ b/h-source/README.txt
@@ -39,6 +39,12 @@ where username and password have to be changed with the real username and passwo
Now you have created the database named <db>
+This will also create the default user having the following credentials:
+
+username: admin
+password: admin
+
+You will be able to login using the admin user and change the website preferences and the admin password.
Open the Config/Config.php file
diff --git a/h-source/tables.sql b/h-source/tables.sql
index a695600..f9ef911 100644
--- a/h-source/tables.sql
+++ b/h-source/tables.sql
@@ -33,7 +33,7 @@ CREATE TABLE IF NOT EXISTS `accesses` (
`ora` char(8) NOT NULL,
`username` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=650 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -46,7 +46,7 @@ CREATE TABLE IF NOT EXISTS `admingroups` (
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id_group`),
UNIQUE KEY `name` (`name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -78,7 +78,7 @@ CREATE TABLE IF NOT EXISTS `adminusers` (
PRIMARY KEY (`id_user`),
UNIQUE KEY `username` (`username`),
KEY `username_2` (`username`,`password`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -106,7 +106,7 @@ CREATE TABLE IF NOT EXISTS `boxes` (
`title` varchar(150) NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id_box`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -123,7 +123,7 @@ CREATE TABLE IF NOT EXISTS `deletion` (
`id_hard` int(10) unsigned NOT NULL,
`id_duplicate` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_del`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -171,7 +171,7 @@ CREATE TABLE IF NOT EXISTS `hardware` (
`it_tracks_users` varchar(30) NOT NULL DEFAULT 'not-specified',
`prevent_wifi` char(20) NOT NULL DEFAULT 'not-specified',
PRIMARY KEY (`id_hard`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=503 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -203,7 +203,7 @@ CREATE TABLE IF NOT EXISTS `history` (
`message` text NOT NULL,
`gr` char(15) NOT NULL,
PRIMARY KEY (`id_history`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1367 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
-- --------------------------------------------------------
@@ -224,7 +224,7 @@ CREATE TABLE IF NOT EXISTS `issues` (
`notice` text NOT NULL,
`deleted` char(4) NOT NULL DEFAULT 'no',
PRIMARY KEY (`id_issue`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=106 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -241,7 +241,7 @@ CREATE TABLE IF NOT EXISTS `messages` (
`deleted` char(4) NOT NULL DEFAULT 'no',
`has_read` char(4) NOT NULL DEFAULT 'no',
PRIMARY KEY (`id_mes`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=342 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -255,7 +255,7 @@ CREATE TABLE IF NOT EXISTS `news` (
`title` varchar(150) NOT NULL,
`message` text NOT NULL,
PRIMARY KEY (`id_news`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -268,7 +268,7 @@ CREATE TABLE IF NOT EXISTS `params` (
`updating` char(4) NOT NULL DEFAULT 'no',
`boxes_xml` text NOT NULL,
PRIMARY KEY (`id_par`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
-- --------------------------------------------------------
@@ -291,7 +291,7 @@ CREATE TABLE IF NOT EXISTS `profile` (
`website` varchar(100) NOT NULL,
`send_notification` char(4) NOT NULL DEFAULT 'yes',
PRIMARY KEY (`id_prof`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=330 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -306,7 +306,7 @@ CREATE TABLE IF NOT EXISTS `regaccesses` (
`ora` char(8) NOT NULL,
`username` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3529 ;
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
-- --------------------------------------------------------
@@ -319,7 +319,7 @@ CREATE TABLE IF NOT EXISTS `reggroups` (
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id_group`),
UNIQUE KEY `name` (`name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
-- --------------------------------------------------------
@@ -360,7 +360,7 @@ CREATE TABLE IF NOT EXISTS `regusers` (
PRIMARY KEY (`id_user`),
UNIQUE KEY `username` (`username`),
KEY `username_2` (`username`,`password`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=463 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
-- --------------------------------------------------------
@@ -421,7 +421,7 @@ CREATE TABLE IF NOT EXISTS `revisions` (
`it_tracks_users` varchar(30) NOT NULL DEFAULT 'not-specified',
`prevent_wifi` char(20) NOT NULL DEFAULT 'not-specified',
PRIMARY KEY (`id_rev`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=627 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -438,7 +438,7 @@ CREATE TABLE IF NOT EXISTS `talk` (
`id_hard` int(10) unsigned NOT NULL,
`deleted` char(4) NOT NULL DEFAULT 'no',
PRIMARY KEY (`id_talk`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=259 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -458,7 +458,7 @@ CREATE TABLE IF NOT EXISTS `wiki` (
`blocked` char(3) NOT NULL DEFAULT 'no',
`is_main` char(3) NOT NULL DEFAULT 'no',
PRIMARY KEY (`id_wiki`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=30 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -476,7 +476,7 @@ CREATE TABLE IF NOT EXISTS `wiki_revisions` (
`page` text NOT NULL,
`id_wiki` int(10) unsigned NOT NULL,
PRIMARY KEY (`id_rev`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=252 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -493,7 +493,7 @@ CREATE TABLE IF NOT EXISTS `wiki_talk` (
`id_wiki` int(10) unsigned NOT NULL,
`deleted` char(4) NOT NULL DEFAULT 'no',
PRIMARY KEY (`id_talk`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@@ -587,3 +587,9 @@ insert into distros (clean_name, full_name, id_order) values ('ututo_xs_2012_04'
insert into distros (clean_name, full_name, id_order) values ('venenux_0_8', 'VENENUX 0.8', 23);
insert into distros (clean_name, full_name, id_order) values ('venenux_0_8_2', 'VENENUX-EC 0.8.2', 24);
insert into distros (clean_name, full_name, id_order) values ('venenux_0_9', 'VENENUX 0.9', 25);
+
+insert into reggroups (name) values ('manager');
+
+insert into regusers (username,password) values ('admin',sha1('admin'));
+
+insert into regusers_groups (id_user, id_group) values (1,1); \ No newline at end of file