| Type |
New Feature
|
| Priority |
Normal
|
| Assignee | |
| Version |
none
|
| Sprints |
n/a
|
| Customer |
n/a
|
Issue Votes (0)
| Type |
New Feature
|
| Priority |
Normal
|
| Assignee | |
| Version |
none
|
| Sprints |
n/a
|
| Customer |
n/a
|
Description
The current Sztab security model uses static, hardcoded roles mapped from JWTs (e.g.,
@PreAuthorize("hasRole('PROJECT_MANAGER')")). While sufficient for MVP, this approach becomes rigid as we expand the system to support more nuanced access needs (e.g., read-only roles, external users, community contributors).This issue proposes a shift to a permission-based model, where roles are defined dynamically in the database and composed from atomic permissions. This unlocks fine-grained access control, runtime configurability, and future UI-driven role management.
Acceptance Criteria
Permissionentity (e.g.,CREATE_ISSUE,TAG_RELEASE)Roleentity with a many-to-many relationship toPermissionhasAuthority(...)instead ofhasRole(...)Example: Permission-Based Roles
Sample Permissions
CREATE_ISSUEASSIGN_ISSUECLOSE_ISSUECOMMENTTAG_RELEASEDELETE_USERVIEW_ALL_PROJECTSComposing Roles from Permissions
Project ManagerDeveloperQA EngineerRelease ManagerAdminObserverController Check (Post-Migration)