-
-
Notifications
You must be signed in to change notification settings - Fork 27
2024 02 01 permissions
This is how JWT authentication works normally
- Enter user and password in a form, which the frontend sends to the server
- Server checks the user/pass and issues a JWT token encoded with user permissions and server secret
- Frontend stores the JWT
- Frontend passes the token with each request, which the server uses to validate the request and return content based on what the user is authorized to do
We talked about object-level permissions
and eventually realized we actually needed field-level permissions
where a project admin can see more project model fields than the average user
There were 2 django permissions packages talked about during the meeting, both of which haven't been updated in years. They're also both for object-level permissions, which doesn't meet our needs. They are django-guardian
and django-rules
. The package django-permission2
is updated recently but also object-level.
We decided that we needed a custom solution. It would need to be coded in the API endpoints
We talked about permission implementation, whether it's better to have individual having permission levels or to have actual groups. Cynthia thinks it's better to have groups internally.
For documenting permission requirements, we decided that the current way of specifying CRUD permissions per-field is fine.
Click Pages above to see all documentation in alphabetic order. The below list organizes the documentation and excludes some less critical documentation.
Onboarding
- Onboarding & offboarding all non-Product team members☑️
- Onboarding & offboarding Product team members☑️
- Additional technical onboarding for Developers☑️
Guides
Draft
- How-Knowledgebase-will-use-People-Depot
- Auto generating seed data scripts from data - generic, non-people depot specific
- Requirements for People Depot V1☑️
- People Depot Tables and Fields☑️
- Other related data☑️
- Stakeholder's that will use People Depot☑️
Security Requirements, Test Cases, and Technical Design
- Security: Functional Requirements. Derived from Test Cases in Issue #150
- [Test Cases] - pending, see Test Cases in Issue #150
- Security: Field Level Proposal (using Github Copilot