feat: Add TOS & Privacy Policy
Signed-off-by: Ben Hall <ben@benh.codes>
This commit is contained in:
parent
5139f790cc
commit
e77fc3c72a
@ -1,7 +1,7 @@
|
||||
export const API_URL = env.API_URL || "http://localhost:3000"
|
||||
export const API_URL = env.API_URL || "https://api.ticketsbot.cloud"
|
||||
export const PLACEHOLDER_DOCS_URL = "https://docs.ticketsbot.net/setup/placeholders.html"
|
||||
|
||||
export const OAUTH = {
|
||||
clientId: env.CLIENT_ID || "700742994386747404",
|
||||
clientId: env.CLIENT_ID || "1325579039888511056",
|
||||
redirectUri: env.REDIRECT_URI || "http://localhost:5000/callback"
|
||||
}
|
||||
|
63
frontend/src/layouts/LegalLayout.svelte
Normal file
63
frontend/src/layouts/LegalLayout.svelte
Normal file
@ -0,0 +1,63 @@
|
||||
<Head/>
|
||||
|
||||
<div class="wrapper">
|
||||
<div class="super-container">
|
||||
<!-- TODO: Make this better :) -->
|
||||
<!-- {#if currentRoute.component !== Index}
|
||||
<LoadingScreen/>
|
||||
{/if} -->
|
||||
<NotifyModal/>
|
||||
<div class="content-container">
|
||||
<Route {currentRoute} {params}/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
import {Route} from 'svelte-router-spa'
|
||||
import Head from '../includes/Head.svelte'
|
||||
import Sidebar from '../includes/Sidebar.svelte'
|
||||
import LoadingScreen from '../includes/LoadingScreen.svelte'
|
||||
import NotifyModal from '../includes/NotifyModal.svelte'
|
||||
import {loadingScreen} from "../js/stores"
|
||||
import Index from "../views/Index.svelte";
|
||||
|
||||
export let currentRoute;
|
||||
export let params = {};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
body {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.super-container {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.content-container {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.hide {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
@media (max-width: 950px) {
|
||||
.wrapper {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -36,9 +36,15 @@ import EditPanel from "./views/panels/EditPanel.svelte";
|
||||
import EditMultiPanel from "./views/panels/EditMultiPanel.svelte";
|
||||
import SelectServers from "./views/premium/SelectServers.svelte";
|
||||
|
||||
import LegalLayout from "./layouts/LegalLayout.svelte"
|
||||
import PrivacyPolicy from "./views/legal/PrivacyPolicy.svelte"
|
||||
import TOS from "./views/legal/TOS.svelte"
|
||||
|
||||
export const routes = [
|
||||
{name: '/', component: Index, layout: IndexLayout},
|
||||
{name: '404', path: '404', component: Error404, layout: ErrorLayout},
|
||||
{name: "/legal/privacy", component: PrivacyPolicy, layout: LegalLayout },
|
||||
{name: "/legal/tos", component: TOS, layout: LegalLayout },
|
||||
{name: '/callback', component: LoginCallback},
|
||||
{name: '/login', component: Login},
|
||||
{name: '/logout', component: Logout},
|
||||
|
139
frontend/src/views/legal/PrivacyPolicy.svelte
Normal file
139
frontend/src/views/legal/PrivacyPolicy.svelte
Normal file
@ -0,0 +1,139 @@
|
||||
<script>
|
||||
import Card from "../../components/Card.svelte";
|
||||
</script>
|
||||
|
||||
<div class="content">
|
||||
<div class="card-wrapper">
|
||||
<Card footer={false} fill={false}>
|
||||
<span slot="title"> Privacy Policy </span>
|
||||
<div slot="body" style="width: 100%">
|
||||
<h2>What data do you collect & how do you use the data?</h2>
|
||||
<p>
|
||||
When you invite Tickets to your server, we cache the guild
|
||||
object, channel objects and role objects. Additionally, we
|
||||
may also cache any user or member objects that Discord
|
||||
provides Tickets with in the GUILD_CREATE payload. Upon
|
||||
interaction with the bot, we may also cache your member and
|
||||
user objects if we do not already do so. We store this data
|
||||
solely for operation of the Tickets service to prevent
|
||||
excessive API requests to the Discord API.
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
When a Ticket is closed in a server, all message content and
|
||||
participants (specifically username, avatar hash and
|
||||
discriminator) as retrieved and uploaded to our ticket
|
||||
archive store. We use OVH's object storage offering to store
|
||||
the data, which is encrypted by us, and additionally
|
||||
encrypted by OVH at rest. Backups of our database and ticket
|
||||
transcripts are encrypted and stored in Switzerland, via
|
||||
Exoscale.
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
When logging into our web dashboard, we also collect all
|
||||
guild objects for the servers you are a member of. This is
|
||||
so we can verify your ownership / status in the server, and
|
||||
provide a list of servers to manage.
|
||||
</p>
|
||||
<hr />
|
||||
<h2>Third Party Services</h2>
|
||||
<h3>Bloxlink</h3>
|
||||
<p>
|
||||
If you have opted into using our Bloxlink integration, the
|
||||
IDs of users will be sent to Bloxlink when opening a ticket
|
||||
to retrieve their Roblox user ID. This is then sent to
|
||||
Roblox's own API and exchanged for the full Roblox user
|
||||
object. Only the user's snowflake is shared with Bloxlink.
|
||||
</p>
|
||||
<p>
|
||||
You can view Bloxlink's own Terms of Service <a
|
||||
href="https://www.iubenda.com/privacy-policy/11935974s"
|
||||
>here</a
|
||||
>.
|
||||
</p>
|
||||
<h3>User-created Integrations</h3>
|
||||
<p>
|
||||
Administrators of Discord servers using our service can
|
||||
install or create custom integrations. This means that upon
|
||||
opening a ticket, your user ID (which is not classed as PII
|
||||
by Discord) is sent to the operators of the service used by
|
||||
the integration. Custom integrations are able to define
|
||||
privacy policies. You should ask the administrators of
|
||||
servers using our service for the privacy policies of
|
||||
integrations they have installed.
|
||||
</p>
|
||||
<h3>Cloudflare</h3>
|
||||
<p>
|
||||
All traffic is routed through Cloudflare, whose service we
|
||||
use for web performance and security.
|
||||
</p>
|
||||
<p>
|
||||
You can view Cloudflare's privacy policy <a
|
||||
href="https://www.cloudflare.com/privacypolicy/">here</a
|
||||
>.
|
||||
</p>
|
||||
<h3>Google Analytics</h3>
|
||||
<p>
|
||||
We use Google Analytics on some of our web pages to track
|
||||
how we can improve your experience using our sites. Google
|
||||
Analytics is a industry standard tool, used by most
|
||||
websites. All data is anonymised before being forwarded. We
|
||||
do not use this data for advertising purposes.
|
||||
</p>
|
||||
<p>
|
||||
You can view Google Analytics' terms of service and privacy
|
||||
policy <a
|
||||
href="https://marketingplatform.google.com/about/analytics/terms/us/"
|
||||
>here</a
|
||||
>.
|
||||
</p>
|
||||
<hr />
|
||||
<h2>
|
||||
How can I contact you regarding concerns with the Tickets
|
||||
service?
|
||||
</h2>
|
||||
<p>
|
||||
We are happy to resolve any data processing of security
|
||||
concerns you may have. The best way to get in contact with
|
||||
us is by joining our Discord support server and opening a
|
||||
Ticket in the #support channel.
|
||||
</p>
|
||||
<hr />
|
||||
<h2>How can I request my data or data removal?</h2>
|
||||
<p>
|
||||
Please join our Discord support server and open a Ticket in
|
||||
the #support channel. Unfortunately, we are unable to help
|
||||
you with these queries via external channels, as we would
|
||||
not be able to reliably verify your identity. We will handle
|
||||
your request within 30 days of it being logged.
|
||||
</p>
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.content {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
.card-wrapper {
|
||||
display: block;
|
||||
width: 75%;
|
||||
margin-top: 5%;
|
||||
}
|
||||
|
||||
@media (max-width: 576px) {
|
||||
.card-wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
149
frontend/src/views/legal/TOS.svelte
Normal file
149
frontend/src/views/legal/TOS.svelte
Normal file
@ -0,0 +1,149 @@
|
||||
<script>
|
||||
import Card from "../../components/Card.svelte";
|
||||
</script>
|
||||
|
||||
<div class="content">
|
||||
<div class="card-wrapper">
|
||||
<Card footer={false} fill={false}>
|
||||
<span slot="title"> Terms of Service </span>
|
||||
<div slot="body" style="width: 100%">
|
||||
<p>
|
||||
Please read these terms of service ("terms", "terms of
|
||||
service") carefully before using Tickets Discord bot and
|
||||
ticketsbot.cloud (the "service") operated by
|
||||
ticketsbot.cloud ("us", 'we", "our").
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
We will provide their services to you, which are subject to
|
||||
the conditions stated below in this document. Every time you
|
||||
visit this website, use its services or make a purchase, you
|
||||
accept the following conditions.
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
By using the service, you represent and warrant that you
|
||||
agree to these terms, and have the legal capacity to do so.
|
||||
</p>
|
||||
<hr />
|
||||
<h2>Privacy</h2>
|
||||
<p>
|
||||
When you visit this website or use the service, we collect
|
||||
information about you. Please review our <a
|
||||
href="/legal/privacy">privacy policy</a
|
||||
> for further information.
|
||||
</p>
|
||||
<hr />
|
||||
<h2>User Guidelines</h2>
|
||||
<ol>
|
||||
<li>
|
||||
Do not take any actions to attempt to abuse or purposely
|
||||
disrupt or cause other damage to the service.
|
||||
</li>
|
||||
<li>
|
||||
Do not use the service in a manner inconsistent with any
|
||||
applicable laws or regulations of your local region and
|
||||
the United Kingdom.
|
||||
</li>
|
||||
<li>
|
||||
Do not attempt to access any data that you are not
|
||||
permitted to.
|
||||
</li>
|
||||
<li>
|
||||
Do not interfere with, disrupt, or create an undue
|
||||
burden on the service or the networks or services
|
||||
connected to the service.
|
||||
</li>
|
||||
<li>
|
||||
Do not attempt to bypass any measures of the service
|
||||
designed to prevent or restrict access to the service,
|
||||
or any portion of the service.
|
||||
</li>
|
||||
<li>
|
||||
Do not use the service to process or store adult visual
|
||||
media content, including but not restricted to images
|
||||
and videos.
|
||||
</li>
|
||||
<li>
|
||||
Do not use the service to process or store
|
||||
privacy-sensitive data from users, such as identity
|
||||
documents.
|
||||
</li>
|
||||
<li>
|
||||
Do not use the service to, or in association to a way
|
||||
that would, violate the <a
|
||||
href="https://discord.com/terms"
|
||||
>Discord Terms of Service</a
|
||||
>
|
||||
or
|
||||
<a href="https://discord.com/guidelines"
|
||||
>Discord Community Guidelines</a
|
||||
>. Please take additional care to review the following
|
||||
extracts:
|
||||
<blockquote>
|
||||
<br />
|
||||
You agree not to use the Service in order to:
|
||||
<br />
|
||||
...
|
||||
<br />
|
||||
Exploit, distribute or publicly inform other members
|
||||
of any game error, miscue or bug which gives an unintended
|
||||
advantage; violate any applicable laws or regulations;
|
||||
or promote or encourage illegal activity including, but
|
||||
not limited to, hacking, cracking or distribution of
|
||||
counterfeit software, compromised accounts, or cheats
|
||||
or hacks for the Service.
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
Do not abuse Discord products in any way, such as
|
||||
selling or purchasing an account or server, or
|
||||
participating in fraudulent Nitro incentives or
|
||||
<strong>Boosting activities</strong>.
|
||||
</blockquote>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
blockquote {
|
||||
border-left: 10px solid #ccc;
|
||||
margin: 1.5em 10px;
|
||||
padding: 0.5em 10px;
|
||||
}
|
||||
blockquote:before {
|
||||
color: #ccc;
|
||||
content: open-quote;
|
||||
font-size: 4em;
|
||||
line-height: 0.1em;
|
||||
margin-right: 0.25em;
|
||||
vertical-align: -0.4em;
|
||||
}
|
||||
blockquote p {
|
||||
display: inline;
|
||||
}
|
||||
.content {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
|
||||
.card-wrapper {
|
||||
display: block;
|
||||
width: 75%;
|
||||
margin-top: 5%;
|
||||
}
|
||||
|
||||
@media (max-width: 576px) {
|
||||
.card-wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
x
Reference in New Issue
Block a user