[PR #1846] [MERGED] feat: login page customization #2730

Closed
opened 2026-04-16 09:34:26 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/fosrl/pangolin/pull/1846
Author: @Fredkiss3
Created: 11/11/2025
Status: Merged
Merged: 12/17/2025
Merged by: @miloschwartz

Base: devHead: feat/login-page-customization


📝 Commits (10+)

📊 Changes

41 files changed (+4177 additions, -744 deletions)

View changed files

📝 messages/en-US.json (+21 -1)
📝 package-lock.json (+2291 -25)
📝 package.json (+3 -3)
📝 server/db/pg/migrate.ts (+1 -1)
📝 server/db/pg/schema/privateSchema.ts (+24 -0)
📝 server/db/pg/schema/schema.ts (+2 -1)
📝 server/db/sqlite/schema/privateSchema.ts (+31 -6)
📝 server/db/sqlite/schema/schema.ts (+7 -1)
📝 server/private/routers/external.ts (+27 -0)
📝 server/private/routers/internal.ts (+1 -0)
server/private/routers/loginPage/deleteLoginPageBranding.ts (+113 -0)
server/private/routers/loginPage/getLoginPageBranding.ts (+103 -0)
📝 server/private/routers/loginPage/index.ts (+4 -0)
server/private/routers/loginPage/loadLoginPageBranding.ts (+100 -0)
server/private/routers/loginPage/upsertLoginPageBranding.ts (+162 -0)
📝 server/routers/loginPage/types.ts (+8 -1)
📝 server/routers/resource/getResourceAuthInfo.ts (+0 -1)
📝 src/app/[orgId]/settings/(private)/billing/layout.tsx (+5 -23)
📝 src/app/[orgId]/settings/(private)/idp/[idpId]/layout.tsx (+2 -2)
src/app/[orgId]/settings/general/auth-page/page.tsx (+68 -0)

...and 21 more files

📄 Description

Community Contribution License Agreement

By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.

Description

Main changes:

Other changes:

  • Moved the auth page settings to its own tab in the Org general settings page
  • Added a process.exit(0) line to the migration script because otherwise the migration script would just hang even though it has already finished running 7a31292ec7/server/db/pg/migrate.ts (L13-L14)
  • Proposition: generate the build.ts file like this:
    export const build = "oss" as "saas" | "enterprise" | "oss";
    
    This way it prevents typos when comparing the value of build everywhere and is validated by TypeScript.
  • Added a prop exact to the HorizontalTabs component to match paths exactly

Screenshots

- -
Branding settings Screenshot 2025-11-15 at 06 27 15
Auth page tab Screenshot 2025-11-15 at 06 27 19
Resource auth page with branding Screenshot 2025-11-15 at 06 27 26
Org auth page with branding Screenshot 2025-11-15 at 06 27 31

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/fosrl/pangolin/pull/1846 **Author:** [@Fredkiss3](https://github.com/Fredkiss3) **Created:** 11/11/2025 **Status:** ✅ Merged **Merged:** 12/17/2025 **Merged by:** [@miloschwartz](https://github.com/miloschwartz) **Base:** `dev` ← **Head:** `feat/login-page-customization` --- ### 📝 Commits (10+) - [`0abc561`](https://github.com/fosrl/pangolin/commit/0abc561bb843d07b19ef44456846525af672bb09) ♻️ refactor - [`5641a2a`](https://github.com/fosrl/pangolin/commit/5641a2aa316589d35282380cac19f11a1a820ebf) 🗃️ add org auth page model - [`46d60bd`](https://github.com/fosrl/pangolin/commit/46d60bd0900ba1ed3a693294c001bfb4b288d050) ♻️ add type - [`08e4340`](https://github.com/fosrl/pangolin/commit/08e43400e40c6406d62166fc4b58d991ed1ae3de) 🚧 frontend wip - [`f58cf68`](https://github.com/fosrl/pangolin/commit/f58cf68f7c20fb332d237b0c8b01b5cea5f3a94d) 🚧 WIP - [`cfde4e7`](https://github.com/fosrl/pangolin/commit/cfde4e7443f1a5dab20a572df6967ba49d40e8c9) 🚧 WIP - [`4bd1c4e`](https://github.com/fosrl/pangolin/commit/4bd1c4e0c650a5f17241ce4bddfc834c8e8af788) ♻️ refactor - [`d218a4b`](https://github.com/fosrl/pangolin/commit/d218a4bbc3a85d11f712f2b9635c312b34af3878) 🏷️ fix types - [`02cd2cf`](https://github.com/fosrl/pangolin/commit/02cd2cfb1705e8c0ac9e6f32cf40abe6daf601a7) ✨ save and update branding - [`2284814`](https://github.com/fosrl/pangolin/commit/228481444f4ced3f61ab4f29cee9a77dd08c279a) ♻️ do not manually track the loading state in `ConfirmDeleteDialog` ### 📊 Changes **41 files changed** (+4177 additions, -744 deletions) <details> <summary>View changed files</summary> 📝 `messages/en-US.json` (+21 -1) 📝 `package-lock.json` (+2291 -25) 📝 `package.json` (+3 -3) 📝 `server/db/pg/migrate.ts` (+1 -1) 📝 `server/db/pg/schema/privateSchema.ts` (+24 -0) 📝 `server/db/pg/schema/schema.ts` (+2 -1) 📝 `server/db/sqlite/schema/privateSchema.ts` (+31 -6) 📝 `server/db/sqlite/schema/schema.ts` (+7 -1) 📝 `server/private/routers/external.ts` (+27 -0) 📝 `server/private/routers/internal.ts` (+1 -0) ➕ `server/private/routers/loginPage/deleteLoginPageBranding.ts` (+113 -0) ➕ `server/private/routers/loginPage/getLoginPageBranding.ts` (+103 -0) 📝 `server/private/routers/loginPage/index.ts` (+4 -0) ➕ `server/private/routers/loginPage/loadLoginPageBranding.ts` (+100 -0) ➕ `server/private/routers/loginPage/upsertLoginPageBranding.ts` (+162 -0) 📝 `server/routers/loginPage/types.ts` (+8 -1) 📝 `server/routers/resource/getResourceAuthInfo.ts` (+0 -1) 📝 `src/app/[orgId]/settings/(private)/billing/layout.tsx` (+5 -23) 📝 `src/app/[orgId]/settings/(private)/idp/[idpId]/layout.tsx` (+2 -2) ➕ `src/app/[orgId]/settings/general/auth-page/page.tsx` (+68 -0) _...and 21 more files_ </details> ### 📄 Description ## Community Contribution License Agreement By creating this pull request, I grant the project maintainers an unlimited, perpetual license to use, modify, and redistribute these contributions under any terms they choose, including both the AGPLv3 and the Fossorial Commercial license terms. I represent that I have the right to grant this license for all contributed content. ## Description **Main changes:** - Added settings to add branding to the login page for resources & org, they override the branding options set in the config file: https://docs.pangolin.net/manage/branding#branding **Other changes:** - Moved the auth page settings to its own tab in the Org general settings page - Added a `process.exit(0)` line to the migration script because otherwise the migration script would just hang even though it has already finished running https://github.com/Fredkiss3/pangolin/blob/7a31292ec7192efae9b1be30fa5113153150debe/server/db/pg/migrate.ts#L13-L14 - Proposition: generate the `build.ts` file like this: ```ts export const build = "oss" as "saas" | "enterprise" | "oss"; ``` This way it prevents typos when comparing the value of `build` everywhere and is validated by TypeScript. - Added a prop `exact` to the `HorizontalTabs` component to match paths exactly ## Screenshots | - | - | | ------ | ------ | | Branding settings | <img width="1539" height="1142" alt="Screenshot 2025-11-15 at 06 27 15" src="https://github.com/user-attachments/assets/436d0e59-406b-4803-820a-2cd0f37c8fbd" /> | | Auth page tab | <img width="1539" height="1142" alt="Screenshot 2025-11-15 at 06 27 19" src="https://github.com/user-attachments/assets/c1a14f08-3552-4b8f-bc74-6f2755339d81" /> | | Resource auth page with branding | <img width="1499" height="1152" alt="Screenshot 2025-11-15 at 06 27 26" src="https://github.com/user-attachments/assets/218622fb-cbd5-4093-a3b2-d173bfe8c852" /> | | Org auth page with branding |<img width="1499" height="1152" alt="Screenshot 2025-11-15 at 06 27 31" src="https://github.com/user-attachments/assets/bd70e07c-757a-4154-a5f0-309934f5176f" /> | --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-16 09:34:26 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/pangolin#2730