Add user IdP linking and MFA setup modals

Implements endpoints and frontend modals for users to link/unlink external identity providers (IdPs) to their accounts, including backend logic for secure OAuth linking and session management. Adds ModalComponentMFASetup for multi-factor authentication setup, refactors modal input components for accessibility and consistency, and updates documentation and trademark policy. Adjusts scope constants and permissions for identity provider management.
This commit is contained in:
João Vitória Silva
2025-10-17 16:19:57 +01:00
parent f0cb46ab98
commit 5d2c783460
26 changed files with 2006 additions and 577 deletions

96
TRADEMARK.md Normal file
View File

@@ -0,0 +1,96 @@
# Endurain Trademark Policy
_Last updated: 2025-10-17_
"**Endurain**" (the **Word Mark**) is a claimed trademark of **João Vitória Silva** (the **Owner**).
An application to register this word mark with the European Union Intellectual Property Office (EUIPO) is currently pending.
Until registration is granted, the mark should be referred to as **Endurain™**.
The **Endurain logo** and related visual identity elements (the **Logos**) are original design works owned by João Vitória Silva and protected by copyright and design rights, but they are **not yet registered as separate trademarks**.
This policy explains when and how you may use the Endurain name and Logos.
It exists alongside the softwares license (AGPLv3). **The AGPLv3 covers the code; this policy covers the branding.**
## 1. Philosophy
Endurain is open source and encourages self-hosting.
I want individuals, communities, and non-profits to freely use the **Endurain™** name and logo for non-commercial purposes.
At the same time, I reserve the right to control **commercial use** of the brand.
## 2. Permitted Use Without Permission
You **may** use the Endurain™ name and Logos in the following cases:
- **Personal self-hosting** — running Endurain for yourself, friends, or family.
- **Community or club hosting** — for sports clubs, local groups, or other non-profit efforts.
- **Educational use** — teaching, research, or academic projects.
- **Open-source contributions** — forks, test deployments, and integrations, as long as they are not sold.
- **Nominative references** — talking about, writing about, or demonstrating Endurain truthfully.
These uses may retain the name **Endurain™** and the official Logos.
**Rules for non-commercial use:**
- Do not imply that your use is officially sponsored or endorsed by the Endurain project.
- Do not alter the Logos except for reasonable resizing or adapting to backgrounds.
- Always comply with the AGPLv3 license for the code.
- Make it clear if your instance or fork is not the official Endurain service.
## 3. Uses That Require Permission
The following uses of the Endurain™ name or Logos require **prior written permission** from the Owner:
- Offering **paid hosting**, **SaaS**, or commercial cloud services under the Endurain name.
- Selling products or services that prominently use the Endurain name or Logos.
- Using the Endurain name in a **company name, brand, or product line**.
- Marketing **commercial support, consulting, or training** under the Endurain name.
- Registering domains or social media handles that imply official status (e.g., `enduraincloud.com`, `@endurainapp`).
- Producing merchandise (shirts, stickers, etc.) with the Endurain name or Logos for sale.
For permission requests, contact: [joao@endurain.com](mailto:joao@endurain.com).
## 4. Forks and Distributions
I welcome forks and distributions under the AGPLv3 license.
If your fork is **non-commercial**, you may keep the Endurain™ name and Logos, provided you:
- Clearly state that it is **not the official Endurain project**.
- Identify it as “a fork of Endurain” or “based on Endurain.”
- Do not present yourself as an official maintainer or partner.
If your fork is **commercial** (offering paid hosting, subscriptions, or products), you **must rename it** and **remove the Logos** unless you have written permission.
## 5. Packages, Domains, and Namespaces
- **Package registries** (npm, PyPI, Docker, etc.): Non-commercial packages may use “Endurain” in the name.
Commercial or paid offerings may not without permission.
- **Domains and handles:** Avoid names that could be mistaken for the official project unless approved.
## 6. Prohibited Uses
The Endurain™ name and Logos may **never** be used:
- In any misleading way that implies endorsement or partnership.
- In connection with illegal activities, malware, or harmful content.
- To promote or brand competing software as “Endurain” without permission.
- To sell any service or product under the Endurain name without authorization.
## 7. License vs. Trademark
The AGPLv3 license gives you broad rights to use, modify, and distribute the **code**, including commercially.
This trademark policy only limits how you use the **name and branding**.
You are free to offer commercial services based on the Endurain code — but you must not market them **under the Endurain name or Logos** unless permitted.
## 8. Attribution
When referring to Endurain in permitted use, include the following notice:
> "Endurain™ is a trademark of João Vitória Silva. Registration pending."
## 9. Reporting Misuse
If you believe the Endurain trademark or branding is being misused, please contact: [joao@endurain.com](mailto:joao@endurain.com).
## 10. Changes
This policy may be updated periodically. Any changes will be documented in this file.