summaryrefslogtreecommitdiffstats
path: root/modules-available/adduser
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/adduser')
-rw-r--r--modules-available/adduser/lang/de/messages.json3
-rw-r--r--modules-available/adduser/lang/de/permissions.json6
-rw-r--r--modules-available/adduser/lang/de/template-tags.json8
-rw-r--r--modules-available/adduser/lang/en/messages.json3
-rw-r--r--modules-available/adduser/lang/en/permissions.json6
-rw-r--r--modules-available/adduser/lang/en/template-tags.json8
-rw-r--r--modules-available/adduser/page.inc.php4
-rw-r--r--modules-available/adduser/style.css4
-rw-r--r--modules-available/adduser/templates/page-adduser.html36
-rw-r--r--modules-available/adduser/templates/page-userlist.html24
10 files changed, 89 insertions, 13 deletions
diff --git a/modules-available/adduser/lang/de/messages.json b/modules-available/adduser/lang/de/messages.json
index 0ab4571f..a744ae5f 100644
--- a/modules-available/adduser/lang/de/messages.json
+++ b/modules-available/adduser/lang/de/messages.json
@@ -1,8 +1,11 @@
{
"adduser-success": "Benutzer erfolgreich hinzugef\u00fcgt",
+ "cannot-delete-1-self": "Sie k\u00f6nnen nicht den Benutzer mit der ID 1 oder sich selbst l\u00f6schen",
"db-error": "Datenbankfehler: {{0}}",
"password-changed": "Passwort ge\u00e4ndert",
"password-mismatch": "Passwort und Passwortbest\u00e4tigung stimmen nicht \u00fcberein",
+ "roles-updated": "Rollen aktualisiert",
+ "user-deleted": "Benutzer {{0}} (ID={1}}) gel\u00f6scht",
"user-edited": "Benutzerdaten wurden ge\u00e4ndert",
"user-not-found": "Benutzer mit ID {{0}} nicht gefunden"
} \ No newline at end of file
diff --git a/modules-available/adduser/lang/de/permissions.json b/modules-available/adduser/lang/de/permissions.json
new file mode 100644
index 00000000..636b73ff
--- /dev/null
+++ b/modules-available/adduser/lang/de/permissions.json
@@ -0,0 +1,6 @@
+{
+ "list.view": "Nutzerliste anzeigen",
+ "user.add": "Neuen Nutzer hinzuf\u00fcgen",
+ "user.edit": "Nutzer bearbeiten",
+ "user.remove": "Nutzer l\u00f6schen"
+} \ No newline at end of file
diff --git a/modules-available/adduser/lang/de/template-tags.json b/modules-available/adduser/lang/de/template-tags.json
index 0b6b2530..e13c3876 100644
--- a/modules-available/adduser/lang/de/template-tags.json
+++ b/modules-available/adduser/lang/de/template-tags.json
@@ -1,16 +1,24 @@
{
"lang_addUser": "Nutzer hinzuf\u00fcgen",
+ "lang_assignRoles": "Rollen zuweisen",
"lang_changeLoginHint": "Sie k\u00f6nnen den Namen, den der Nutzer beim Login angeben muss, \u00e4ndern. Dies ist nur bei lokalen Nutzern m\u00f6glich, die nicht \u00fcber LDAP\/AD authentifiziert werden.",
"lang_changeOwnPasswordHint": "Ihr eigenes Passwort k\u00f6nnen Sie \u00fcber den Button \"Passwort \u00e4ndern\" im Men\u00fc \u00e4ndern.",
"lang_changePassword": "Neues Passwort",
+ "lang_confirmDelete": "L\u00f6schen best\u00e4tigen",
"lang_confirmation": "Wiederholen",
"lang_createUser": "Benutzer anlegen",
"lang_editUser": "Benutzer bearbeiten",
"lang_email": "E-Mail",
"lang_fullName": "Vollst\u00e4ndiger Name",
+ "lang_fullnameMissing": "Kein Name angegeben",
"lang_login": "Login",
+ "lang_loginTooShort": "Login zu kurz",
"lang_name": "Name",
+ "lang_passwordTooShort": "Passwort zu kurz",
+ "lang_passwordsDontMatch": "Passworte stimmen nicht \u00fcberein",
"lang_phone": "Telefon",
+ "lang_role": "Rolle",
+ "lang_userDeleteConfirm": "M\u00f6chten Sie diesen Benutzer wirklich l\u00f6schen?",
"lang_userManagement": "Benutzerverwaltung",
"lang_userlist": "Benutzerliste"
} \ No newline at end of file
diff --git a/modules-available/adduser/lang/en/messages.json b/modules-available/adduser/lang/en/messages.json
index 69af3227..67bca6f9 100644
--- a/modules-available/adduser/lang/en/messages.json
+++ b/modules-available/adduser/lang/en/messages.json
@@ -1,8 +1,11 @@
{
"adduser-success": "User successfully added",
+ "cannot-delete-1-self": "Cannot delete user with ID 1 or yourself",
"db-error": "Database error: {{0}}",
"password-changed": "Password changed",
"password-mismatch": "Password and password confirmation do not match",
+ "roles-updated": "Roles have been updated",
+ "user-deleted": "Deleted user {{0}} (ID={{1}})",
"user-edited": "User data has been updated",
"user-not-found": "User with ID {{0}} not found"
} \ No newline at end of file
diff --git a/modules-available/adduser/lang/en/permissions.json b/modules-available/adduser/lang/en/permissions.json
new file mode 100644
index 00000000..d12d100e
--- /dev/null
+++ b/modules-available/adduser/lang/en/permissions.json
@@ -0,0 +1,6 @@
+{
+ "list.view": "Show userlist",
+ "user.add": "Add new user",
+ "user.edit": "Edit user",
+ "user.remove": "Remove user"
+} \ No newline at end of file
diff --git a/modules-available/adduser/lang/en/template-tags.json b/modules-available/adduser/lang/en/template-tags.json
index 2c9b8b53..de57b385 100644
--- a/modules-available/adduser/lang/en/template-tags.json
+++ b/modules-available/adduser/lang/en/template-tags.json
@@ -1,16 +1,24 @@
{
"lang_addUser": "Add user",
+ "lang_assignRoles": "Assign roles",
"lang_changeLoginHint": "You can change the login identifier used for logging in. This is only enabled for local acounts that are not linked to LDAP\/AD servers.",
"lang_changeOwnPasswordHint": "You can change your own password by clicking the \"change password\" button in the menu.",
"lang_changePassword": "Change password",
+ "lang_confirmDelete": "Confirm delete",
"lang_confirmation": "Confirm Password",
"lang_createUser": "Create User",
"lang_editUser": "Edit user",
"lang_email": "Email",
"lang_fullName": "Full Name",
+ "lang_fullnameMissing": "Full name missing",
"lang_login": "Login",
+ "lang_loginTooShort": "Login too short",
"lang_name": "Name",
+ "lang_passwordTooShort": "Password too short",
+ "lang_passwordsDontMatch": "Passwords don't match",
"lang_phone": "Phone",
+ "lang_role": "Role",
+ "lang_userDeleteConfirm": "Do you want to delete this user?",
"lang_userManagement": "User management",
"lang_userlist": "User list"
} \ No newline at end of file
diff --git a/modules-available/adduser/page.inc.php b/modules-available/adduser/page.inc.php
index 60785d6c..c43a04e6 100644
--- a/modules-available/adduser/page.inc.php
+++ b/modules-available/adduser/page.inc.php
@@ -129,7 +129,7 @@ class Page_AddUser extends Page
return;
}
//\\
- $user = Database::queryFirst('SELECT userid, login, fullname, phone, email
+ $user = Database::queryFirst('SELECT userid, login
FROM user WHERE userid = :userid', compact('userid'));
if ($user === false) {
Message::addError('user-not-found', $userid);
@@ -140,7 +140,7 @@ class Page_AddUser extends Page
return;
}
Database::exec('DELETE FROM user WHERE userid = :userid', compact('userid'));
- Message::addSuccess('user-deleted', $userid);
+ Message::addSuccess('user-deleted', $user['login'], $userid);
}
private function saveRoles($userid)
diff --git a/modules-available/adduser/style.css b/modules-available/adduser/style.css
index e459352b..15f04b80 100644
--- a/modules-available/adduser/style.css
+++ b/modules-available/adduser/style.css
@@ -13,3 +13,7 @@
-moz-box-sizing: border-box;
box-sizing: border-box;
}
+
+#add-msg {
+ height: 1em;
+} \ No newline at end of file
diff --git a/modules-available/adduser/templates/page-adduser.html b/modules-available/adduser/templates/page-adduser.html
index bd16dbbf..18d79a3b 100644
--- a/modules-available/adduser/templates/page-adduser.html
+++ b/modules-available/adduser/templates/page-adduser.html
@@ -3,18 +3,18 @@
<h2>{{lang_createUser}}</h2>
<div class="row">
<div class="col-md-4"><label for="login">{{lang_login}} *</label></div>
- <div class="col-md-4"><input id="label" type="text" name="login" value="{{login}}" class="form-control" placeholder="{{lang_username}}" autofocus></div>
+ <div class="col-md-4"><input id="login" type="text" name="login" value="{{login}}" class="form-control event-box" placeholder="{{lang_username}}" autofocus></div>
</div>
<br>
<div class="row">
<div class="col-md-4"><label for="pass1">{{lang_password}} *</label></div>
- <div class="col-md-4"><input id="pass1" type="password" name="pass1" class="form-control" placeholder="{{lang_password}}"></div>
- <div class="col-md-4"><input type="password" name="pass2" class="form-control" placeholder="{{lang_confirmation}}"></div>
+ <div class="col-md-4"><input id="pass1" type="password" name="pass1" class="form-control event-box" placeholder="{{lang_password}}"></div>
+ <div class="col-md-4"><input id="pass2" type="password" name="pass2" class="form-control event-box" placeholder="{{lang_confirmation}}"></div>
</div>
<br>
<div class="row">
<div class="col-md-4"><label for="fullname">{{lang_fullName}} *</label></div>
- <div class="col-md-4"><input id="fullname" type="text" name="fullname" value="{{fullname}}" class="form-control" placeholder="{{lang_fullName}}"></div>
+ <div class="col-md-4"><input id="fullname" type="text" name="fullname" value="{{fullname}}" class="form-control event-box" placeholder="{{lang_fullName}}"></div>
</div>
<br>
<div class="row">
@@ -30,8 +30,34 @@
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-8">
- <button class="btn btn-lg btn-primary btn-block" type="submit">{{lang_createUser}}</button>
+ <button id="add-btn" class="btn btn-lg btn-primary btn-block" type="submit" disabled>{{lang_createUser}}</button>
+ <div id="add-msg" class="text-danger slx-bold"></div>
</div>
</div>
<input type="hidden" name="action" value="adduser">
<input type="hidden" name="token" value="{{token}}">
+<script><!--
+document.addEventListener('DOMContentLoaded', function() {
+ var $login = $('#login');
+ var $pass1 = $('#pass1');
+ var $pass2 = $('#pass2');
+ var $fullname = $('#fullname');
+ var $msg = $('#add-msg');
+ var $btn = $('#add-btn');
+ var ev = function() {
+ var msg = '';
+ if ($login.val().length < 2) {
+ msg = '{{lang_loginTooShort}}';
+ } else if ($pass1.val() !== $pass2.val()) {
+ msg = '{{lang_passwordsDontMatch}}';
+ } else if ($pass1.val().length < 2) {
+ msg = '{{lang_passwordTooShort}}';
+ } else if ($fullname.val().length < 1) {
+ msg = '{{lang_fullnameMissing}}';
+ }
+ $msg.text(msg);
+ $btn.prop('disabled', !!msg);
+ };
+ $('.event-box').change(ev).keyup(ev);
+});
+//--></script> \ No newline at end of file
diff --git a/modules-available/adduser/templates/page-userlist.html b/modules-available/adduser/templates/page-userlist.html
index 5b14f7e5..8d9c6de0 100644
--- a/modules-available/adduser/templates/page-userlist.html
+++ b/modules-available/adduser/templates/page-userlist.html
@@ -18,7 +18,7 @@
<tbody>
{{#list}}
<tr>
- <td>{{login}}</td>
+ <td id="user-{{userid}}">{{login}}</td>
<td>{{fullname}}</td>
<td>{{phone}}</td>
<td>{{email}}</td>
@@ -27,8 +27,8 @@
<span class="glyphicon glyphicon-edit"></span>
</button>
{{^hide_delete}}
- <button type="button" {{perms.user.remove.disabled}} class="btn btn-danger btn-xs"
- data-target="#delete-modal" data-toggle="modal" onclick="$('#delete-userid').val({{userid}})">
+ <button type="button" {{perms.user.remove.disabled}} class="btn btn-danger btn-xs del-user-btn"
+ data-target="#delete-modal" data-toggle="modal" data-user="{{userid}}">
<span class="glyphicon glyphicon-trash"></span>
</button>
{{/hide_delete}}
@@ -44,6 +44,19 @@
</a>
</div>
</form>
+<script>
+ document.addEventListener('DOMContentLoaded', function() {
+ $('.del-user-btn').click(function (e) {
+ var uid = $(this).data('user');
+ if (!uid) {
+ alert('ERROR');
+ return false;
+ }
+ $('#delete-userid').val(uid);
+ $('#delete-user-field').text($('#user-' + uid).text());
+ });
+ });
+</script>
<!-- Modals -->
<div class ="modal fade" id="delete-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
@@ -52,11 +65,10 @@
<form method="post">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
- <h4 class="modal-title" id="myModalLabel">{{lang_confirmDelete}}</h4>
+ <h4 class="modal-title" id="myModalLabel">{{lang_confirmDelete}}: <span id="delete-user-field"></span></h4>
</div>
<div class="modal-body">
- <p>{{lang_roleDeleteConfirm}}</p>
- {{lang_numAssignedUsers}}: <span id="delete-role-users"></span>
+ <p>{{lang_userDeleteConfirm}}</p>
</div>
<div class="modal-footer">
<input type="hidden" name="action" value="deleteuser">