oputil cannot remove user from group #331

This commit is contained in:
Bryan Ashby 2020-11-29 14:43:26 -07:00
parent 6776453005
commit 6f06821f0c
No known key found for this signature in database
GPG Key ID: B49EB437951D2542
3 changed files with 6 additions and 4 deletions

View File

@ -11,6 +11,8 @@ This document attempts to track **major** changes and additions in ENiGMA½. For
* Added ability to export/download messages. This is enabled in the default menu. See `messageAreaViewPost` in [the default message base template](./misc/menu_templates/message_base.in.hjson) and look for the download options (`@method:addToDownloadQueue`, etc.) for details on adding to your system! * Added ability to export/download messages. This is enabled in the default menu. See `messageAreaViewPost` in [the default message base template](./misc/menu_templates/message_base.in.hjson) and look for the download options (`@method:addToDownloadQueue`, etc.) for details on adding to your system!
* The Gopher server has had a revamp! Standard `gophermap` files are now served along with any other content you configure for your Gopher Hole! A default [gophermap](https://en.wikipedia.org/wiki/Gopher_(protocol)#Source_code_of_a_menu) can be found [in the misc directory](./misc/gophermap) that behaves like the previous implementation. See [Gopher docs](./docs/servers/gopher.md) for more information. * The Gopher server has had a revamp! Standard `gophermap` files are now served along with any other content you configure for your Gopher Hole! A default [gophermap](https://en.wikipedia.org/wiki/Gopher_(protocol)#Source_code_of_a_menu) can be found [in the misc directory](./misc/gophermap) that behaves like the previous implementation. See [Gopher docs](./docs/servers/gopher.md) for more information.
* Default file browser up/down/pageUp/pageDown scrolls description (e.g. FILE_ID.DIZ). If you want to expose this on an existing system see the `fileBaseListEntries` in the default `file_base.in.hjson` template. * Default file browser up/down/pageUp/pageDown scrolls description (e.g. FILE_ID.DIZ). If you want to expose this on an existing system see the `fileBaseListEntries` in the default `file_base.in.hjson` template.
* File base search has had an improvement to search term handling.
* `./oputil user group -group` to now accepts `~group` removing the need for special handling of the "-" character. #331
## 0.0.11-beta ## 0.0.11-beta
* Upgraded from `alpha` to `beta` -- The software is far along and mature enough at this point! * Upgraded from `alpha` to `beta` -- The software is far along and mature enough at this point!

View File

@ -57,7 +57,7 @@ Actions:
lock USERNAME Set a user's status to "locked" lock USERNAME Set a user's status to "locked"
group USERNAME [+|-]GROUP Adds (+) or removes (-) user from a group group USERNAME [+|~]GROUP Adds (+) or removes (~) user from a group
list [FILTER] List users with optional FILTER. list [FILTER] List users with optional FILTER.

View File

@ -275,7 +275,7 @@ function modUserGroups(user) {
let groupName = argv._[argv._.length - 1].toString().replace(/["']/g, ''); // remove any quotes - necessary to allow "-foo" let groupName = argv._[argv._.length - 1].toString().replace(/["']/g, ''); // remove any quotes - necessary to allow "-foo"
let action = groupName[0]; // + or - let action = groupName[0]; // + or -
if('-' === action || '+' === action) { if('-' === action || '+' === action || '~' === action) {
groupName = groupName.substr(1); groupName = groupName.substr(1);
} }
@ -286,7 +286,7 @@ function modUserGroups(user) {
} }
// //
// Groups are currently arbritary, so do a slight validation // Groups are currently arbitrary, so do a slight validation
// //
if(!/[A-Za-z0-9]+/.test(groupName)) { if(!/[A-Za-z0-9]+/.test(groupName)) {
process.exitCode = ExitCodes.BAD_ARGS; process.exitCode = ExitCodes.BAD_ARGS;
@ -303,7 +303,7 @@ function modUserGroups(user) {
} }
const UserGroup = require('../../core/user_group.js'); const UserGroup = require('../../core/user_group.js');
if('-' === action) { if('-' === action || '~' === action) {
UserGroup.removeUserFromGroup(user.userId, groupName, done); UserGroup.removeUserFromGroup(user.userId, groupName, done);
} else { } else {
UserGroup.addUserToGroup(user.userId, groupName, done); UserGroup.addUserToGroup(user.userId, groupName, done);