summaryrefslogtreecommitdiffstats
path: root/modules-available/usermanagement
diff options
context:
space:
mode:
authorSimon Rettberg2016-05-03 19:03:09 +0200
committerSimon Rettberg2016-05-03 19:03:09 +0200
commit50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66 (patch)
tree05e99fdffa696434960d7c77966c0bc36d6339e8 /modules-available/usermanagement
parentSecond half of merge.... (diff)
downloadslx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.tar.gz
slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.tar.xz
slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.zip
WIP
Diffstat (limited to 'modules-available/usermanagement')
-rw-r--r--modules-available/usermanagement/config.json5
-rw-r--r--modules-available/usermanagement/lang/en/module.json19
-rw-r--r--modules-available/usermanagement/lang/en/templates/user-management.json18
-rw-r--r--modules-available/usermanagement/lang/pt/module.json19
-rw-r--r--modules-available/usermanagement/page.inc.php109
-rw-r--r--modules-available/usermanagement/templates/user-management.html127
6 files changed, 297 insertions, 0 deletions
diff --git a/modules-available/usermanagement/config.json b/modules-available/usermanagement/config.json
new file mode 100644
index 00000000..b9fc3ad3
--- /dev/null
+++ b/modules-available/usermanagement/config.json
@@ -0,0 +1,5 @@
+{
+ "category":"main.users",
+ "enabled":"true",
+ "permission":"0"
+}
diff --git a/modules-available/usermanagement/lang/en/module.json b/modules-available/usermanagement/lang/en/module.json
new file mode 100644
index 00000000..a8114ffc
--- /dev/null
+++ b/modules-available/usermanagement/lang/en/module.json
@@ -0,0 +1,19 @@
+{
+ "lang_cancelConfirm": "Do you really want to delete this users?",
+ "lang_close": "Close",
+ "lang_create": "Create",
+ "lang_edit": "Edit",
+ "lang_editUser": "Edit User",
+ "lang_email": "Email",
+ "lang_login": "Login",
+ "lang_operations": "Operation",
+ "lang_password": "Password",
+ "lang_remove": "Remove",
+ "lang_save": "Save",
+ "lang_telephone": "Telephone",
+ "lang_userAdmin": "Administrator",
+ "lang_userInfo": "On this section, you will be able to create website users, besides editing or removing existing users.",
+ "lang_userPage": "Users",
+ "lang_username": "Username",
+ "module_name": "Management"
+} \ No newline at end of file
diff --git a/modules-available/usermanagement/lang/en/templates/user-management.json b/modules-available/usermanagement/lang/en/templates/user-management.json
new file mode 100644
index 00000000..61225f55
--- /dev/null
+++ b/modules-available/usermanagement/lang/en/templates/user-management.json
@@ -0,0 +1,18 @@
+{
+ "lang_cancelConfirm": "Do you really want to delete this users?",
+ "lang_close": "Close",
+ "lang_create": "Create",
+ "lang_edit": "Edit",
+ "lang_editUser": "Edit User",
+ "lang_email": "Email",
+ "lang_login": "Login",
+ "lang_operations": "Operation",
+ "lang_password": "Password",
+ "lang_remove": "Remove",
+ "lang_save": "Save",
+ "lang_telephone": "Telephone",
+ "lang_userAdmin": "Administrator",
+ "lang_userInfo": "On this section, you will be able to create website users, besides editing or removing existing users.",
+ "lang_userPage": "Users",
+ "lang_username": "Username"
+} \ No newline at end of file
diff --git a/modules-available/usermanagement/lang/pt/module.json b/modules-available/usermanagement/lang/pt/module.json
new file mode 100644
index 00000000..d892e5c5
--- /dev/null
+++ b/modules-available/usermanagement/lang/pt/module.json
@@ -0,0 +1,19 @@
+{
+ "lang_cancelConfirm": "Deseja realmente remover o usu\u00e1rio?",
+ "lang_close": "Fechar",
+ "lang_create": "Criar",
+ "lang_edit": "Editar",
+ "lang_editUser": "Editar Usu\u00e1rio",
+ "lang_email": "Email",
+ "lang_login": "Login",
+ "lang_operations": "Opera\u00e7\u00f5es",
+ "lang_password": "Senha",
+ "lang_remove": "Remover",
+ "lang_save": "Salvar",
+ "lang_telephone": "Telefone",
+ "lang_userAdmin": "Administrador",
+ "lang_userInfo": "Nesta se\u00e7\u00e3o voc\u00ea poder\u00e1 criar usu\u00e1rios para o site, al\u00e9m de editar as informa\u00e7\u00f5es ou remover usu\u00e1rios existentes.",
+ "lang_userPage": "Usu\u00e1rios",
+ "lang_username": "Nome do Usu\u00e1rio",
+ "module_name": "Gerenciamento"
+} \ No newline at end of file
diff --git a/modules-available/usermanagement/page.inc.php b/modules-available/usermanagement/page.inc.php
new file mode 100644
index 00000000..01b5f755
--- /dev/null
+++ b/modules-available/usermanagement/page.inc.php
@@ -0,0 +1,109 @@
+<?php
+
+class Page_Usermanagement extends Page
+{
+ private $page;
+ private $deb;
+
+ protected function doPreprocess()
+ {
+ User::load();
+
+ $p = Request::get('page');
+ if($p != false)
+ $this->page = $p;
+ else
+ $this->page = 1;
+
+ switch(Request::post('action')){
+ case "editAdmin":
+ $this->edit(Request::post('userid'),Request::post('username'),Request::post('phone'),Request::post('email'), 1);
+ break;
+ case "edit":
+ $this->edit(Request::post('userid'),Request::post('username'),Request::post('phone'),Request::post('email'), 4);
+ break;
+ case "create":
+ $this->create(Request::post('login'),Request::post('username'),Request::post('pass'),Request::post('phone'),Request::post('email'), 4);
+ break;
+ case "delete":
+ $this->delete(Request::post('userid'));
+ break;
+ }
+
+ if(isset($_POST['userid']))
+ $this->deb = $_POST['userid'];
+
+ if (!User::hasPermission('superadmin')) {
+ Message::addError('no-permission');
+ Util::redirect('?do=Main');
+ }
+
+ }
+
+ protected function doRender()
+ {
+ // load every user
+ $admin = array();
+ $users = array();
+ $res = Database::simpleQuery("SELECT userid, login, fullname, phone, email, permissions FROM user ORDER BY userid DESC");
+ while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
+ if ($row['permissions'] == 1 )
+ $admin = array($row['userid'],$row['login'],$row['fullname'],$row['phone'],$row['email']);
+ else
+ $users[] = array(
+ 'id' => $row['userid'],
+ 'username' => $row['login'],
+ 'name' => $row['fullname'],
+ 'telephone' => $row['phone'],
+ 'email' => $row['email']
+ );
+ }
+
+ //$pag = new Paginate($users,$this->page);
+
+ Render::addTemplate('user-management', array(
+ 'admin_id' => $admin[0],
+ 'admin_username' => $admin[1],
+ 'admin_name' => $admin[2],
+ 'admin_telephone' => $admin[3],
+ 'admin_email' => $admin[4]
+ //'users' => $pag->getItems(),
+ //'pages' => $pag->getPagination()
+ ));
+ }
+
+ private function edit($userid, $newname, $newphone, $newemail, $newpermissions){
+ $data = array (
+ 'user' => $userid,
+ 'name' => $newname,
+ 'phone' => $newphone,
+ 'email' => $newemail,
+ 'permissions' => $newpermissions
+ );
+ Database::exec ( 'UPDATE user SET fullname = :name, phone = :phone, email = :email, permissions = :permissions WHERE userid = :user', $data );
+ Message::addSuccess('update-user');
+ }
+
+ private function create($login, $username, $password, $phone, $email){
+ $data = array (
+ 'login' => $login,
+ 'pass' => Crypto::hash6 ( $password ),
+ 'name' => $username,
+ 'phone' => $phone,
+ 'email' => $email
+ );
+ User::addUser($data);
+ }
+
+ private function delete($userid){
+ $data = array (
+ 'userid' => $userid
+ );
+ Database::exec ( 'DELETE FROM setting_partition WHERE user = :userid', $data );
+ Database::exec ( 'DELETE FROM setting_user WHERE user = :userid', $data );
+ Database::exec ( 'DELETE FROM setting_values WHERE user = :userid', $data );
+ Database::exec ( 'DELETE FROM user WHERE userid = :userid', $data );
+ Message::addSuccess('delete-user');
+ }
+
+}
diff --git a/modules-available/usermanagement/templates/user-management.html b/modules-available/usermanagement/templates/user-management.html
new file mode 100644
index 00000000..fc14355f
--- /dev/null
+++ b/modules-available/usermanagement/templates/user-management.html
@@ -0,0 +1,127 @@
+<div class="panel panel-primary">
+ <div class="panel-heading" style="background-image: none;" >
+ <div class="panel-title">{{lang_userAdmin}}</div>
+ </div>
+ <table class="table">
+ <tr>
+ <th style="text-align: center;">ID</th>
+ <th style="text-align: center;">{{lang_login}}</th>
+ <th style="text-align: center;">{{lang_username}}</th>
+ <th style="text-align: center;">{{lang_telephone}}</th>
+ <th style="text-align: center;">{{lang_email}}</th>
+ <th style="text-align: center;"></th>
+ </tr>
+ <tr>
+ <form method="post" action="">
+ <input type="hidden" name="action" value="editAdmin">
+ <input type="hidden" name="token" value="{{token}}">
+ <td><input class="form-control" name="userid" type="text" readonly="readonly" value="{{admin_id}}" size="3"></td>
+ <td><input class="form-control" type="text" disabled="disabled" value="{{admin_username}}"></td>
+ <td><input class="form-control" name="username" type="text" value="{{admin_name}}"></td>
+ <td><input class="form-control" name="phone" type="text" value="{{admin_telephone}}"></td>
+ <td><input class="form-control" name="email" type="text" value="{{admin_email}}"></td>
+ <td><input class="btn btn-primary" type="submit" value="{{lang_save}}"></td>
+ </form>
+ </tr>
+ </table>
+</div>
+
+<div class="panel panel-default" style="border-color:#333;">
+ <div class="panel-heading" style="border-color:#333;background-color:#333;background-image: none;color:#FFF;">
+ <div class="panel-title">{{lang_userPage}}</div>
+ </div>
+ <div class="panel-body">
+ <p>
+ {{lang_userInfo}}
+ </p>
+
+ </div>
+ <table class="table">
+ <tr>
+ <form method="post" action="?do=Usermanagement">
+ <input type="hidden" name="action" value="create">
+ <input type="hidden" name="token" value="{{token}}">
+ <td><input class="form-control" name="login" type="text" placeholder="{{lang_login}}"></td>
+ <td><input class="form-control" name="username" type="text" placeholder="{{lang_username}}"></td>
+ <td><input class="form-control" name="pass" type="password" placeholder="{{lang_password}}"></td>
+ <td><input class="form-control" name="phone" type="text" placeholder="{{lang_telephone}}"></td>
+ <td><input class="form-control" name="email" type="text" placeholder="{{lang_email}}"></td>
+ <td><input class="btn btn-primary" type="submit" value="{{lang_create}}"></td>
+ </form>
+ </tr>
+ <tr>
+ <th style="text-align: center;">ID</th>
+ <th style="text-align: center;">{{lang_login}}</th>
+ <th colspan="4">{{lang_operations}}</th>
+ </tr>
+ {{#users}}
+ <tr>
+ <td><input class="form-control" type="text" disabled="disabled" value="{{id}}" size="3"></td>
+ <td><input class="form-control" type="text" disabled="disabled" value="{{username}}"></td>
+ <td colspan="4">
+ <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#usr{{id}}"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span> {{lang_edit}}</button>
+ <form method="post" action="?do=Usermanagement" style="display:inline-block;">
+ <input type="hidden" name="action" value="delete">
+ <input type="hidden" name="userid" value="{{id}}">
+ <input type="hidden" name="token" value="{{token}}">
+ <button class="btn btn-danger" type="submit" onclick="return confirm('{{lang_cancelConfirm}}');"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span> {{lang_remove}}</a>
+ </form>
+ </td>
+ </tr>
+ {{/users}}
+ <tr>
+ <td colspan="6">
+ <ul class="pagination" style="margin:10px 0;">
+ {{#pages}}
+ <li class="{{class}}"><a href="?do=Usermanagement&page={{page}}">{{page}}</a></li>
+ {{/pages}}
+ </ul>
+ </td>
+ </tr>
+ </table>
+</div>
+{{#users}}
+<div class="modal fade" id="usr{{id}}" tabindex="-1" role="dialog">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header"><h4 class="modal-title">{{lang_editUser}}</h4></div>
+ <div class="modal-body">
+ <form method="post" action="">
+ <input type="hidden" name="action" value="edit">
+ <input type="hidden" name="token" value="{{token}}">
+ <div class="form-group">
+ <label for="userid">ID</label>
+ <input type="text" class="form-control" name="userid" readonly="readonly" name="userid" value="{{id}}">
+ </div>
+ <div class="form-group">
+ <label for="userid">Login</label>
+ <input type="text" class="form-control" name="login" disabled="disabled" placeholder="{{lang_login}}" value="{{username}}">
+ </div>
+ <div class="form-group">
+ <label for="userid">{{lang_username}}</label>
+ <input type="text" class="form-control" name="username" placeholder="{{lang_username}}" value="{{name}}">
+ </div>
+ <div class="form-group">
+ <label for="userid">{{lang_telephone}}</label>
+ <input type="text" class="form-control" name="phone" placeholder="{{lang_telephone}}" value="{{telephone}}">
+ </div>
+ <div class="form-group">
+ <label for="userid">{{lang_email}}</label>
+ <input type="text" class="form-control" name="email" placeholder="{{lang_email}}" value="{{email}}">
+ </div>
+ <div class="form-group">
+ <b>Permissões:</b>
+ <select name="permissions" class="form-control">
+ <option value="4">Normal</option>
+ </select>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <input class="btn btn-primary" type="submit" value="{{lang_save}}">
+ <a class="btn btn-default" data-dismiss="modal">{{lang_close}}</a>
+ </div>
+ </form>
+ </div>
+ </div>
+</div>
+{{/users}} \ No newline at end of file