dcis-users

Handles the user management stuff for the whole system. In addition the SCS handles arbitation and notification of users to external systems like e-mail or discord.

1. Pages

Table 1. Web based UI of the dcis-users system
Name Method URL Permission

Use case: List users

List Users

GET

/users/index

anon

List all users matching the query parameters.

Use case: Create user

Create User

POST

/users/

  • ADMIN

  • ORGA

  • self

Creates a user with the given data.

Use case: Edit User

Get User

GET

/users/<ID>

  • ADMIN

  • ORGA

  • JUDGE

  • self

Edits the data for the given user (if the role allowes editing). If the role has no write access to the users data, the public data is displayed instead.

Edit User

PUT

/users/<ID>

  • ADMIN

  • ORGA

  • JUDGE

  • self

Edits the data for the given user (if the role allowes editing). If the role has no write access to the users data, the public data is displayed instead.

Use case: User log

Show log

GET

/users/<ID>/log

  • ADMIN

  • ORGA

  • JUDGE

  • self

Shows the logfile for the given user.

Use case: Ban user

Delete User

DELETE

/users/<ID>

  • ADMIN

  • ORGA

  • JUDGE

  • self

Blocks a user and marks it as deleted. The data is in the system but the user is not listed any more and only ADMIN/ORGA/JUDGES are able to access the data. The user can only be "undeleted" by ADMIN and ORGA.

Undelete User

PUT

/users/<ID>/undelete

  • ADMIN

  • ORGA

"Undeletes" the user.

Use case: Detain/Release user

Detain User

PUT

/users/<ID>/detain?ttl=\d{1,3}&comment=.+

  • JUDGE

  • ORGA

Detains a user for ttl days.

Release User

PUT

/users/<ID>/release&comment=.+

  • JUDGE

  • ORGA

  • ADMIN

Releases a detained user.

Use case: Rate user

Rate User

POST

/users/<ID>/rating?rating=\d{0,5}&comment=.+

  • PLAYER

  • GM

Rates the user with the rating and adding a comment. Only logged-in users are allowed to rate other users.

Delete Rating

DELETE

/users/<ID>/rating/<ID>

  • self

  • ADMIN

  • JUDGE

Removes a rating.

Delete all ratings

DELETE

/users/<ID>/rating

  • ADMIN

  • JUDGE

Clears all ratings for this user.

Block rating

PUT

/users/<ID>/rating/block

  • ADMIN

  • ORGA

  • JUDGE

Blocks the user from being part of the rating system.

Unblock rating

PUT

/users/<ID>/rating/unblock

  • ADMIN

  • ORGA

  • JUDGE

Unblocks the user from being excluded from the rating system.

Create Arbitration

POST

/users/arbitration/

  • PLAYER

  • GM

  • ORGA

  • JUDGE

  • ADMIN

Creates a new arbitration process for any data set.

List Arbitration

GET

/users/arbitration/

  • PLAYER

  • GM

  • ORGA

  • JUDGE

  • ADMIN

Lists the arbitration running. The list may differ depending on the access rights of the user getting the list.

Modify Arbitration

PUT

/users/arbitration/<ID>/update

  • JUDGE

  • ADMIN

Changes the arbitration data.

File Information

POST

/users/arbitration/<ID>/file

  • PLAYER

  • GM

  • ORGA

  • JUDGE

  • ADMIN

Files additional information for the arbitration.

Decide Arbitration

PUT

/users/arbitration/<ID>/decide

  • JUDGE

  • ADMIN

Decides about the arbitration.

2. REST API

Table 2. REST API of the dcis-users system
Name Method URL Permission

List Users

GET

/users/api/v1index

anon

List all users matching the query parameters.

Create User

POST

/users/api/v1/users/

  • ADMIN

  • ORGA

  • self

Creates a user with the given data.

Edit User

GET

/users/api/v1/users/<ID>

  • ADMIN

  • ORGA

  • JUDGE

  • self

Edits the data for the given user (if the role allowes editing). If the role has no write access to the users data, the public data is displayed instead.

Delete User

DELETE

/users/api/v1/users/<ID>

  • ADMIN

  • ORGA

  • JUDGE

  • self

Blocks a user and marks it as deleted. The data is in the system but the user is not listed any more and only ADMIN/ORGA/JUDGES are able to access the data. The user can only be "undeleted" by ADMIN and ORGA.

Undelete User

PUT

/users/api/v1/users/<ID>/undelete

  • ADMIN

  • ORGA

"Undeletes" the user.

Unban User

PUT

/users/api/v1/users/<ID>/unban?comment=.+

  • JUDGE

  • ORGA

  • ADMIN

Unbans a banned user.

Rate User

POST

/users/api/v1/users/<ID>/rating?rating=\d{0,5}&comment=.+

  • PLAYER

  • GM

Rates the user with the rating and adding a comment. Only logged-in users are allowed to rate other users.

Delete Rating

DELETE

/users/api/v1/users/<ID>/rating/<ID>

  • self

  • ADMIN

  • JUDGE

Removes a rating.

Delete all ratings

DELETE

/users/api/v1/users/<ID>/rating

  • ADMIN

  • JUDGE

Clears all ratings for this user.

Block rating

PUT

/users/api/v1/users/<ID>/rating/block

  • ADMIN

  • ORGA

  • JUDGE

Blocks the user from being part of the rating system.

Unblock rating

PUT

/users/api/v1/users/<ID>/rating/unblock

  • ADMIN

  • ORGA

  • JUDGE

Unblocks the user from being excluded from the rating system.

Create Arbitration

POST

/users/api/v1/arbitration/

  • PLAYER

  • GM

  • ORGA

  • JUDGE

  • ADMIN

Creates a new arbitration process for any data set.

List Arbitration

GET

/users/api/v1/arbitration/

  • PLAYER

  • GM

  • ORGA

  • JUDGE

  • ADMIN

Lists the arbitration running. The list may differ depending on the access rights of the user getting the list.

Modify Arbitration

PUT

/users/api/v1/arbitration/<ID>/update

  • JUDGE

  • ADMIN

Changes the arbitration data.

File Information

POST

/users/api/v1/arbitration/<ID>/file

  • PLAYER

  • GM

  • ORGA

  • JUDGE

  • ADMIN

Files additional information for the arbitration.

Decide Arbitration

PUT

/users/api/v1/arbitration/<ID>/decide

  • JUDGE

  • ADMIN

Decides about the arbitration.

3. Transcludes

Table 3. Transcludes of dcis-users to be included on other pages.
Name URL MinX MinY MaxX MaxY

User List

/users/tc/?id[]=<ID1>&id[]=<ID2>

100

300

500

400

Lists users with a link to the users details page.

User Title

/users/<ID>/title

20

20

200

20

Gives the username to be displayed on pages

ID-Card

/users/<ID>/card

200

300

200

300

A standardized card for displaying users.

List Arbitration

/users/arbitration/<system>/<entity>/<id>/list

400

100

400

300

Lists running arbitration for the given entity.

Contest Entity

/users/arbitration/<system>/<entity>/<id>/start

400

300

400

300

Start an arbitration for this entity.

Arbitration Card

/users/arbitration/<id>/card

200

300

200

300

A standardized card for displaying a single arbitration.

4. Messaging Channels

This is an overview over existing general queues that exist in the whole system.

Table 4. Messaging channels of the dcis-users.
Name Type Direction SCS

dcis.user.log

Queue

Inbound

dcis-users

New log entries for the users action log

dcis.user.notification

Topic

Outbound

dcis-users

Changes to user states are published for recognition by other systems.

dcis.user.registration

Queue

Inbound

dcis-users

If users register themselves on other systems they can send the new user into this system.

dcis.arbitration.start

Queue

Inbound

dcis-users

Starting an arbitration.

dcis.arbitration.file

Queue

Inbound

dcis-users

File Information to an arbitration

dcis.arbitration.close

Queue

Inbound

dcis-users

Close arbitration by system.

dcis.arbitration.notification

Topic

Outbound

dcis-users

Changes to arbitrations are published for recognition by other systems.

dcis.user.contact

Queue

Inbound

dcis-users

Notify a user via e-mail, discord, …​

5. Scheduled Jobs

Table 5. Scheduled jobs to do data house keeping
Name Period

Unban Users

daily

Unban users at end of their banning period.

Block Users

daily

Block users inactive for more than 2 years.

Delete Users

daily

Delete user data blocked/marked for deletion more than 3 years.

Purge Logs

yearly

Purge logfiles after 10 years.