Add `/api/user` and `/api/group` to allow for users to be added, modified, deleted, and to be assigned to groups
The endpoints are needed to allow automation/integration of Sonador with other enterprise systems (active directory, EHR, Harmony, functional testing, ...)
- They should be super-admin based only and allow for the creation/update of a user, creation/update of a group, and allocation of a user to a group.
- Also needed is an endpoint which can be used to assign group access control (ACL) permissions to an imaging server.
- The components should be based on
lib/guru
and follow Guru/Oak-Tree/Sonador conventions and best practices (refer to endpoint details below).- Filter parameters should be implemented using the Guru filter form.\
- CRUD and filter logic should be covered by test cases.
Suggested endpoints:
- User
-
auth/user
(access requires super-user)-
OPTIONS
: retrieve schema and parameters for the user model -
GET
: retrieve a list of users registered within Sonador- Query parameters:
-
username
(str): username (allow partial matching) -
group
(str): group to which the user may below -
email
(str): email address of the user (allow partial matching) -
first-name
(str): user first name -
last-name
(str) user last name -
last-login
(date/time): the last time the user logging in -
date-joined
(date/time): the date on which the user account was created
-
- Query parameters:
-
POST
: create a new user
-
-
auth/user/{user-pk}
(access requires super-user)-
GET
: retrieve details for a user -
PUT
: update the user -
DELETE
: remove the user from the system
-
-
- Group
-
auth/group
(access requires super-user)-
OPTIONS
: retrieve schema and parameters for the user model -
GET
: retrieve a list of groups registered within Sonador -
POST
: create a new group
-
-
auth/group/{group-pk}
(access requires super-user)-
GET
: retrieve details for the group -
PUT
: update the group -
DELETE
: remove the group and all associated permissions from the system
-
-