add a barebones privacy policy, will likely need to expand it if the service gets more usage

This commit is contained in:
Silas 2022-02-25 00:48:40 -05:00
parent 7e2eb2cb75
commit 9b362d0241
Signed by: silentsilas
GPG Key ID: 4199EFB7DAA34349
6 changed files with 74 additions and 7 deletions

View File

@ -24,6 +24,7 @@ import JustPage from './pages/JustPage';
import ForPage from './pages/ForPage'; import ForPage from './pages/ForPage';
import YouPage from './pages/YouPage'; import YouPage from './pages/YouPage';
import AuthPage from './pages/AuthPage'; import AuthPage from './pages/AuthPage';
import PrivacyPolicyPage from './pages/PrivacyPolicyPage';
let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content") let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
let liveSocket = new LiveSocket("/live", Socket, {params: {_csrf_token: csrfToken}}) let liveSocket = new LiveSocket("/live", Socket, {params: {_csrf_token: csrfToken}})
@ -43,5 +44,5 @@ liveSocket.connect()
window.liveSocket = liveSocket window.liveSocket = liveSocket
window.Components = { window.Components = {
SplashPage, JustPage, ForPage, YouPage, AuthPage SplashPage, JustPage, ForPage, YouPage, AuthPage, PrivacyPolicyPage
} }

View File

@ -34,12 +34,6 @@ const ForPage = (props: ForPageProps) => {
}; };
const postContacts = async () => { const postContacts = async () => {
// const fragmentData = window.location.hash.split('.');
// if (fragmentData.length <= 0) {
// alert("No key found in fragment URI");
// return;
// }
const linkId = sessionStorage.getItem("link_id"); const linkId = sessionStorage.getItem("link_id");
if (!linkId) { if (!linkId) {
alert("No created link found in storage"); alert("No created link found in storage");

View File

@ -0,0 +1,62 @@
import React from "react";
import {
CenteredContainer,
Header1,
Header3,
GlobalStyle,
} from "@intended/intended-ui";
const PrivacyPolicyPage = () => {
return (
<React.StrictMode>
<GlobalStyle />
<CenteredContainer
fullscreen
style={{
background: "none",
height: "auto",
}}
>
<CenteredContainer wide style={{ maxWidth: "800px" }}>
<Header1>Privacy Policy</Header1>
<Header3
small
style={{
color: "#CCCCCC",
textAlign: "left",
fontSize: "18px",
lineHeight: 1.6,
}}
>
<p>
This instance of Intended Link collects as little data as
necessary to provide its service. It can not read the secret
message and secret file, and all data associated with a link is
deleted once it expires.
</p>
<p>
Each link created will store the recipient's username or email and
its associated service for authorization purposes. It will store
the filename and filetype of the secret file, if it exists, to
make it easier for users to download and use the file once it's
decrypted. We store the timestamps of when the Link was created
and updated, along with when the link should expire.
</p>
<p>
When you authenticate with one of our supported OAuth providers,
we receive the third party's response, and if verification was
successful, we store the account's username and verified emails in
a short-lived session store. This data is then used to determine
whether the user is permitted to download the link's associated
secret message and file.
</p>
<p>This software is licensed under LGPL.</p>
</Header3>
</CenteredContainer>
</CenteredContainer>
</React.StrictMode>
);
};
export default PrivacyPolicyPage;

View File

@ -10,4 +10,9 @@ defmodule EntenduWeb.PageController do
|> clear_session() |> clear_session()
|> render("index.html") |> render("index.html")
end end
def privacy(conn, _params) do
conn
|> render("privacy_policy.html")
end
end end

View File

@ -35,6 +35,8 @@ defmodule EntenduWeb.Router do
post "/just/for", LinkController, :for post "/just/for", LinkController, :for
get "/just/for/you", LinkController, :you_page get "/just/for/you", LinkController, :you_page
get "/just/for/you/:id", LinkController, :auth_page get "/just/for/you/:id", LinkController, :auth_page
get "/privacy-policy", PageController, :privacy
end end
scope "/auth", EntenduWeb do scope "/auth", EntenduWeb do

View File

@ -0,0 +1,3 @@
<section>
<%= react_component("Components.PrivacyPolicyPage") %>
</section>