PCv5/assets/users.txt

68 lines
2.9 KiB
Plaintext

# User management
User information:
Name Unique, no space, at least one letter
Avatar Stored in a server folder. Size limit?
Password Hashed, of course
Email Mail address, used to send newsletters
Points Participation measure (mainly number of posts)
Innovation points A different kind of participation measure
Biography Description of the user
Signature Short signature added at the end of every post
Birthday Birthday date
Newsletter Subscription to newsletter
Settings...
Relations:
Notifications 1 to many
Groups 1 to many
Sent PMs 1 to many
Received PMs 1 to many
Trophies/Titles 1 to many
All posts many to many (tutorials can have several authors)
Privileges many to many
Rest API for users:
Requests where "Search" is set to "Yes" accept search patterns. The syntax
needs to be chosen, it could be something like "/users[name~=/*storm*/i]".
Method URL Search Description
-----------------------------------------------------------------------------
GET /users Yes Query users
-----------------------------------------------------------------------------
GET /users/<id> - Get user information/settings
PATCH /users/<id> - Update user information/settings
-----------------------------------------------------------------------------
GET /users/<id>/trophies - Get unlocked trophies
-----------------------------------------------------------------------------
GET /users/<id>/messages Yes Query private messages
POST /users/<id>/messages - Send PM (<id> is sender)
DELETE /users/<id>/messages Required Delete PMs matching pattern
-----------------------------------------------------------------------------
GET /users/<id>/groups - Get user groups
-----------------------------------------------------------------------------
GET /users/<id>/privs - Get user privileges
-----------------------------------------------------------------------------
Updating the participation scores is not a request, it's tied to posting
contents, so it has nothing to do in the API.
(*) Not sure if this is relevant, since these are administrator duties.
Rest API for groups:
Method URL Search Description
-----------------------------------------------------------------------------
GET /groups - Get list of groups
GET /groups/<id> - Get list of users in groups
-----------------------------------------------------------------------------
There are no methods to change the privileges associated to each groups
because this task is clearly for administrators, not API users.