Enhancement: Introduce optimized folder permission relations and new permission definitions - Added `can_get_permissions` and `can_set_permissions` relations to enhance permission management. - Implemented `FolderPermissionRelation` function to optimize permission checks for folder resources. - Updated `checkTyped` and `listTyped` methods to utilize optimized relations for permission management. - Introduced a new benchmark test file for performance evaluation of permission checks and listings.
25 lines
1.2 KiB
Plaintext
25 lines
1.2 KiB
Plaintext
module folder
|
|
|
|
type folder
|
|
relations
|
|
define parent: [folder]
|
|
|
|
# Permission levels
|
|
define admin: [user, service-account, team#member, role#assignee] or admin from parent
|
|
define edit: [user, service-account, team#member, role#assignee] or edit from parent
|
|
define view: [user, service-account, team#member, role#assignee] or view from parent
|
|
define get: [user, service-account, team#member, role#assignee] or get from parent
|
|
define create: [user, service-account, team#member, role#assignee] or create from parent
|
|
define update: [user, service-account, team#member, role#assignee] or update from parent
|
|
define delete: [user, service-account, team#member, role#assignee] or delete from parent
|
|
define get_permissions: [user, service-account, team#member, role#assignee] or get_permissions from parent
|
|
define set_permissions: [user, service-account, team#member, role#assignee] or set_permissions from parent
|
|
|
|
# Computed actions
|
|
define can_get: admin or edit or view or get
|
|
define can_create: admin or edit or create
|
|
define can_update: admin or edit or update
|
|
define can_delete: admin or edit or delete
|
|
define can_get_permissions: admin or get_permissions
|
|
define can_set_permissions: admin or set_permissions
|