-
Notifications
You must be signed in to change notification settings - Fork 12
Content moderation
tiblu edited this page Jan 16, 2019
·
21 revisions
Describes content moderation setup and principles of Citizen OS
- Arguments (comments) on public Topics
Future:
- Public topics - https://github.com/citizenos/citizenos-api/issues/5
- While there is no way to moderate from the system,if there is an absolute need the database administrator can make a Topic private (
Topics.visibility) OR mark it as deleted (Topics.deletedAt). We do not encourage deleting data. We also recommend notifying all related parties of such actions to provide visibility.
- While there is no way to moderate from the system,if there is an absolute need the database administrator can make a Topic private (
- Images (Avatars, EP content)
- ..
- To moderate any content, a report has to be made. For example, to moderate an argument, you as a moderator CAN create a report yourself and then from the moderator e-mail use the link to carry out actions. This is to provide visibility - when you report, every moderator gets a moderator e-mail. This means all the moderators have overview what other moderators are doing.
- Moderator has to choose the violation type and enter a free text explanation.
- Never delete anything when possible, but hide it from default views, can be made visible on demand. This provides a mechanism to any User to verify if moderation was justified.
- Community reporting. Any User can report content. Required to choose the violation type and insert a free text explanation why the content is reported.
- Community up and down vote
There are 2 types of moderators:
- Global moderators - can moderate all Citizen OS content. This is the most common type of moderator, if you host Citizen OS for your own community/company.
-
Partner moderators - can only moderate content of specific Partner. Only relevant if you host Citizen OS and provide a service to Partners. All Partners are registered in
Partnerstable.
All moderators are registered in Moderators table:
- Moderators that have
userIdand NOTpartnerIdare global moderators. - Moderators that have
userIdandpartnerIdare Partner moderators.
INSERT INTO "Moderators" (
"id",
"userId",
"createdAt",
"updatedAt"
)
VALUES (
md5(random()::text || clock_timestamp()::text)::uuid,
'faccdf47-3c33-47c0-a974-e63a1dc36b95',
NOW(),
NOW()
);
Where:
-
faccdf47-3c33-47c0-a974-e63a1dc36b95- is theidfromUserstable.
DELETE FROM "Moderators" WHERE "userId" = 'faccdf47-3c33-47c0-a974-e63a1dc36b95'
Where:
-
faccdf47-3c33-47c0-a974-e63a1dc36b95- is theidfromUserstable.
INSERT INTO "Moderators" (
"id",
"userId",
"partnerId",
"createdAt",
"updatedAt"
)
VALUES (
md5(random()::text || clock_timestamp()::text)::uuid,
'faccdf47-3c33-47c0-a974-e63a1dc36b95',
'2a666c99-0254-49a6-9a10-b09cbae36f6b',
NOW(),
NOW()
);
Where:
-
faccdf47-3c33-47c0-a974-e63a1dc36b95- is theidfromUserstable. -
2a666c99-0254-49a6-9a10-b09cbae36f6b- is theidfromParnterstable.
DELETE FROM "Moderators"
WHERE "userId" = 'faccdf47-3c33-47c0-a974-e63a1dc36b95'
AND "partnerId" = '2a666c99-0254-49a6-9a10-b09cbae36f6b'
Where:
-
faccdf47-3c33-47c0-a974-e63a1dc36b95- is theidfromUserstable. -
2a666c99-0254-49a6-9a10-b09cbae36f6b- is theidfromParnterstable.