Web API for User Management: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 8: Line 8:


Properties:
Properties:
* Id (integer): user/group id
* Id (integer): user/group id.
* IsGroup (boolean): false for users, true for groups
* IsGroup (boolean): ''false'' for users, ''true'' for groups.
* LoginName (string): user login name (empty/ignored for groups)
* LoginName (string): user login name (empty/ignored for groups).
* FullName (string): user/group full name
* FullName (string): user/group full name.
* Email (string): user/group e-mail address
* Email (string): user/group email address.
* Password (string): user password (empty/ignored for groups)
* Password (string): user password. Used only when creating or updating users.
* IsActive (boolean): flag whether user/group is active
* IsActive (boolean): flag whether user/group is active.
* Description (string): user/group description
* Description (string): user/group description.


===Role assignment===
===Role assignment===
The '''Role assignment''' describes
The '''Role assignment''' describes that a role is given to a certain user/group.


Properties:
Properties:
- Id (integer): user/group id
- Id (integer): user/group id
- ProjectId (integer): project id (optional, means global permission if missing)
- ProjectId (integer): project id for project-specific role assignments. Missing for gloobal permissions.
- RoleId (integer): role id
- RoleId (integer): role id


===Membership===
===Membership===
The '''Membership''' describes that a user belongs to a group.


Properties:
Properties:
- GroupId (integer): "parent" (container) group id
- GroupId (integer): parent (container) group id.
- MemberId (integer): "child" (member) user/group id
- MemberId (integer): child (member) user/group id.
- RoleName (enumerated string): membership role
- RoleName (string): membership role. Supported membership types are '''Member''', '''HiddenMember''', '''Administrator'''.
Supported membership roles: Member, HiddenMember, Administrator.


Role:
===Role===
The '''Roles''' describles available roles in the system.
 
Properties:
* Id (integer): role id.
* Id (integer): role id.
* Name (string): role name.
* Name (string): role name.
* IsGlobal (boolean): ''true'' if role is global, ''false'' if project specific.
* IsGlobal (boolean): ''true'' if role is global, ''false'' if project specific.
* IsProject (boolean): ''true'' if role is project-specific, false otherwise
* IsProject (boolean): ''true'' if role is project-specific, false otherwise
Backend should ignore the following fields when updating existing role information:
* MaxModels (integer): maximum number of models
* MaxEvents (integer): maximum number of events
* MaxCaseAttributeTypes (integer): maximum number of case attribute types
* MaxEventAttributeTypes (integer): maximum number of event attribute types
* MaxTables (integer): maximum number of data tables
* MaxTableColumns (integer): maximum number of data table columns
* MaxTableRows (integer): maximum number of data table rows


==Methods==
==Methods==

Revision as of 10:00, 13 August 2020

This page describes all Web API operations for user management.

Entities

The user management API is based on the following entities:

User/group

The User/group entity contains both users and groups.

Properties:

  • Id (integer): user/group id.
  • IsGroup (boolean): false for users, true for groups.
  • LoginName (string): user login name (empty/ignored for groups).
  • FullName (string): user/group full name.
  • Email (string): user/group email address.
  • Password (string): user password. Used only when creating or updating users.
  • IsActive (boolean): flag whether user/group is active.
  • Description (string): user/group description.

Role assignment

The Role assignment describes that a role is given to a certain user/group.

Properties: - Id (integer): user/group id - ProjectId (integer): project id for project-specific role assignments. Missing for gloobal permissions. - RoleId (integer): role id

Membership

The Membership describes that a user belongs to a group.

Properties: - GroupId (integer): parent (container) group id. - MemberId (integer): child (member) user/group id. - RoleName (string): membership role. Supported membership types are Member, HiddenMember, Administrator.

Role

The Roles describles available roles in the system.

Properties:

  • Id (integer): role id.
  • Name (string): role name.
  • IsGlobal (boolean): true if role is global, false if project specific.
  • IsProject (boolean): true if role is project-specific, false otherwise

Methods

GET api/users

Gets a list of users/groups. Supported query parameters:

  • isGroup (boolean): if false, only users are returned; if true, only groups are returned. Optional.
  • isActive (boolean): if false or omitted, all users/groups are returned; if true, only active users/groups are returned. Optional.

Returns array of user/group objects. Can be empty if criteria specified by parameters is not matched.

GET api/users/{id}

Gets information of the user/group with given id. Returns the user/group object. Can return null if not found.

POST api/users POST

Creates a new user/group. Takes a user/group object in the body. Note that the id property is ignored if specified. Returns id of the created user/group.

PUT api/users

Updates an existing user/group. Takes a user/group object in the body. Note that the isGroup property is ignored.

GET api/users/roleassignments/{id}

Gets a list of role assignments of the user/group with given id. Returns an array of role assignment objects.

PUT api/users/roleassignments

Adds a role assignment. Takes a role assignment object in the body.

DELETE api/users/roleassignments

Removes a role assignment. Takes a role assignment object in the body.

GET api/users/memberships/{id}

Gets a list of memberships of the user/group with given id. Returns an array of membership objects, which can be empty if user/group is not member of any group.

PUT api/users/memberships

Adds a membership. Takes a membership object in the body.

DELETE api/users/memberships

Removes a membership. Takes a membership object in the body.

GET api/users/roles

Gets a list of all roles in the system. Returns an array of role objects.