diff options
author | Simon Rettberg | 2016-05-03 19:03:09 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-05-03 19:03:09 +0200 |
commit | 50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66 (patch) | |
tree | 05e99fdffa696434960d7c77966c0bc36d6339e8 /modules-available/usermanagement | |
parent | Second half of merge.... (diff) | |
download | slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.tar.gz slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.tar.xz slx-admin-50404f3b23b7fd6aeae4c9d2f6df0ea25e984e66.zip |
WIP
Diffstat (limited to 'modules-available/usermanagement')
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 |