From 73abafb2c4e24245c4757eacf247853b2148dcc0 Mon Sep 17 00:00:00 2001 From: ljf Date: Tue, 15 Oct 2019 20:53:20 +0200 Subject: [PATCH] [enh] Be able to add groups --- src/js/yunohost/controllers/users.js | 33 +++++++++++++++++++--------- src/locales/en.json | 2 ++ src/views/user/group_create.ms | 30 +++++++++++++++++++++++++ src/views/user/user_permission.ms | 6 ++--- 4 files changed, 58 insertions(+), 13 deletions(-) create mode 100644 src/views/user/group_create.ms diff --git a/src/js/yunohost/controllers/users.js b/src/js/yunohost/controllers/users.js index d4fdce45..dcf34941 100644 --- a/src/js/yunohost/controllers/users.js +++ b/src/js/yunohost/controllers/users.js @@ -14,21 +14,17 @@ app.get('#/permissions', function (c) { c.api('/users/groups?full&include_primary_groups', function(data_groups) { c.api('/users', function(data_users) { - console.log(data_users); - console.log(data_groups); //var perms = data_permissions.permissions; var specific_perms = {}; var all_perms = []; - for (var groupname in data_groups.groups) { - var group = data_groups.groups[groupname]; - if (group.members.length == 1 && groupname == group.members[0]) { - specific_perms[groupname] = group; + for (var user in data_users.users) { + console.log(user); + if (user in data_groups.groups) { + if (data_groups.groups[user].permissions.length > 0) + specific_perms[user] = data_groups.groups[user]; + delete data_groups.groups[user]; } } - console.log(specific_perms); - for (var primary_group in specific_perms) { - delete data_groups.groups[primary_group]; - } data_groups.groups['all_users'].special = true; data_groups.groups['visitors'].special = true; data = { @@ -42,6 +38,23 @@ }); }); + /** + * Groups + * + */ + + // Create a new group + app.get('#/groups/create', function (c) { + c.view('user/group_create', {}); + }); + + app.post('#/groups/create', function (c) { + c.params['groupname'] = c.params['groupname'].replace(' ', '_').toLowerCase(); + c.api('/users/groups', function(data) { + c.redirect('#/permissions'); + }, 'POST', c.params.toHash()); + }); + /** * Users * diff --git a/src/locales/en.json b/src/locales/en.json index 9e9c5f83..5b18f806 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -159,6 +159,8 @@ "good_practices_about_admin_password": "You are now about to define a new admin password. The password should be at least 8 characters - though it is good practice to use longer password (i.e. a passphrase) and/or to use various kind of characters (uppercase, lowercase, digits and special characters).", "good_practices_about_user_password": "You are now about to define a new user password. The password should be at least 8 characters - though it is good practice to use longer password (i.e. a passphrase) and/or to use various kind of characters (uppercase, lowercase, digits and special characters).", "group": "Group", + "group_name": "Group name", + "group_format_name_help": "You can use alpha-numeric chars and space", "home": "Home", "hook_adminjs_group_configuration": "System configurations", "hook_conf_cron": "Automatic tasks", diff --git a/src/views/user/group_create.ms b/src/views/user/group_create.ms new file mode 100644 index 00000000..2f971329 --- /dev/null +++ b/src/views/user/group_create.ms @@ -0,0 +1,30 @@ +
+ {{t 'home'}} + + + + + {{t 'perm_groups_new'}} +
+ +
+ +
+ +
+
+
+ +
+ +
{{t 'group_format_name_help'}}
+
+
+
+
+ +
+ +
+ +
diff --git a/src/views/user/user_permission.ms b/src/views/user/user_permission.ms index d388312c..bc8a1bdb 100644 --- a/src/views/user/user_permission.ms +++ b/src/views/user/user_permission.ms @@ -1,11 +1,11 @@
{{t 'home'}} {{t 'users'}} - {{t 'perm_manage_permissions'}} + {{t 'perm_manage_permissions'}}
- + {{t 'perm_groups_new'}}
@@ -18,7 +18,7 @@