Web API for User Management
This page describes Web API operations for managing users, groups, roles and permissions.
Entities
The user management API uses the following entities.
User/group
The 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
The 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
The 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
The Roles describes roles 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.