refactor: groups simplified to users + admins only
This commit is contained in:
parent
1849c65c68
commit
03ae910b3f
6 changed files with 21 additions and 83 deletions
|
|
@ -1,5 +1,14 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.1.0.0037 — 2026-07-11
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Simplified groups model: per-app groups (`drive`, `office`, `chat`, etc.) replaced with `users` + `admins` only
|
||||||
|
- `config/authelia/configuration.yml` — access_control rules reduced from 12 rules to 4
|
||||||
|
- `config/authelia/users_database.yml` — master user groups simplified to `admins`, `users`
|
||||||
|
- `config/nextworkspace/apps.yaml` — all user-facing apps use `groups: ["users"]`
|
||||||
|
- Admin panel user creation form — 9 checkboxes replaced with 2 (User + Admin)
|
||||||
|
|
||||||
## 0.1.0.0036 — 2026-07-11
|
## 0.1.0.0036 — 2026-07-11
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
|
||||||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
||||||
0.1.0.0036
|
0.1.0.0037
|
||||||
|
|
|
||||||
|
|
@ -33,64 +33,7 @@ access_control:
|
||||||
- "group:admins"
|
- "group:admins"
|
||||||
policy: one_factor
|
policy: one_factor
|
||||||
|
|
||||||
# App paths — group-restricted
|
# Everything else — any authenticated user
|
||||||
- domain: "app.{DOMAIN}"
|
|
||||||
resources:
|
|
||||||
- "^/drive(/.*)?$"
|
|
||||||
subject:
|
|
||||||
- "group:admins"
|
|
||||||
- "group:drive"
|
|
||||||
policy: one_factor
|
|
||||||
|
|
||||||
- domain: "app.{DOMAIN}"
|
|
||||||
resources:
|
|
||||||
- "^/office(/.*)?$"
|
|
||||||
subject:
|
|
||||||
- "group:admins"
|
|
||||||
- "group:office"
|
|
||||||
policy: one_factor
|
|
||||||
|
|
||||||
- domain: "app.{DOMAIN}"
|
|
||||||
resources:
|
|
||||||
- "^/enterprise(/.*)?$"
|
|
||||||
subject:
|
|
||||||
- "group:admins"
|
|
||||||
- "group:erp"
|
|
||||||
policy: one_factor
|
|
||||||
|
|
||||||
- domain: "app.{DOMAIN}"
|
|
||||||
resources:
|
|
||||||
- "^/chat(/.*)?$"
|
|
||||||
subject:
|
|
||||||
- "group:admins"
|
|
||||||
- "group:chat"
|
|
||||||
policy: one_factor
|
|
||||||
|
|
||||||
- domain: "app.{DOMAIN}"
|
|
||||||
resources:
|
|
||||||
- "^/meet(/.*)?$"
|
|
||||||
subject:
|
|
||||||
- "group:admins"
|
|
||||||
- "group:meet"
|
|
||||||
policy: one_factor
|
|
||||||
|
|
||||||
- domain: "app.{DOMAIN}"
|
|
||||||
resources:
|
|
||||||
- "^/connect(/.*)?$"
|
|
||||||
subject:
|
|
||||||
- "group:admins"
|
|
||||||
- "group:mail"
|
|
||||||
policy: one_factor
|
|
||||||
|
|
||||||
- domain: "app.{DOMAIN}"
|
|
||||||
resources:
|
|
||||||
- "^/aida(/.*)?$"
|
|
||||||
subject:
|
|
||||||
- "group:admins"
|
|
||||||
- "group:ai"
|
|
||||||
policy: one_factor
|
|
||||||
|
|
||||||
# Home/launcher — any authenticated user
|
|
||||||
- domain: "app.{DOMAIN}"
|
- domain: "app.{DOMAIN}"
|
||||||
policy: one_factor
|
policy: one_factor
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,3 @@ users:
|
||||||
groups:
|
groups:
|
||||||
- admins
|
- admins
|
||||||
- users
|
- users
|
||||||
- drive
|
|
||||||
- office
|
|
||||||
- erp
|
|
||||||
- chat
|
|
||||||
- meet
|
|
||||||
- mail
|
|
||||||
- ai
|
|
||||||
|
|
|
||||||
|
|
@ -9,43 +9,43 @@ apps:
|
||||||
path: "/drive"
|
path: "/drive"
|
||||||
upstream: "http://127.0.0.1:9100"
|
upstream: "http://127.0.0.1:9100"
|
||||||
icon: "cloud"
|
icon: "cloud"
|
||||||
groups: ["drive", "admins"]
|
groups: ["users"]
|
||||||
- name: "Euro Office"
|
- name: "Euro Office"
|
||||||
subtitle: "Collaborative Suite"
|
subtitle: "Collaborative Suite"
|
||||||
path: "/office"
|
path: "/office"
|
||||||
upstream: "http://127.0.0.1:9200"
|
upstream: "http://127.0.0.1:9200"
|
||||||
icon: "office"
|
icon: "office"
|
||||||
groups: ["office", "admins"]
|
groups: ["users"]
|
||||||
- name: "ERPNext"
|
- name: "ERPNext"
|
||||||
subtitle: "Enterprise ERP"
|
subtitle: "Enterprise ERP"
|
||||||
path: "/enterprise"
|
path: "/enterprise"
|
||||||
upstream: "http://127.0.0.1:9300"
|
upstream: "http://127.0.0.1:9300"
|
||||||
icon: "erp"
|
icon: "erp"
|
||||||
groups: ["erp", "admins"]
|
groups: ["users"]
|
||||||
- name: "Matrix Chat"
|
- name: "Matrix Chat"
|
||||||
subtitle: "Team Communication"
|
subtitle: "Team Communication"
|
||||||
path: "/chat"
|
path: "/chat"
|
||||||
upstream: "http://127.0.0.1:9400"
|
upstream: "http://127.0.0.1:9400"
|
||||||
icon: "chat"
|
icon: "chat"
|
||||||
groups: ["chat", "admins"]
|
groups: ["users"]
|
||||||
- name: "Jitsi"
|
- name: "Jitsi"
|
||||||
subtitle: "Video Conferencing"
|
subtitle: "Video Conferencing"
|
||||||
path: "/meet"
|
path: "/meet"
|
||||||
upstream: "http://127.0.0.1:9500"
|
upstream: "http://127.0.0.1:9500"
|
||||||
icon: "meet"
|
icon: "meet"
|
||||||
groups: ["meet", "admins"]
|
groups: ["users"]
|
||||||
- name: "Webmail"
|
- name: "Webmail"
|
||||||
subtitle: "Email Client"
|
subtitle: "Email Client"
|
||||||
path: "/connect"
|
path: "/connect"
|
||||||
upstream: "http://127.0.0.1:9600"
|
upstream: "http://127.0.0.1:9600"
|
||||||
icon: "mail"
|
icon: "mail"
|
||||||
groups: ["mail", "admins"]
|
groups: ["users"]
|
||||||
- name: "AI Chat"
|
- name: "AI Chat"
|
||||||
subtitle: "Open WebUI"
|
subtitle: "Open WebUI"
|
||||||
path: "/aida"
|
path: "/aida"
|
||||||
upstream: "http://127.0.0.1:9700"
|
upstream: "http://127.0.0.1:9700"
|
||||||
icon: "ai"
|
icon: "ai"
|
||||||
groups: ["ai", "admins"]
|
groups: ["users"]
|
||||||
- name: "Portainer"
|
- name: "Portainer"
|
||||||
subtitle: "Container Management"
|
subtitle: "Container Management"
|
||||||
path: "/admin"
|
path: "/admin"
|
||||||
|
|
|
||||||
13
main.go
13
main.go
|
|
@ -1445,16 +1445,9 @@ const adminHTML = `<!DOCTYPE html>
|
||||||
<div class="field"><label>Display Name</label><input type="text" name="display_name" required></div>
|
<div class="field"><label>Display Name</label><input type="text" name="display_name" required></div>
|
||||||
<div class="field"><label>Email</label><input type="email" name="email" required></div>
|
<div class="field"><label>Email</label><input type="email" name="email" required></div>
|
||||||
<div class="field"><label>Groups</label>
|
<div class="field"><label>Groups</label>
|
||||||
<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:0.4rem;">
|
<div class="checkbox-group">
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="users" checked> Users</label>
|
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="users" checked> User (access to all apps)</label>
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="drive"> Drive</label>
|
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="admins"> Admin (access to config panel)</label>
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="office"> Office</label>
|
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="erp"> ERP</label>
|
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="chat"> Chat</label>
|
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="meet"> Meet</label>
|
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="mail"> Mail</label>
|
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="ai"> AI</label>
|
|
||||||
<label style="font-size:0.9rem;display:flex;align-items:center;gap:0.3rem;"><input type="checkbox" name="groups" value="admins"> Admin</label>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="display:flex;gap:0.75rem;margin-top:1.5rem;">
|
<div style="display:flex;gap:0.75rem;margin-top:1.5rem;">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue