From c22cdf96541a6180f91cee8bccd9905aa9f06d2a Mon Sep 17 00:00:00 2001 From: Southpaw <44805409+Southpaw1496@users.noreply.github.com> Date: Sun, 16 Jul 2023 11:30:26 +0100 Subject: [PATCH] Remove NPO documents and functionality from the website (#146) --- functions/api/v1/join-us/submit.js | 80 ---------- functions/api/v1/join-us/verify.js | 81 ---------- src/layouts/HeroBase.astro | 6 - src/layouts/Home.astro | 22 +-- src/layouts/JoinForm.astro | 148 ------------------ src/locales/en/common.flt | 1 - src/pages/en/community/join-us.mdx | 22 --- src/pages/en/legal/bylaws/en.mdx | 97 ------------ src/pages/en/legal/bylaws/fr.mdx | 95 ----------- .../en/legal/membership-privacy-policy.mdx | 73 --------- 10 files changed, 1 insertion(+), 624 deletions(-) delete mode 100644 functions/api/v1/join-us/submit.js delete mode 100644 functions/api/v1/join-us/verify.js delete mode 100644 src/layouts/JoinForm.astro delete mode 100644 src/pages/en/community/join-us.mdx delete mode 100644 src/pages/en/legal/bylaws/en.mdx delete mode 100644 src/pages/en/legal/bylaws/fr.mdx delete mode 100644 src/pages/en/legal/membership-privacy-policy.mdx diff --git a/functions/api/v1/join-us/submit.js b/functions/api/v1/join-us/submit.js deleted file mode 100644 index 1f84fb9be..000000000 --- a/functions/api/v1/join-us/submit.js +++ /dev/null @@ -1,80 +0,0 @@ -import jwt from '@tsndr/cloudflare-worker-jwt'; - -export async function onRequest(context) { - if (context.request.method !== 'POST') { - return new Response('Method not allowed', { status: 405 }) - } - - const body = await context.request.json(); - const { name, email, country, token } = body; - - if (!name || !email || !country || !token) { - return new Response('Missing required fields', { status: 400 }); - } - - if (!await verifyTurnstile(token, context.request.headers.get('cf-connecting-ip'), context.env.TURNSTILE_SECRET)) { - return new Response('Invalid turnstile token', { status: 400 }); - } - - const jwtToken = await jwt.sign({ name, email, country, exp: Math.floor(Date.now() / 1000) + 3600 }, context.env.JWT_SECRET); - - const content = `Hello, - -Thank you for your interest in joining The Quilt Project! Please click the following link to verify your email address: -https://quiltmc.org/api/v1/join-us/verify?token=${jwtToken} - -If you did not request this email, please ignore it. This link is valid for one hour. - -Thanks, -The Quilt Project Team`; - const status = await sendEmail(email, name, content, context.env.DKIM_PRIVATE_KEY); - - return new Response('OK', { status }); -} - -async function sendEmail(recipientEmail, recipientName, content, dkim_key) { - return (await fetch("https://api.mailchannels.net/tx/v1/send", { - "method": "POST", - "headers": { - "content-type": "application/json", - }, - "body": JSON.stringify({ - "personalizations": [{ - "to": [ - { - "email": recipientEmail, - "name": recipientName - }], - "dkim_domain": "quiltmc.org", - "dkim_selector": "website", - "dkim_private_key": dkim_key - }], - "from": { - "email": "verification@quiltmc.org", - "name": "The Quilt Project Team" - }, - - "subject": "Join The Quilt Project - Verify your email", - "content": [{ - "type": "text/plain", - "value": content, - }], - }), - })).status; -} - -async function verifyTurnstile(token, ip, secret) { - let formData = new FormData(); - formData.append('secret', secret); - formData.append('response', token); - formData.append('remoteip', ip); - - const url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify'; - const result = await fetch(url, { - body: formData, - method: 'POST', - }); - - const outcome = await result.json(); - return outcome.success; -} diff --git a/functions/api/v1/join-us/verify.js b/functions/api/v1/join-us/verify.js deleted file mode 100644 index ad0c858d7..000000000 --- a/functions/api/v1/join-us/verify.js +++ /dev/null @@ -1,81 +0,0 @@ -import jwt from '@tsndr/cloudflare-worker-jwt'; - -const WELCOME_MESSAGE = `Hello, - -Thank you for joining The Quilt Project! We will contact you as soon as we've confirmed your registration - -In the meantime, here are a few useful links: -- Our Discord: https://discord.quiltmc.org/ -- Our Forums: https://forum.quiltmc.org/ -- Our GitHub: https://github.com/QuiltMC/ - -Quilt is an Open-Source project that lives thanks to people like you. If you want to help us further, please consider donating at https://opencollective.com/quiltmc/. - -From the bottom of our hearts, thank you for joining us! -The Quilt Project Team` - -export async function onRequest(context) { - if (context.request.method !== 'GET') { - return new Response('Method not allowed', { status: 405 }) - } - - const token = (new URL(context.request.url)).searchParams.get('token'); - - if (!token) { - return new Response('Missing required fields', { status: 400 }); - } - - try { - await jwt.verify(token, context.env.JWT_SECRET, { throwError: true }); - } catch (e) { - return new Response('Invalid token', { status: 400 }); - } - - const { name, email, country } = (await jwt.decode(token)).payload; - - const legalContent = `New registration from ${name} (${email}) in ${country}.\n\nPlease make sure to reply to them.`; - const legalStatus = await sendEmail('legal@quiltmc.org', 'Legal Team', 'New registration', legalContent, context.env.DKIM_PRIVATE_KEY); - - if (legalStatus !== 202) { - return new Response('Failed to send email', { status: 500 }); - } - - const memberStatus = await sendEmail(email, name, 'Welcome to The Quilt Project!', WELCOME_MESSAGE, context.env.DKIM_PRIVATE_KEY); - - if (memberStatus !== 202) { - return new Response('Failed to send email', { status: 500 }); - } - - return new Response('', { status: 308, headers: { location: "/en/?toast=registered" } }); -} - -async function sendEmail(recipientEmail, recipientName, subject, content, dkim_key) { - return (await fetch("https://api.mailchannels.net/tx/v1/send", { - "method": "POST", - "headers": { - "content-type": "application/json", - }, - "body": JSON.stringify({ - "personalizations": [{ - "to": [ - { - "email": recipientEmail, - "name": recipientName - }], - "dkim_domain": "quiltmc.org", - "dkim_selector": "website", - "dkim_private_key": dkim_key - }], - "from": { - "email": "registration@quiltmc.org", - "name": "The Quilt Project Team" - }, - - "subject": subject, - "content": [{ - "type": "text/plain", - "value": content, - }], - }), - })).status; -} diff --git a/src/layouts/HeroBase.astro b/src/layouts/HeroBase.astro index f6f5b75d2..48ca4dd96 100644 --- a/src/layouts/HeroBase.astro +++ b/src/layouts/HeroBase.astro @@ -114,12 +114,6 @@ const { rtl } = rtlSettings(); icon="fas fa-circle-dollar-to-slot" textKey="button-donate" /> - - - - - - diff --git a/src/locales/en/common.flt b/src/locales/en/common.flt index d78ee82bc..a0bc1fac7 100644 --- a/src/locales/en/common.flt +++ b/src/locales/en/common.flt @@ -63,7 +63,6 @@ button-donate = Donate button-forum = {-forum} button-github = {-github} button-install = Install -button-join-npo = Join The Non-Profit button-mastodon = {-mastodon} button-maven-repo = Maven Repo button-more = More diff --git a/src/pages/en/community/join-us.mdx b/src/pages/en/community/join-us.mdx deleted file mode 100644 index 1fdb9bf19..000000000 --- a/src/pages/en/community/join-us.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -permalink: /community/join-us -title: Join The Non-Profit -description: Fill out this form to join The Quilt Project, a registered non-profit. -layout: /src/layouts/Page.astro ---- - -import HomeMessage from "@parts/home/HomeMessage.astro"; -import JoinForm from "@layouts/JoinForm.astro"; - -Through this form you can join The Quilt Project, a registered non-profit in France. Once the form is filled, -we will contact you to confirm your membership through email. - -Thank you for your interest! - - - - diff --git a/src/pages/en/legal/bylaws/en.mdx b/src/pages/en/legal/bylaws/en.mdx deleted file mode 100644 index c4e197183..000000000 --- a/src/pages/en/legal/bylaws/en.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -permalink: /legal/bylaws/en/ -title: Non-profit Bylaws (English) -description: The bylaws of The Quilt Project. -layout: /src/layouts/Page.astro ---- - -# Foreword - -This contains the bylaws of The Quilt Project, a non-profit organization registered in France. - -This is an unofficial, non legally binding translation of the bylaws of the [official bylaws](/en/legal/bylaws/fr/). -In case of a conflict between the two, the official French bylaws take precedence. - -# Bylaws - -## Article 1 - -On May 21, 2023, an association governed by the law of July 1, 1901 and the decree of August 16, 1901, entitled “The Quilt Project” was founded between members of these bylaws and those who will subsequently join. - -The association is also designated by the name “Quilt”. - - -## Article 2 -This association aims to create an inclusive community around the QuiltMC mod-loader project, as well as to support this project. - -## Article 3 -The office is in the domiciliation company, whose identification number is 880 522 487. - -The office address is : -154 Rue de Rome -Bureau 3 -13006 Marseille -France - -## Article 4 -The duration of the association is unlimited. - -## Article 5 -Membership of the association is free without annual fees, subject to acceptance by the office. - -## Article 6 -Active members are those who join the association. - -## Article 7 -Membership is lost by: -- Resignation. -- Death. -- Expulsion pronounced by the board of directors for any reason. - -## Article 8 -The ordinary general assembly includes all the members of the association in whatever capacity. - -It gathers at least once per year. - -Fifteen days at least before the fixed date, the members of the association are convened. The agenda appears on the convocations. - -Only the members of the office have the right to vote, regardless of their age. - -All deliberations are taken by electronic vote, by a majority of the votes cast. - -The decisions of general meetings are binding on all members, including those absent or represented. - -## Article 9 -If necessary, the board of directors may convene an extraordinary general assembly, in accordance with the procedures provided for in these articles of association and only for modification of the articles of association or dissolution. - -## Article 10 -The board of directors is composed of members part of the “Legal Team” within the organization “QuiltMC”. - -The treasurers are members, part of the “Administrative Board” within the organization “QuiltMC”. - -They together form the office. - -## Article 11 -All functions, including those of the members of the board of directors and the office, are free and voluntary. - -Only the costs incurred by the fulfilment of their mandate are reimbursed on receipts. - -## Article 12 - -A set of internal regulations can be drawn up by the board of directors, which then has them approved by the general meeting. - -This possible regulation is intended to fix the various points not envisaged by the present statutes, in particular those which relate to the internal administration of the association. - -## Article 13 - -In the event of dissolution pronounced according to the procedures provided for in Article 11, one or more liquidators are appointed, and the net assets, if any, are devolved to a non-profit organization in accordance with the decisions of the extraordinary general meeting which rules on the dissolution. - -The net assets cannot be devolved to a member of the association, even partially, except for the recovery of a contribution. - -Not prohibiting the allocation of net assets to a member could compromise the criterion of disinterested management, tax application of Article 1 of the law of 1901, and therefore the qualification of general interest. - -## Article 14 - -These statutes were approved during the constitutive general assembly on May 21, 2023. - -They have been drawn up in as many copies as there are interested parties, including one for the declaration, one for the Prefecture and one for the association. diff --git a/src/pages/en/legal/bylaws/fr.mdx b/src/pages/en/legal/bylaws/fr.mdx deleted file mode 100644 index 5af115715..000000000 --- a/src/pages/en/legal/bylaws/fr.mdx +++ /dev/null @@ -1,95 +0,0 @@ ---- -permalink: /legal/bylaws/fr/ -title: Non-profit Bylaws (French) -description: The bylaws of The Quilt Project. -layout: /src/layouts/Page.astro ---- - -# Foreword - -This contains the bylaws of The Quilt Project, a non-profit organization registered in France. - -You can find an unofficial translation of the [bylaws in English here](/en/legal/bylaws/en/). - -# Bylaws - -## Article 1 -En date du 21 mai 2023 a été fondé entre les adhérents aux présents statuts et ceux qui y -adhéreront ultérieurement une association régie par la loi du 1er juillet 1901 et le décret du 16 août 1901, ayant pour titre “The Quilt Project”. - -L’association est désignée par le sigle “Quilt”. - -## Article 2 -Cette association a pour objet de créer une communauté inclusive autour du projet du mod-loader QuiltMC ainsi que soutenir ce projet. - -## Article 3 -Le siège social est fixé dans l'entreprise de domiciliation dont le numéro d'immatriculation est 880 522 487. - -L'adresse du siège social est : -154 Rue de Rome -Bureau 3 -13006 Marseille -France - -## Article 4 -La durée de l’association est illimitée. - -## Article 5 -L’adhésion à l’association est libre sans cotisation annuelle, sous réserve d’acceptation du bureau. - -## Article 6 -Sont membres actifs ceux qui adhèrent à l'association. - -## Article 7 -La qualité de membre se perd par : -- La démission. -- Le décès. -- La radiation prononcée par le conseil d’administration pour tout motif. - -## Article 8 -L'assemblée générale ordinaire comprend tous les membres de l'association à quelques titres qu'ils soient. - -Elle se réunit au moins une fois par an. - -Quinze jours au moins avant la date fixée, les membres de l'association sont convoqués. L'ordre du jour figure sur les convocations. - -Seuls les membres du bureau ont le droit de vote, peu importe leur âge. - -Toutes les délibérations sont prises par voix électronique, à la majorité des voix des suffrages exprimés. - -Les décisions des assemblées générales s’imposent à tous les membres, y compris absents ou représentés. - -## Article 9 -Si besoin est, le conseil d’administration peut convoquer une assemblée générale extraordinaire, suivant les modalités prévues aux présents statuts et uniquement pour modification des statuts ou la dissolution. - -## Article 10 -Le conseil d’administration est composé d’office des adhérant ayant le status de membre de la “Legal Team” au sein de l’organisation “QuiltMC”. - -Les trésoriers sont d’office des adhérant ayant le status de membre de l”Administartive Board” au sein de l’organisation “QuiltMC”. - -Ceci forment ensemble le bureau. - -## Article 11 -Toutes les fonctions, y compris celles des membres du conseil d’administration et du bureau, sont gratuites et bénévoles. - -Seuls les frais occasionnés par l’accomplissement de leur mandat sont remboursés sur justificatifs. - -## Article 12 - -Un règlement intérieur peut être établi par le conseil d'administration, qui le fait alors approuver par l'assemblée générale. - -Ce règlement éventuel est destiné à fixer les divers points non prévus par les présents statuts, notamment ceux qui ont trait à l'administration interne de l'association. - -## Article 13 - -En cas de dissolution prononcée selon les modalités prévues à l’article 11, un ou plusieurs liquidateurs sont nommés, et l'actif net, s'il y a lieu, est dévolu à un organisme ayant un but non lucratif conformément aux décisions de l’assemblée générale extraordinaire qui statue sur la dissolution. - -L’actif net ne peut être dévolu à un membre de l’association, même partiellement, sauf reprise d’un apport. - -Ne pas interdire l’attribution de l’actif net à un membre pourrait compromettre le critère de gestion désintéressée, déclinaison fiscale de l’article 1er de loi de 1901, et donc la qualification d’intérêt général. - -## Article 14 - -Les présents statuts ont été approuvés lors de l'assemblée générale constitutive le 21 mai 2023. - -Ils ont été établis en autant d'exemplaires que de parties intéressées, dont un pour la déclaration, un pour la Préfecture et un pour l'association. diff --git a/src/pages/en/legal/membership-privacy-policy.mdx b/src/pages/en/legal/membership-privacy-policy.mdx deleted file mode 100644 index 22a772ab3..000000000 --- a/src/pages/en/legal/membership-privacy-policy.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -permalink: /legal/cozy-privacy-policy/ -title: Membership Privacy Policy -description: The privacy policy for your membership inside our non-profit. -layout: /src/layouts/Page.astro ---- - -# Foreword - -The following document was created as required by the European Union General Data Protection Regulation (EU GDPR). -You can find more information about that regulation on [gdpr.eu](https://gdpr.eu/). - -This document details what and why data is collected by The Quilt Project when you join the non-profit, -how it is used and how to use your rights related to your data. - -QuiltMC ("Us", "We", "Our") is the data controller for the data collected through the Cozy Discord bots. - -# Data Collected - -When you join the non-profit, we collect the following data: -- Your name -- Your email address -- Your country - -This data is used to keep track of our members, communicate with you and to comply with the law. - -# Data Retention - -Data is retained up until you leave the non-profit. If you leave the non-profit, your data is deleted as soon as reasonably possible. - -This will be done within 30 days of you leaving the non-profit. - -# Data Governance - -Data access is limited to our Legal Team. We do not share any data with third parties. -We do not sell any data. Your data isn't shared with any contracted sub-processors. - -# Access, rectification, erasure, restriction, portability, and objection - -Every user is entitled to the following: - -**The right to access** – You have the right to request Us for copies of your personal data. -We may charge you a small fee for this service. - -**The right to rectification** – You have the right to request that We correct any information -you believe is inaccurate. You also have the right to request Us to complete the information -you believe is incomplete. - -**The right to erasure** – You have the right to request that We erase your personal data, -under certain conditions. - -**The right to restrict processing** – You have the right to request that We restrict the -processing of your personal data, under certain conditions. - -**The right to data portability** – You have the right to request that We transfer the data -that we have collected to another organization, or directly to you, under certain conditions. - -**The right to object to processing** – You have the right to object to Our processing of -your personal data, under certain conditions. - -If you would like to exercise those rights, contact us at [privacy@quiltmc.org](mailto:privacy@quiltmc.org). -We may ask you to verify your identity before processing your request. -We will respond to your request within 30 days as required by law. - -# Changes to the Privacy Policy - -We keep this privacy policy under regular review and places any updates on this web page. -If we do this, we will post the changes on this page and update the "Edited" date at the top of this page. - -# Contact - -If you have any questions about this privacy policy, please contact us at -[privacy@quiltmc.org](mailto:privacy@quiltmc.org).