Moderation and Sanctions

From Alistair Mann / csi18n
Jump to: navigation, search

Sanctions

In order to sanction a user, you'll need to upload a user2role record. Sanctions are implemented by manipulating RBAC roles, of which the user may have several at once.

Only your own users may be sanctioned.

The bans are implemented around read access (HTTP methods GET, HEAD and OPTIONS), write access (HTTP methods DELETE, POST and PUT), read/write access, or service access.

Potential conflicts are handled this way:

  1. If any roles are found that decline permission, then the whole request is declined
  2. If any roles are found which give permission, then the request is processed
  3. If no roles are found, the whole request is declined.

Roles that ban

ROLE_WRITEBAN_V1
The user has no write access to the /newmarks and /xlates hierarchy.
ROLE_PARTBAN_V1
The user has no read or write access to the /newmarks, /xlates and /RBAC hierarchies but still has read/write access to /subscribers perhaps to change or recover his password, etc.
ROLE_303
The user is excluded from the whole of the service as soon as he authenticates. This includes the homepage. Of course, as soon as he drops his credentials, he'd have PRIVROLE_ANON access.

BanHammers

ROLE_SUPERORD & ROLE_SUBS_MOD
These users may change another SubOrd's password such that the account remains active, but inaccessible. ROLE_SUPERORD only
May also delete the SubOrd's account such that the account is inactive as well as inaccessible. (However note accounts can be manually resurrected on the server)

Time-limiting Sanctions

All roles may be time-limited, thus all sanctions may be time-limited. When assigning any role, start_date and end_date must be filled in with CDMI times. If a request occurs between those two times according to the clock on the server, the role is effective; outside of those times the role is ignored.

The earliest possible CDMI time is "0001-01-01T00:00:00.000000Z", the latest is "9999-12-31T23:59:59.999999Z" and the service will accept any sanction length 0.000001 seconds or longer.

Leaving a message for the banned

Messages are accomplished through HTTP 303 See Other responses, using a URL to your own site, and a query string to inform your site what to do.

When uploading a ban, you may also choose to include a URL to the http303 field: if and when that role causes a failure, the client will be sent HTTP 303 See Other with your URL in the HTTP Location: header. Clients should issue a GET against that address and present the result to the user.

Example:
https://www.example.com/banninated.php?user=Mallory&starts=Jun1&ends=Jun3&why=because%20you%20smell

Lifting/changing bans

A ban can be lifted or changed before the end_date by deleting or modifying the user2role record describing it.