kp-users-scs

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.

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.

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.