From 49d8032638bb110a6fcb9bd97ad96eb18527969d Mon Sep 17 00:00:00 2001 From: hippoz <10706925-hippoz@users.noreply.gitlab.com> Date: Sun, 30 Oct 2022 01:05:20 +0300 Subject: [PATCH] add a basic system for third-party applications to provide transparency about data collection practices --- frontend/public/global.css | 2 +- .../src/components/PresenceSidebar.svelte | 23 ++++++- frontend/src/components/Sidebar.svelte | 10 ++- .../overlays/OverlayProvider.svelte | 4 ++ .../overlays/ThirdPartyNotice.svelte | 53 ++++++++++++++++ .../src/components/overlays/UserInfo.svelte | 39 ++++++++++++ frontend/src/gateway.js | 4 +- frontend/src/stores.js | 25 +++++++- src/gateway/gatewaypresence.ts | 5 +- src/gateway/index.ts | 63 +++++++++++++++---- src/types/gatewayclientstate.d.ts | 5 +- 11 files changed, 214 insertions(+), 19 deletions(-) create mode 100644 frontend/src/components/overlays/ThirdPartyNotice.svelte create mode 100644 frontend/src/components/overlays/UserInfo.svelte diff --git a/frontend/public/global.css b/frontend/public/global.css index 33f7892..07f5b02 100644 --- a/frontend/public/global.css +++ b/frontend/public/global.css @@ -306,7 +306,7 @@ body { font-size: 1.2rem; } -.text_small { +.text-small { font-size: 0.833rem; } diff --git a/frontend/src/components/PresenceSidebar.svelte b/frontend/src/components/PresenceSidebar.svelte index 919a8fd..6191d2d 100644 --- a/frontend/src/components/PresenceSidebar.svelte +++ b/frontend/src/components/PresenceSidebar.svelte @@ -1,13 +1,31 @@ + +
Certain third-party services on this server may have different data processing, data usage, and data collection policies, as well as Terms of Service or similar. Please carefully review each service in the list below. If you do not agree with any of these policies, you may be able to ask the user to opt out, or make an account deletion request to the server owner. The server owner may be able to aid you in the process of opting out.
+ + {#each $presenceStore as entry (entry.user.id)} + {#if entry.bridgesTo || entry.terms || entry.privacy} +This user may send messages and other metadata to {presenceEntry.bridgesTo}, which may have its own Terms of Service and Privacy Policy.
+ {/if} + {#if presenceEntry.privacy} +This user has their own Privacy Policy, available at: { presenceEntry.privacy }. This user may process the data it has access to on this server under different terms than the server. Please consult their Privacy Policy.
+ {/if} + {#if presenceEntry.terms} +This user has their own Terms of Service, available at: { presenceEntry.terms }. Failure to comply with these Terms of Service may result in termination of the services provided to you by this user.
+ {/if} + {#if presenceEntry.bridgesTo || presenceEntry.privacy || presenceEntry.terms} +You may be able to ask the user to opt out of the above.
+ {/if} +