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 1: Line 1:
This page describes Web API operations for managing users, groups, roles and permissions.
This page describes Web API operations for managing users, groups, roles and permissions. See [[Roles_and_Permissions_in_QPR_ProcessAnalyzer|more information]] how roles and permissions work in QPR ProcessAnalyzer.


== Entities ==
== Entities ==
Line 5: Line 5:


===User/group===
===User/group===
The '''User/group''' entity includes both users and groups. Properties:
''User/group'' entity includes both users and groups. 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.
Line 16: Line 16:


===Role assignment===
===Role assignment===
The '''Role assignment''' entity describes that a role is given to a certain user/group. Properties:
''Role assignment'' entity describes that a role is given to a certain user/group. Properties:
* Id (integer): user/group id
* Id (integer): user/group id
* ProjectId (integer): project id used in project-specific role assignments. Not used for global permissions.
* ProjectId (integer): project id used in project-specific role assignments. Not used for global permissions.
Line 22: Line 22:


===Membership===
===Membership===
The '''Membership''' entity describes that a user belongs to a group. Properties:
''Membership'' entity describes that a user belongs to a group. 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.
Line 28: Line 28:


===Role===
===Role===
The '''Roles''' describes roles in the system. Properties:
''Role'' entity describes a role in the system. Properties:
* Id (integer): role id.
* Id (integer): role id.
* Name (string): role name.
* Name (string): role name.

Revision as of 17:35, 13 August 2020

This page describes Web API operations for managing users, groups, roles and permissions. See more information how roles and permissions work in QPR ProcessAnalyzer.

Entities

The user management API uses the following entities.

User/group

User/group entity includes 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

Role assignment entity describes that a role is given to a certain user/group. Properties:

  • Id (integer): user/group id
  • ProjectId (integer): project id used in project-specific role assignments. Not used for global permissions.
  • RoleId (integer): role id

Membership

Membership entity describes that a user belongs to a group. Properties:

  • GroupId (integer): parent (container) group id.
  • MemberId (integer): child (member) user/group id.
  • RoleName (string): Type of the membership. Supported types are Member, HiddenMember, Administrator.

Role

Role entity describes a role in the system. Properties:

  • Id (integer): role id.
  • Name (string): role name.
  • IsGlobal (boolean): true for global role, false for project-specific-only role. Note that a role can be both global and user-specific.
  • IsProject (boolean): true for project-specific role, false for global-only role. Note that a role can be both global and user-specific.

Methods

GET api/users

Gets a list of users/group entities. Can be an empty array if criteria specified by parameters is not matched. Supported query parameters:

  • isGroup (boolean): if false, only users are returned; if true, only groups are returned. If omitted, both users and groups are returned.
  • isActive (boolean): if false or omitted, all users/groups are returned; if true, only active users/groups are returned.
GET api/users/{id}

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

POST api/users

Creates a new user/group. Takes a user/group object in the body. Note that the id property is ignored if specified. Returns the 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, because users cannot be changed to groups and vice versa.

GET api/users/roleassignments/{id}

Gets a list of role assignments of a user/group with the 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

Deletes 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 a member of any group.

PUT api/users/memberships

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

DELETE api/users/memberships

Deletes 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.