WIP: feat(defaults/withRules): add permission rule wrapper #108
Draft
djalim
wants to merge 4 commits from
feature/permission-system into develop
pull from: feature/permission-system
merge into: admin:develop
admin:main
admin:develop
admin:release/1.0.1
admin:feature/logs
admin:feature/fix-tests
admin:release/1.0.0
admin:feature/fix-up-everything
admin:feature/post-notes-import-xlsx-44
admin:PMPR-ui
admin:PMPR-tests-coverage
admin:PMPR-115
admin:PMPR-113
admin:PMPR-112
admin:PMPR-110
admin:PMPR-109
admin:PMPR-111
admin:PMPR-setup-test-framework
admin:feature/fix-lint-and-deploy
admin:feature/api-UEModules-put_delete
admin:feature/api-UEModules-get
admin:feature/put-delete-notes-id-46-47
admin:feature/api-ajustements-delete
admin:feature/PMPR-15-16-17-api-promotions-id
admin:feature/api-ajustements-put
admin:feature/delete-ues-id-36
admin:feature/get-notes-id-45
admin:feature/put-ues-id-35
admin:feature/post-ue-modules-38
admin:feature/api-ajustements-get-one
admin:feature/api-ajustements-get_post
admin:feature/get-ues-id-34
admin:feature/get-ue-modules-37
admin:feature/post-notes-43
admin:feature/api-enseignements
admin:feature/PMPR-25-26-27-api-modules-id
admin:feature/PMPR-23-24-api-modules
admin:feature/post-ues-33
admin:feature/get-notes-42
admin:feature/PMPR-13-14-api-promotions
admin:feature/PMPR-10-11-12-api-students-id
admin:feature/PMPR-9-api-students-import
admin:feature/PMPR-7-8-api-students
admin:feature/PMPR-67-68-69-api-roles-id
admin:feature/PMPR-65-66-api-roles
admin:feature/PMPR-62-63-64-api-users-id
admin:feature/PMPR-60-61-api-users
admin:feature/PMPR-70-get-permissions
admin:feature/PMPR-schema-relationnel
admin:feature/get-ues-32
admin:feature/getEnseignements
admin:feature/unit-test
admin:feature/mobility
admin:hotfixes
admin:feature/authentication-verification
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "feature/permission-system"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds a developer-friendly permission system in defaults/withRules.ts.
How it works
withRules() wraps a route handler and grants access if any of the provided rules passes (OR logic). Returns 403 otherwise.
Rules available
DB-based — checks the user's role against role_permissions:
student_read, student_write, note_read, note_write, module_read, module_write, user_read,
user_write, role_write
Contextual — checks ownership at request time:
Access model
A CAS user not found in users nor students has no rights.
Closes #107
If I get it, every time we implement an API, we need to precise the require rules ?
So like this :
Instead of this :
Then, wouldn't it be a problem for routes like
GET /notes/{numEtud}/{idModule}where every role has different constraint ?feat(defaults/withRules): add permission rule wrapperto DRAFT: feat(defaults/withRules): add permission rule wrapperDRAFT: feat(defaults/withRules): add permission rule wrapperto WIP: feat(defaults/withRules): add permission rule wrapper1a25ae981ato401160aa30View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.