Merge pull request 'feature/add-privacy-policy' (#23) from feature/add-privacy-policy into master
Reviewed-on: #23
This commit is contained in:
commit
5132f41cad
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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;
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<section>
|
||||||
|
<%= react_component("Components.PrivacyPolicyPage") %>
|
||||||
|
</section>
|
Loading…
Reference in New Issue