Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
77c6124
🔧(dev) align demo passwords with keycloak realm
kernicPanel Jun 30, 2026
54a07fc
♻️(backend) extract role resolution into a permissions backend
kernicPanel Jul 6, 2026
e5dc7db
♻️(backend) move abilities computation to the permissions backend
kernicPanel Jul 6, 2026
99ccd58
♻️(backend) split abilities into one property per ability
kernicPanel Jul 6, 2026
214cabb
🚨(backend) refactor link validate to a single return
kernicPanel Jul 6, 2026
e1d8846
✅(backend) tighten exception tests around raising calls
kernicPanel Jul 6, 2026
7d55533
🐛(backend) override parent() to resolve it by exact path
kernicPanel Jul 1, 2026
82f3b2c
✨(backend) add is_restricted field to Item model
kernicPanel Jul 24, 2026
ef01070
✨(backend) add shortcut item type targeting another item
kernicPanel Jul 24, 2026
29cefa3
✨(backend) add restrict ability with activation and deactivation states
kernicPanel Jul 27, 2026
4697db3
✨(backend) activate restriction by moving the folder to the tree root
kernicPanel Jul 27, 2026
c42b3d3
✨(backend) deactivate restriction by reattaching at the shortcut
kernicPanel Jul 27, 2026
f76987d
✨(backend) normalize explicit accesses on restriction deactivation
kernicPanel Jul 27, 2026
f54f395
✨(backend) normalize explicit link reach on restriction deactivation
kernicPanel Jul 27, 2026
d7c2f16
✨(backend) expose is_restricted field in items API
kernicPanel Jul 27, 2026
144ff71
✨(backend) expose shortcut targets in the items API
kernicPanel Jul 27, 2026
6091744
✨(backend) hide reachable restricted roots from the top-level listing
kernicPanel Jul 27, 2026
faf0580
✨(backend) detach restricted folders by deleting their shortcut
kernicPanel Jul 28, 2026
6c267c2
✨(backend) detach subtree shortcuts when an ancestor is trashed
kernicPanel Jul 28, 2026
c9f7b2c
✨(backend) detach the shortcut when a restricted folder is trashed
kernicPanel Jul 28, 2026
955de79
✨(backend) exclude shortcuts from search, export and indexing
kernicPanel Jul 28, 2026
2c57264
✨(backend) allow restricting a folder at creation
kernicPanel Jul 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions docker/auth/realm.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,62 @@
],
"realmRoles": ["user"]
},
{
"username": "paige",
"email": "page.turner@library.book",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

paige?

"firstName": "Paige",
"lastName": "Turner",
"enabled": true,
"credentials": [
{
"type": "password",
"value": "pass"
}
],
"realmRoles": ["user"]
},
{
"username": "miles",
"email": "miles.ahead@roadmap.fwd",
"firstName": "Miles",
"lastName": "Ahead",
"enabled": true,
"credentials": [
{
"type": "password",
"value": "pass"
}
],
"realmRoles": ["user"]
},
{
"username": "archie",
"email": "archie.vist@vaulted.docs",
"firstName": "Archie",
"lastName": "Vist",
"enabled": true,
"credentials": [
{
"type": "password",
"value": "pass"
}
],
"realmRoles": ["user"]
},
{
"username": "wade",
"email": "wade.wilson@maximum.effort",
"firstName": "Wade",
"lastName": "Wilson",
"enabled": true,
"credentials": [
{
"type": "password",
"value": "pass"
}
],
"realmRoles": ["user"]
},
{
"username": "user-e2e-chromium",
"email": "user@chromium.test",
Expand Down
2 changes: 1 addition & 1 deletion src/backend/demo/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

USERS = [
{
"email": "page.turner@library.book",
"email": "paige.turner@library.book",
"full_name": "Paige Turner",
"short_name": "Paige",
},
Expand Down
3 changes: 2 additions & 1 deletion src/backend/demo/management/commands/create_demo.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from io import BytesIO

from django.conf import settings
from django.contrib.auth.hashers import make_password
from django.core.files.storage import default_storage
from django.core.management.base import BaseCommand, CommandError

Expand Down Expand Up @@ -80,7 +81,7 @@ def get_or_create_demo_user(user_data):
"email": email,
"full_name": user_data["full_name"],
"short_name": user_data["short_name"],
"password": "!", # NOSONAR
"password": make_password("pass"), # NOSONAR
"is_superuser": False,
"is_active": True,
"is_staff": False,
Expand Down