GR:Gravity/User Admin

From Remain Software
Jump to navigation Jump to search

User Admin

This section describes the Gravity User Admin.

User Admin Perspective

There is a special perspective with all views related to the user administration. You can open the perspective by clicking on the Open Perspective shortcut on the Perspective bar. This perspective will open the User Admin view and the Authorities Customization view.

Gr open perspective.png


Concepts

The main elements of the Gravity user admin are User, Group, Role and authorities.

User

User is a person or an alias who uses the Gravity application. After the first start-up of Gravity, the admin user profile will be created.

A user belongs to one of the User Types that have been defined within Gravity. The default type used is User but more types can be added in the definitions. The User Type is just a classification. It does not affect the capabilities in any way.

When creating a user you also apply which login authentication scheme will be used. By default the Gravity Internal scheme is selected but if more schemes are available, for example LDAP, then these will also be made available in the 'User Authenticator' drop down box.


Gr UserType.png


A user has initially the fields shown in the following figure and can be extended with more fields:


Gr User.png

Any uppercase characters entered in the Account will be converted to lowercase when Finish is pressed.


How to Create a User

Open the User Admin view and open the context menu on the 'Users' node. Select the 'New User' menu option and the New User wizard will be displayed (see figures above). Fill the fields and click on 'Finish'.

Regarding passwords, the clear password is converted to a hash according to the PBKDF2 standard, using the HMAC/SHA1 hashing algorithm (in accordance with RFC 2898). The length of the salt is 160 bits, so that an attacker cannot use a pre-calculated password hash table (rainbow table). It is generated using a cryptographically secure random number generator and a high iteration value to counter brute force attacks. Note that a simple password plays into the hands of an attacker so make sure your password is sensibly random. Ideally the chosen password should consist of at least 8 characters (of course more is better) with mixed upper and lowercase characters, including 1 or more numbers and or special characters, for example GwtY1!dYz2.

How to Edit a User

Open the User Admin view and expand the 'Users' node until you find the relevant user. Open the context menu on the required user and select the 'Edit' option. Update the fields and click on 'Finish'.

Enable/Disable a User

Open the edition dialog as shown above, then click Next. Check the checkbox (on the top, saying Enabled) to enable the user you're editing. Un-check it to disable.

Gr enable user.png

How to Delete a User

Right-click the user you want to delete from within the User Admin View then select Delete.

Gr delete user.png

Group

A Group is a collection of users that can be used to minimize the amount of administration required. The group consists of member set where each user can be added to. It is also possible to add a group inside another group. To do that you have only to add a group to the member set of the target group.


A group belongs to one of the group types that have been defined within Gravity. The default type used is Group but more types can be added in the definitions.


Gr GroupType.png

The group has initially only the name field and can be extended with more fields.


Gr Group.png

How to Create a Group

Open the User Admin view and use a mouse right click on the 'Groups' node. Select the 'New Group' option and the "New Group" wizard will be displayed (see figure above). A new group can be automatically filled with the member information from another group by selecting a group in the "Copy from group" combo box. Fill the remaining fields and click on 'Finish'.

How to Edit Group

Open the User Admin view and expand the 'Groups' node. Select a group and mouse right click to choose the option 'Edit'. Update any of the fields and click on 'Finish'.

Role

Role is a collection of authorities (authorized entities) that can be assigned to (a) user(s) or group(s). After the first start-up of Gravity an administrator role will be created and assigned to the admin user. The users or the groups that are assigned to the administrator role have all rights to execute all actions of all entities.


Gr role.png


How to Create a Role

Open the User Admin view -> mouse right click on the 'Roles' node -> click on the context menu 'New Role' -> the role wizard will be displayed (see figure above). A new role can be automatically filled from another role by selecting a role in the "Copy from role" combobox. The administrator role can not be selected to copy from. Fill the fields and click on 'Finish'.

How to Edit a Role

Open the User Admin view -> expand 'Roles' node -> select a role and mouse right click -> select the option 'Edit' -> update the fields and click on 'Finish'.

How to Assign a Role to User(s) or Group(s)

Open the User Admin view -> expand 'Roles' node -> select a role and mouse right click -> select the option 'Add User' or 'Add Group' -> select the users or groups and click on 'Ok'.


Gr add user to role.png

  • User Rights Scenarios
  • Scenario 1: no entity action is added
If a user is assigned to a role and there is no action added to the authorities of this role, then the user has no right to perform any action of any entity.
  • Scenario 2: only the entity global actions (actions on the entity type level) are added
If a user is assigned to a role and there is one or more global action added to the authorities of this role, then the user has right to perform the associate actions of the appropriate entities.
  • Scenario 3: only entity concrete actions (actions on the concrete entity level) are added
If a user is assigned to a role and there is one or more concrete action added to the authorities of this role, then the user has right to perform only permitted actions of the appropriate concrete entities.
  • Scenario 4: concrete or global entity actions are added and the role is connected to an authorized entity
If a user is assigned to a role and there is one or more concrete or global action added to the authorities of this role and this role is connected to an entity, then the user has right to perform only permitted actions of this entity.

Gr entity actions.png

Authorities

Authorities are set of authorized entities associated with a role.

How to Add an Authority to a Role

Authorizing a user means giving that user the capability (Capabilities Overview) to perform a specified action on an entity.

1) Open the User Admin view and the Authorities Customization view.
2) Select a role from the User Admin view and the authorization content of this role will be displayed in the Authorities Customization view.
3) The tabs of the Authorization Customization view represent the authorities which are authorized entities. Select one of the tabs and the associated entity capabilities will be displayed.
4) Select one or more capabilities.
5) Save the view changes.
6) The result will be shown under the Authorities node of the User Admin view as shown in the following figure :


Gr authorities.png

How to Disconnect an Authority from a Role

To disconnect the authority (entity) from a role, you have to deselect all actions (both concrete and global actions) of the connected entity from the Authorities Customization view and save the changes.


User Admin View

The above described elements are displayed in the user admin view as shown in the following figure:

Gr useradminview.png

Authorization Customization View

Gr authorities customization view.png

The above figure displays the authorized entities and their actions. The tabs represent the type of entities, and their content is represented as table. The check boxes of the table header represent the global actions of the type entity. If one of these actions is selected, means that this action can be executed for every entity under this type entity. The table items represent the concrete entities of the selected type (tab). The check boxes on the row represent the actions of the concrete entity and will be used to reduce the execution of the actions from global permissions to concrete permissions (a selected action can be executed only for the appropriate concrete entity).

How to Connect an Authorized Entity to a Role

There are two ways to connect an entity (concrete entity) to a role :
1- Open the Authorities Customization view -> select a role -> select an entity from 'Authorities Customization view' -> Select the relevant authorities and save the changes.

2- Open the Definitions view -> select an entity -> select the option 'Add Role' -> select a role from the roles dialog and click on 'Ok'.

Gr connect entity torole defnitions.png

How to Manage Members of Connected Role

If a role is connected to an entity, members of the role will be associated with this entity. In this case the members have rights to perform the actions of the entity that are permitted in the role. A member (user or group) can be added or removed from the connected role using the Roles View as shown in the following figure.

Gr manage rolemembers.png


Special Users Authorization

A special user is a marker that can be added to a Role to give more abstract authorizations. A special user must be corresponding to a user that must be related to an item with one of the following relations:

  • Creator of the item
  • Reporter of the item: Reporter can be user or group.
  • Assignee of the item: Reporter can be user or group.
  • Contributor of the item

If the gravity logged in user is one of the following item related specials user, then the user has rights to perform all role actions related to this item. If a special user is a group in the case of item reporting or item assignee, then the logged in user must be a member of that group in order to get the actions authorization.

Capabilities Overview

In Gravity, you need to be authorized to approach an entity. E.g., viewing an item, updating a filter, deleting a link and so on. So, being authorized to delete an item, means you have the item deletion capability. The following is an overview of capabilities per entity (Entities having only the common capabilities are not mentioned).

The words authority and capability may be used here interchangeably.

Common Capabilities - CRUD

This table shows capabilities that are common to most entities that are subject to capability/authority check.

Common to Most Entities
Capability Description
Create Capability to create
Read Capability to read/see/view
Update Capability to update
Delete Capability to delete
Role Addition Capability to connect a role with an entity (The entity this capability is about. E.g, Application, Item, Link, Tag,...)

Access Token

AccessToken
Capability Description
Create All Capability to create access tokens for everybody
Create Own Capability to create access tokens for yourself only
Delete All Capability to delete any access token
Expand Any Token Authority Capability to add new capabilities to any access token
Expand Own Authority Capability to add new capabilities to own access token only which leads to augmenting own access token(s) authority
Narrow Any Token Authority Capability to remove capabilities from any access token which leads to reducing that access token authority
Narrow own Authority Capability to remove capabilities from own access token(s) only which leads to reducing own access token(s) authority
Read All Capability to view/see/read any access token
Read Own Capability to view/see/read own access token(s) only
Update All Capability to update any access token
Update Own Capability to update own access token(s) only

Application

Application
Capability Description
workflow Addition Capability to add an application to a workflow
Workflow Removal Capability to remove an application from wokflow
See Also Common CRUD Capabilities

Dependency

Dependency
Capability Description
Define Capability to use dependency capabilities in the definitions
See Also Common CRUD Capabilities

Filter

EntityFilter
Capability Description
Export Capability to export a filter
Import Capability to import a filter
See Also Common CRUD Capabilities

Entity Type

EntityType
Capability Description
Connect Capability to connect an entity type to another
Disconnect Capability to disconnect an entity type from another
Workflow Capability to transfer an item with a specific type
See Also Common CRUD Capabilities

Event Handler

EventHandler
Capability Description
Topics Addition Capability to add topics to any event handler
Topics Deletion Capability to delete topics from any event handler
See Also Common CRUD Capabilities

Event Template

EventTemplate
Capability Description
Share Capability to share the event template
See Also Common CRUD Capabilities

Work Item

Item
Capability Description
Change Name Capability to change the name of an item
Steal Capability to assign an item to yourself even if it is now assigned to someone else
Take Capability to assign an item to yourself if it is currently assigned to a group (unassigned)
Release Capability to assign the item you are assigned, to one of the groups you are in
Assign Capability to assign the item to a person or a group
Change Application Capability to change the application of an item
Change Workflow Capability to change the workflow of an item
Change Description Capability to change the description of an item
Add Comment Capability to create comment(s)
Read Comment Capability to read comment(s)
Change Comment Capability to edit comments
Delete Comment Capability to delete the comment(s)
Change Own Comment Capability to update your own comment(s)
Change Dates Capability to change dates
Change Reporter Capability to change reporter
Change Priority Capability to change priority
Change Severity Capability to change severity
Change Status Capability to change status
Change Subject Capability to change subject
Workflow Capability to transfer an item
Add Attachment Capability to create attachment(s)
Read Attachment Capability to read attachment(s)
Update Attachment Capability to update attachment(s)
Update own Attachment Capability to update own attachment(s)
Delete Attachment Capability to delete attachment(s)
Delete own Attachment Capability to delete own attachment(s)
Read Link Capability to read link
Add link Capability to add link to item
Change Link Capability to change link
Change Own Link Capability to change own link
Delete Link Capability to delete link
Delete Own Link Capability to delete own link
See Also Common CRUD Capabilities

Item TypeSpace

ItemTypeSpace
Capability Description
Type Addition Capability to add a type to the item type-space
Type Removal Capability to remove a type from the item type-space
See Also Common CRUD Capabilities

Workflow

Workflow
Capability Description
Application Addition Capability to add an application to the workflow
Application removal Capability to remove an application from the workflow
Stage Addition Capability to add a stage to the workflow
Stage removal Capability to remove a stage from the workflow
See Also Common CRUD Capabilities

Location

Location
Capability Description
Component Addition Capability to add components to the location
Component Removal Capability to remove components from the location
SubLocation Addition Capability to add a sub-location to the location
SubLocation Removal Capability to remove a sub-location
Route Addition Capability to add a route to the location
Route Removal Capability to remove a route from the location
See Also Common CRUD Capabilities

Route

Route
Capability Description
Location Addition Capability to add location to the route
Location Removal Capability to remove a location from the route
SubStage Addition Capability to add a sub-stage to the route
SubStage Removal Capability to remove a sub-stage from the route
See Also Common CRUD Capabilities

Stage

Stage
Capability Description
SubStage Addition Capability to add a sub-stage to the stage
SubStage Removal Capability to remove a sub-stage from the stage
Workflow Addition Capability to add a workflow to the stage
Workflow Removal Capability to remove a workflow from the stage
See Also Common CRUD Capabilities

Sub-Stage

SubStage
Capability Description
Route Addition Capability to add a route to the sub-stage
Route Removal Capability to remove a route from the sub-stage
Stage Addition Capability to add a stage to the sub-stage
Stage Removal Capability to remove a stage from the sub-stage
See Also Common CRUD Capabilities

Tag

Tag
Capability Description
Tag Entities Capability to tag an entity (add a tag, e.g, to an item)
Untag Entities Capability to untag an entity. (Remove the tag from an entity, e.g, item)
Untag What I Tagged Capability to untag an entity you previously tagged
Read All Capability to read/see/view any tag
Read Own Capability to read/see/view own tags only
Delete All Capability to delete any tag
Delete Own Capability to delete own tags only
Update All Capability to edit any tag
Update Own Capability to update own tags only

User

User
Capability Description
Change Own User Capability to change your own user profile
See Also Common CRUD Capabilities

AuthorizableExtendedField

AuthorizableExtendedField
Capability Description
See Also Common CRUD Capabilities