-
Notifications
You must be signed in to change notification settings - Fork 8
Content moderation
tiblu edited this page Dec 9, 2019
·
21 revisions
Describes content moderation setup and principles of Citizen OS
- Arguments (comments) on public Topics
- 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 (
Future:
- 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
Partners
table.
All moderators are registered in Moderators
table:
- Moderators that have
userId
and NOTpartnerId
are global moderators. - Moderators that have
userId
andpartnerId
are 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 theid
fromUsers
table.
DELETE FROM "Moderators" WHERE "userId" = 'faccdf47-3c33-47c0-a974-e63a1dc36b95'
Where:
-
faccdf47-3c33-47c0-a974-e63a1dc36b95
- is theid
fromUsers
table.
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 theid
fromUsers
table. -
2a666c99-0254-49a6-9a10-b09cbae36f6b
- is theid
fromParnters
table.
DELETE FROM "Moderators"
WHERE "userId" = 'faccdf47-3c33-47c0-a974-e63a1dc36b95'
AND "partnerId" = '2a666c99-0254-49a6-9a10-b09cbae36f6b'
Where:
-
faccdf47-3c33-47c0-a974-e63a1dc36b95
- is theid
fromUsers
table. -
2a666c99-0254-49a6-9a10-b09cbae36f6b
- is theid
fromParnters
table.