Commit 8c9ce843 authored by Mark Harding's avatar Mark Harding

(feat): add content policy page

No related merge requests found
Pipeline #61895252 failed with stage
in 7 minutes and 27 seconds
......@@ -132,9 +132,9 @@
*ngIf="getCurrentUser()"
(click)="closeMenu()"
>
<a routerLink="/moderation">
<a routerLink="/content-policy">
<i class="material-icons">gavel</i>
<span i18n>Moderation</span>
<span i18n>Content Policy</span>
</a>
</li>
......
......@@ -70,7 +70,7 @@ export class JuryDutySessionSummonsComponent {
}
async accept() {
if (!confirm("I am 18 years old and volunteer to participate in this jury. I acknowledge that I may be exposed to content not safe for work (NSFW) and understand that the purpose of the trial is to enforce the site content policy.")) {
if (!confirm("I am at least 18 years of age and volunteer to participate in this jury. I acknowledge that I may be exposed to content that is Not Safe for Work (NSFW) and understand the purpose of this jury is to enforce the content policy on Minds.")) {
return;
}
this.accepted = true;
......
......@@ -6,13 +6,13 @@
<div class="m-marketingHero__overlay"></div>
<div class="m-marketingHero__slogans">
<h1 i18n="@@PLUS__MKT__PLUS_TITLE">Community Moderation</h1>
<h1 i18n="@@PLUS__MKT__PLUS_TITLE">Content Policy</h1>
<h3 i18n="@@PLUS__MKT__PLUS_DESC">
The Minds Jury decides on what content is within the terms of service.
The goal of Minds is to have fair, transparent and ethical moderation practices.
</h3>
<button class="m-btn m-btn--slim" (click)="startJuryDuty()" *ngIf="session.isAdmin()">
Start Jury Duty
Start Admin Review
</button>
</div>
......@@ -23,26 +23,65 @@
</div>
<div class="m-marketing__contents m-reportMarketing__section">
<h4>How it works</h4>
<ul class="m-reportMarketing__list">
<li>
<p>Users report content or channels that may violate the Minds Terms of Service.</p>
<ul class="m-reportMarketingList__sublist">
<li *ngFor="let reason of reasons">
{{ reason.label }}
</li>
</ul>
</li>
<li>
<p>Reports are reviewed by Minds admins (eventually this step could be done by a Minds jury).</p>
</li>
<li>
<p>If an action is taken, the user in violation is properly notified and provided with a chance to appeal the decision.</p>
</li>
<li>
<p>Appeals are reviewed by a Minds jury of 12 unique users. Over 75% of the jury must approve the appeal to reverse a decision.</p>
</li>
<p>
To ensure that decisions are made as democratically as possible, we developed a Jury System based on the <a href="https://santaclaraprinciples.org/" target="_blank">Santa Clara Principles</a> to review appeals. The jury consists of 12 unique, active users whose objective is to vote on appeals. If 75% or more agree with the appeal, the administrative action is overturned. For more information about the jury system, read our blog.
</p>
<p>The current content moderation system functions as follows:</p>
<img src="{{ minds.cdn_assets_url }}assets/screenshots/flow.png" style="max-width: 90%;"/>
<h4>Strike Offense</h4>
<p>
Users will receive a strike for certain violations of the Content Policy. Users will be notified about the strike, which term was violated, and which piece of content was in violation. All strikes can be appealed to a Minds Jury. Individual strikes will expire after 90 days.
</p>
<p>The following violations will result in a strike:</p>
<p>Untagged NSFW Post (three strikes required for each individual NSFW category)</p>
<ul>
<li>Strike 1 = Warning</li>
<li>Strike 2 = 2nd Warning</li>
<li>Strike 3 = Full channel marked with NSFW category</li>
</ul>
<p>Harassment and Spam</p>
<ul>
<li>Strike 1 = Warning</li>
<li>Strike 2 = 2nd Warning</li>
<li>Strike 3 = Ban</li>
</ul>
<p>Spam may result in an immediate ban if determined to be malicious or by use of a bot.</p>
<h4>Immediate Ban Offense</h4>
<p>Users will be immediately banned for certain violations of the Content Policy. Users will be notified about the ban and which term was violated, but they will not be able to see the content that was in violation as it will have to be removed from Minds. Appeals on immediate bans will be reviewed by the Minds admins and not a jury due to the nature of the content.</p>
<ul>
<li>Illegal (terrorism, paedophilia, extortion, fraud, revenge porn, sex trafficking)</li>
<li>Personal and confidential information (doxxing)</li>
<li>Malware</li>
<li>Token manipulation</li>
<li>Impersonation</li>
<li>Incites a true threat of violence</li>
</ul>
<h4>Boost Policy</h4>
<p>Boost is the advertising network on Minds. Users may exchange Minds Tokens to “Boost” their content and receive views from the network. Users may not Boost any content that is in violation of our Content Policy. Additionally, users may not Boost content that: </p>
<ul>
<li>Appeals on a moderation decision</li>
<li>Exceeds Boost rate limits;</li>
<li>Is a Help & Support request;</li>
<li>Is selling Minds Tokens;</li>
<li>Contains content from a banned user</li>
<li>Onchain payment failed</li>
<li>Original post has been removed</li>
</ul>
<p>
If you would like to appeal a Boost rejection, you may do so by emailing info@minds.com with the post in question and the reasons for why you believe it should be accepted.
</p>
</div>
<div class="m-marketing__contents m-reportMarketing__stats">
......
......@@ -29,7 +29,8 @@ import { ModerationAppealComponent } from './console/appeal.component';
LegacyModule,
CommentsModule,
RouterModule.forChild([
{ path: 'moderation', component: ReportsMarketingComponent },
{ path: 'moderation', redirectTo: '/content-policy' },
{ path: 'content-policy', component: ReportsMarketingComponent },
//{ path: 'moderation/juryduty', redirectTo: '/moderation/juryduty/appeal' },
{ path: 'moderation/juryduty/:jury', component: JuryDutySessionComponent, },
{ path: 'settings/reported-content/strikes', component: StrikesComponent, },
......
src/assets/screenshots/flow.png

27.9 KB

Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment