GitHub user mike-jumper opened a pull request:

    https://github.com/apache/guacamole-client/pull/309

    GUACAMOLE-220: Add user interface for managing user groups and membership.

    This change:
    
    * Adds a new tab for managing user groups, similar to the existing user 
management tab.
    * Adds a new directive which provides an interface for manipulating whether 
an object shares some relation with another object (in this case group 
membership relations).
    * Leverages the above directive to add support for manipulating a user's 
group memberships, as well as the group memberships of other groups.
    * Upgrades both jQuery and Lodash to the latest versions. (The version of 
Lodash previously included with Guacamole lacks the `sortedIndexOf()` function, 
which is needed by the new directive mentioned above. If upgrading Lodash, we 
may as well upgrade jQuery while we're at it, as the version previously 
included within Guacamole is no longer maintained.)
    
    With these changes in place, administrators will see a new "Groups" tab 
next to the existing "Users" tab:
    
    
![guac-groups-tab](https://user-images.githubusercontent.com/4632905/43847897-979363ec-9ae6-11e8-8755-33bc3527087d.png)
    
    When edited, each group appears largely like a user, with sets of 
permissions that can be granted to the group. In addition to the usual system 
and connection permission sections, there are three group membership sections 
which allow parent groups and member users/groups to be manipulated:
    
    
![guac-group-membership-edit](https://user-images.githubusercontent.com/4632905/43847995-d5fec95a-9ae6-11e8-9d7e-95f95d8688db.png)
    
    Clicking the "X" next to the name of a user or group marks that object for 
removal from that membership relation, to take effect once the admin clicks 
"Save". A similar new section is now present in the user editor for 
manipulating group membership at the user level:
    
    
![guac-user-membership-edit](https://user-images.githubusercontent.com/4632905/43848039-eb1d7066-9ae6-11e8-8526-005eb3e65f15.png)
    
    These membership editor sections are collapsed by default. The intent there 
is to reduce clutter within the user and group edit screens while also 
providing admins with a quick view into the current state of a user or group's 
membership. When expanded, a full list of available users or groups is 
displayed, with checkboxes allowing those users/groups to be added/removed:
    
    
![guac-membership-editor-expanded](https://user-images.githubusercontent.com/4632905/43848138-2b8b1090-9ae7-11e8-905c-cde21725eaa0.png)
    
    Each of these sections is displayed only if there are applicable users or 
groups.
    
    The filters in the section headers have the effect you would expect, 
reducing the users/groups visible in both the abbreviated and expanded views of 
the editor.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/mike-jumper/guacamole-client user-group-ui

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/guacamole-client/pull/309.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #309
    
----
commit 9f01fcb1558b11b52c78bcddee2ea601ab4b102c
Author: Michael Jumper <mjumper@...>
Date:   2018-04-19T21:38:24Z

    GUACAMOLE-220: Add JavaScript service for retrieving/manipulating user 
groups.

commit 55bcf25a1c53f85ba2383fc83b46e2bc2ccd05af
Author: Michael Jumper <mjumper@...>
Date:   2018-04-19T21:39:04Z

    GUACAMOLE-220: Allow manipulation and retrieval of user group permissions 
via JavaScript.

commit 615f5c6bab28f78884cf42fb29c76ad44822a33d
Author: Michael Jumper <mjumper@...>
Date:   2018-04-20T06:21:17Z

    GUACAMOLE-220: Add missing getUserGroupAttributes() to JavaScript 
schemaService.

commit 1cf16d1dc6f02e608eb860d627c423dc6be958da
Author: Michael Jumper <mjumper@...>
Date:   2018-07-22T02:41:47Z

    GUACAMOLE-220: Upgrade to latest versions of jQuery and Lodash.
    
    The version of Lodash previously included with Guacamole lacks the
    sortedIndexOf() function, which is needed by the identity set editor
    directive for manipulating sorted arrays of identifiers.
    
    If upgrading Lodash, may as well upgrade jQuery while we're at it. The
    version previously included within Guacamole is no longer maintained.

commit 229b0dee4882352e7583c4f5872bee92158da712
Author: Michael Jumper <mjumper@...>
Date:   2018-07-25T09:34:27Z

    GUACAMOLE-220: Implement generic editor directive for manipulating sets of 
identifiers.

commit fed2b9cb1440f21ba8f72055a29af07f7e4586cc
Author: Michael Jumper <mjumper@...>
Date:   2018-08-07T19:15:46Z

    GUACAMOLE-220: Add management interface for user parent groups.

commit 0059121716c869e34a8089ada3069ad67ffb6ee7
Author: Michael Jumper <mjumper@...>
Date:   2018-08-07T19:25:55Z

    GUACAMOLE-220: Hide identifier set editor if there are no identifiers to 
edit.

commit 59ea968614bfa747829eab4fcae8199a9bd44522
Author: Michael Jumper <mjumper@...>
Date:   2018-08-07T20:05:09Z

    GUACAMOLE-220: Do not display "X" for removing an identifier if the 
identifier cannot actually be edited.

commit 439030ac4b8743ac91cceb1cd2f27f7d133f6857
Author: Michael Jumper <mjumper@...>
Date:   2018-04-20T06:51:25Z

    GUACAMOLE-220: Add management tab and editor for user groups.

----


---

Reply via email to