start int (unix timestamp) finish int (unix timestamp)
id bson.ObjectID
username string
password string
email string
role int
preferred_time TimeRange
id bson.ObjectID
user_id bson.ObjectID
title string
description string
start int (unix timestamp)
finish int (unix timestamp)
CreateUser:
can create user
ModifySelfTasks:
can view/modify self
can CRUD tasks where task.user_id = self
ModifyAllUsers:
can CRUD all users
ModifyAllUsersRestricted:
like ModifyAllUsers except:
cannot modify users where role = Admin
cannot modify user.role
ViewAllTasks:
can read all tasks
ModifyAllTasks:
can CRUD all tasks
Anon: CreateUser
User: ModifySelfTasks
Manager: User + ModifyAllUserRestricted + ViewAllTasks
Admin: Manager + ModifyAllUsers + ModifyAllTasks
all routes mounted on /api
- allows: All
- details: healthcheck endpoint reporting version
- allows: All
- details: presents authenticated user with 1 hr jwt session
- requires: BasicAuth
- allows: Manager, Admin
- details: retrieves all users
- requires: Bearer JWT Auth
- allows: Anon, Manager, Admin
- details: creates a user
- requires: Bearer JWT Auth
- allows: User*, Manager, Admin
- details: retrieves a user by id
- requires: Bearer JWT Auth
- allows: User*, Manager, Admin
- details: updates a user by field
- requires: Bearer JWT Auth
- allows: User*, Manager, Admin
- details: deletes a user and all associated tasks
- requires: Bearer JWT Auth
- allows: User*, Manager, Admin
- details: retrieves all tasks for user
- requires: Bearer JWT Auth
- allows: User*, Manager*, Admin*
- details: creates a task for user
- requires: Bearer JWT Auth
- allows: Manager, Admin
- details: retrieves all tasks
- requires: Bearer JWT Auth
- allows: User*, Manager*, Admin*
- details: creates a task
- requires: Bearer JWT Auth
- allows: User*, Manager, Admin
- details: retrieves a task
- requires: Bearer JWT Auth
- allows: User*, Manager*, Admin
- details: updates a task by field
- requires: Bearer JWT Auth
- allows: User*, Manager*, Admin
- details: deletes a task
- requires: Bearer JWT Auth