Add privacy policy

This commit is contained in:
Dragory 2020-08-18 23:52:24 +03:00
parent ad78574959
commit cffb0dbd6b
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
8 changed files with 154 additions and 4 deletions

View file

@ -0,0 +1,92 @@
<template>
<div class="privacy-policy">
<div class="wrapper">
<h1>Zeppelin Privacy Policy</h1>
<h2>Zeppelin overview</h2>
<p>
Zeppelin is a moderation bot for Discord that allows server staff to
carry out moderator actions (warn, mute, kick, ban, clean messages, view
user information, etc.),
keep records of infractions, perform automated actions ("automod", e.g.
message filtering), post detailed logs on logging channels, and set up
systems such as reaction roles.
The bot also includes a web dashboard that server administrators can log
in to through Discord OAuth.
</p>
<p>
The bot's source code is available at
<a href="https://github.com/Dragory/ZeppelinBot">
https://github.com/Dragory/ZeppelinBot
</a>
</p>
<h2>Stored data</h2>
<p>
When Zeppelin is used by a server, the following categories data can be
stored by the bot.
The specific categories of data saved for each server depends on how the
server has configured Zeppelin.
</p>
<ul>
<li>Recent messages and username/nickname changes of users engaged on
the server
</li>
<li>Recent bulk deleted messages</li>
<li>Basic user information, moderator-entered text, and relevant message
archives for infraction records
</li>
<li>A subset of previously held roles and nickname on the server to be
restored when a user rejoins
</li>
<li>Basic server details of the server using the bot</li>
</ul>
<p>
Additionally, when a user logs in to the web dashboard the following
types of data are stored:
</p>
<ul>
<li>Basic Discord user information</li>
<li>Time and originating IP address of the login for security audit
purposes
</li>
</ul>
<h2>Data retention</h2>
<ul>
<li>
Recent messages are stored for 24h
<ul>
<li>Deleted messages within this 24h are cleared 5 minutes after
deletion
</li>
</ul>
</li>
<li>5 most recent usernames and 10 most recent nicknames of users
engaged in chat or voice channels are stored for 30 days
</li>
<li>Archives of bulk-deleted messages are stored for 30 days</li>
<li>Infraction record data is kept until the server stops using Zeppelin
unless explicitly deleted
</li>
<li>Roles and nicknames that are restored on rejoin are cleared when the
user rejoins
</li>
<li>User information for users logged in to the bot's web dashboard via
Discord OAuth is stored as long as the server uses Zeppelin
</li>
</ul>
<h2>Data access and deletion requests</h2>
<p>
To request access to personal data stored about you, or to request its
deletion, to the extent permitted by GDPR, please send an email to <a
href="mailto:contact@mivir.fi">contact@mivir.fi</a>.
</p>
</div></div>
</template>
<script type="ts">
import "../style/privacy-policy.pcss";
export default {};
</script>

View file

@ -1,5 +1,5 @@
<template> <template>
<div class="dashboard container mx-auto px-4 py-2"> <div class="dashboard container mx-auto px-6 py-6">
<Title title="Zeppelin - Dashboard" /> <Title title="Zeppelin - Dashboard" />
<nav class="flex items-stretch pl-4 pr-2 py-1 border border-gray-700 rounded bg-gray-800 shadow-xl mb-8"> <nav class="flex items-stretch pl-4 pr-2 py-1 border border-gray-700 rounded bg-gray-800 shadow-xl mb-8">

View file

@ -1,5 +1,5 @@
<template> <template>
<div class="docs container mx-auto px-4 py-2"> <div class="docs container mx-auto px-6 py-6">
<Title title="Zeppelin - Documentation" /> <Title title="Zeppelin - Documentation" />
<!-- Top bar --> <!-- Top bar -->

View file

@ -10,6 +10,12 @@ export const router = new VueRouter({
{ path: "/login", beforeEnter: authRedirectGuard }, { path: "/login", beforeEnter: authRedirectGuard },
{ path: "/login-callback", beforeEnter: loginCallbackGuard }, { path: "/login-callback", beforeEnter: loginCallbackGuard },
// Privacy policy
{
path: "/privacy-policy",
component: () => import("./components/PrivacyPolicy.vue"),
},
// Docs // Docs
{ {
path: "/docs", path: "/docs",

View file

@ -23,6 +23,9 @@
<li> <li>
<a href="https://www.patreon.com/zeppelinbot">Patreon</a> <a href="https://www.patreon.com/zeppelinbot">Patreon</a>
</li> </li>
<li>
<a href="/privacy-policy">Privacy Policy</a>
</li>
</ul> </ul>
</div> </div>
</div> </div>

View file

@ -15,5 +15,4 @@ body {
@apply bg-gray-900; @apply bg-gray-900;
@apply text-gray-300; @apply text-gray-300;
@apply text-base; @apply text-base;
@apply p-4;
} }

View file

@ -0,0 +1,51 @@
.privacy-policy {
padding: 16px;
width: 100%;
min-height: 100vh;
background-color: #7289da;
background-image: linear-gradient(225deg, #7289da 0%, #5d70b4 100%);
color: #fff;
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
& a {
color: #fff;
text-decoration: underline;
}
& .wrapper {
flex: 0 0 auto;
width: 100%;
max-width: 800px;
}
& h1 {
font-size: 60px;
font-weight: 300;
}
& h2 {
font-size: 30px;
margin-top: 16px;
}
& p {
margin-bottom: 16px;
}
& ul {
list-style: disc;
margin-left: 24px;
margin-bottom: 16px;
& ul {
margin-bottom: 0;
}
}
}

View file

@ -77,7 +77,6 @@
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
margin-top: 8px; margin-top: 8px;
margin-left: -12px;
& .btn { & .btn {
margin: 12px; margin: 12px;