[enh] Be able to add groups

This commit is contained in:
ljf 2019-10-15 20:53:20 +02:00
parent 97420631e8
commit 73abafb2c4
4 changed files with 58 additions and 13 deletions

View file

@ -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
*

View file

@ -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",

View file

@ -0,0 +1,30 @@
<div class="btn-breadcrumb">
<a href="#/" ><i class="fa-home"></i><span class="sr-only">{{t 'home'}}</span></a>
<a href="#/users" class="visible-xs">&hellip;</a>
<a href="#/users" class="hidden-xs">{{t 'users'}}</a>
<a href="#/permissions" class="visible-xs">&hellip;</a>
<a href="#/permissions" class="hidden-xs">{{t 'permissions'}}</a>
<a href="#/groups/create">{{t 'perm_groups_new'}}</a>
</div>
<div class="separator"></div>
<form action="#/groups/create" method="POST" class="form-horizontal">
<div class="panel panel-default">
<div class="panel-body">
<div class="form-group">
<label for="groupname" class="col-sm-3 control-label">{{t 'group_name'}}</label>
<div class="col-sm-9">
<input type="text" id="groupname" name="groupname" class="form-control" placeholder="my group name" required pattern="[A-Za-z0-9_ ]+">
<div class="help-block">{{t 'group_format_name_help'}}</div>
</div>
</div>
</div>
</div>
<div class="text-center">
<input type="submit" role="button" class="btn btn-success slide back" value="{{t 'save'}}">
</div>
</form>

View file

@ -1,11 +1,11 @@
<div class="btn-breadcrumb">
<a href="#/"><i class="fa-home"></i><span class="sr-only">{{t 'home'}}</span></a>
<a href="#/users">{{t 'users'}}</a>
<a href="#/users/permissions">{{t 'perm_manage_permissions'}}</a>
<a href="#/permissions">{{t 'perm_manage_permissions'}}</a>
</div>
<div class="actions-group">
<a role="button" href="#/users/groups/create" class="btn btn-success slide">
<a role="button" href="#/groups/create" class="btn btn-success slide">
<span class="fa-plus"></span> {{t 'perm_groups_new'}}
</a>
</div>
@ -18,7 +18,7 @@
<div class="panel-heading" role="tab" id="heading-context-group-{{@key}}">
<h2 class="panel-title">
<a role="button" data-toggle="collapse" href="#collapse-group-{{@key}}" aria-expanded="false" aria-controls="collapse-group-{{@key}}">
<span class="fa-fw fa-group"></span> {{t 'group'}} "{{#if special}}{{t @key}}{{else}}{{ucwords @key}}{{/if}}"
<span class="fa-fw fa-group"></span> {{#if special}}{{t @key}}{{else}}{{t 'group'}} "{{ucwords @key}}"{{/if}}
</a>
</h2>
</div>