Commit Graph

33 Commits

Author SHA1 Message Date
Konstantin Chernyshev
bdb886d076 feat: add auth.registration_enabled flag and admin ui user creation (#543)
Hey! @maxdorninger, could you please take a look on the other one ;) ?

Closes #145 ; seems like a must have thing

- Add `auth.registration_enabled` flag (default `false` — sounds safer
default in current setup)
- Password registration: `/auth/register` route will return 403 if
disabled
- OIDC registration: `UserManager.oauth_callback` is overridden to
reject user without match; so no auto-provision
- `/auth/metadata` exposes the flag to the frontend
- Frontend: signup link hidden on the login card; direct navigation to
`/login/signup` redirects to `/login` via a `+page.ts` load guard
  
  
<img width="463" height="461" alt="Screenshot 2026-05-16 at 20 52 11"
src="https://github.com/user-attachments/assets/1def5142-e930-4aa6-8771-cbff54250c1f"
/>
<img width="450" height="391" alt="Screenshot 2026-05-16 at 20 52 22"
src="https://github.com/user-attachments/assets/b4013964-cace-4aeb-a848-48ced86fcc5f"
/>

  
Also this means uses need to be created somehow -- so..
- Add POST `/users` - admin-protected endpoint to create a new users
(created user can be used with OIDC)
- Fronted: Add new user button and modal dialog  

<img width="800" height="379" alt="Screenshot 2026-05-17 at 11 32 06"
src="https://github.com/user-attachments/assets/048e6c43-a1c1-42ce-a19c-fd9d916a47d9"
/>
<img width="537" height="439" alt="Screenshot 2026-05-17 at 11 32 12"
src="https://github.com/user-attachments/assets/3f83c2c1-027b-4279-b6a1-bbc8da77efed"
/>

---

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Add config toggle to enable/disable user registration; when disabled
sign-up endpoints return 403 and OIDC won’t auto-create unknown users.
Added admin API to create users.

* **Frontend**
* Login UI hides signup link when registration is disabled; signup page
redirects to login. Admin users list gains “Add User” modal to create
users.

* **Documentation**
* Authentication docs and config examples updated to document the new
option.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/maxdorninger/MediaManager/pull/543?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-05 19:41:04 +02:00
Marcel Hellwig
96b84d45db Adding some more new lints (#393)
Enable `UP` and `TRY` lint
2026-02-01 18:04:15 +01:00
Maximilian Dorninger
a39e0d204a Ruff enable type annotations rule (#362)
This PR enables the ruff rule for return type annotations (ANN), and
adds the ty package for type checking.
2026-01-06 17:07:19 +01:00
Marcel Hellwig
55b2dd63d8 ruff: add ARG linter
this mostly either removes unused parameters, prefixes them with an
underscore or uses the @override decorator to tell the linter, that that
method comes from a superclass and can't be changed
2026-01-05 19:30:42 +01:00
Marcel Hellwig
5368cad77a ruff: add S linter
this mostly adds a timeout=60 to all requests

this does mainly wants a timeout to all requests functions, since when
left out they hang infinitly.
I added a timeout of 60s, which is probably way too high, but since
before this there was none, I guess it's an improvement?
2026-01-05 19:30:42 +01:00
Marcel Hellwig
1857cf501c ruff: enable RUF lint 2026-01-05 19:30:42 +01:00
Marcel Hellwig
ff013ac76e ruff: enable I lint 2026-01-05 19:30:42 +01:00
maxid
40130c6a37 refactor: rename AllEncompassingConfig to MediaManagerConfig 2025-12-29 23:38:17 +01:00
maxid
1f60db20f3 fix bug where extra slash is appended to the frontend_url, causing oauth to not work 2025-12-07 00:29:17 +01:00
maxDorninger
bb5c61ac79 remove /web prefix from the frontend_url variable 2025-11-29 15:54:01 +01:00
maxDorninger
bebd55a211 remove changes dict from logging message 2025-09-13 22:00:04 +02:00
maxDorninger
ed6271ab35 update default email to admin@example.com 2025-09-13 21:57:04 +02:00
maxDorninger
8f5cc9329c update how oauth is handled 2025-09-13 18:42:34 +02:00
maxDorninger
1f544e55e8 add support for multiple oauth providers 2025-09-04 20:05:45 +02:00
maxDorninger
c773bf41b6 keep users who change their email verified status 2025-07-29 16:20:11 +02:00
maxDorninger
0df004df6f fix and move create default user function to auth.users 2025-07-18 13:45:51 +02:00
maxDorninger
c8425d7949 apply the same changes to the redirecting cookie transport 2025-07-13 17:23:05 +02:00
maxDorninger
e2704b6b1f fix session cookie not being transmitted when using http instead of https 2025-07-13 17:21:24 +02:00
maxDorninger
9db9c85fc6 make all var names lower case and fix circular imports 2025-07-11 00:47:29 +02:00
maxDorninger
7ce6de7f85 replace all the other config usages with allencompassing config 2025-07-10 22:25:05 +02:00
maxDorninger
1b784c35c1 add allencompassing config, replace basic config usage with allencompassing config usage 2025-07-10 21:47:37 +02:00
maxDorninger
efc3846860 format files 2025-07-01 16:03:17 +02:00
maxDorninger
179dec0a7a add notificaton service providers (email, ntfy.sh, gotify and pushover) 2025-07-01 15:09:03 +02:00
maxDorninger
61705511b5 format files 2025-06-29 17:31:22 +02:00
maxDorninger
d2756bcafa updating docs regarding trailing slashes in urls in env vars 2025-06-29 16:31:16 +02:00
maxDorninger
83521a36ff add feature: password resets via email 2025-06-29 16:26:01 +02:00
maxDorninger
231c36efe0 run linter and formatter 2025-06-07 13:29:48 +02:00
maxDorninger
3ec45c5f0a format code 2025-05-31 14:40:33 +02:00
maxDorninger
e6a58d07a0 fix: trying to add the required scopes 2025-05-30 19:12:08 +02:00
maxDorninger
09beb16a1a refactor: rename OAuth2 variables to OpenID for clarity 2025-05-30 18:50:50 +02:00
maxDorninger
d2034d605e refactor: switch OAuth2 to OpenID and update related configurations 2025-05-30 18:41:06 +02:00
maxDorninger
464e1eb8c7 fix: add base scopes for OAuth2 configuration 2025-05-30 18:07:31 +02:00
maxDorninger
206df8b150 refactor: change folder structure 2025-05-29 15:36:35 +02:00