printedparts stage 6: RBAC - declared permissions gate every mutation
get_permissions declares view/create/edit/delete/restock (seeded on install/enable and by flask seed permissions); every write route adds require_permission on top of jwt_required. New test proves authentication alone is not authorization: a role-less member gets 403 where an admin succeeds.
This commit is contained in:
@@ -51,6 +51,17 @@ class PrintedpartsPlugin(BasePlugin):
|
||||
def init_app(self, app: Flask, db_instance) -> None:
|
||||
logger.info(f'Printedparts plugin initialized (v{self.meta.version})')
|
||||
|
||||
def get_permissions(self) -> List:
|
||||
"""RBAC permissions this plugin owns (seeded on install/enable)."""
|
||||
return [
|
||||
('printedparts.view', 'View 3D printed parts', 'printedparts'),
|
||||
('printedparts.create', 'Create printed parts', 'printedparts'),
|
||||
('printedparts.edit', 'Edit printed parts', 'printedparts'),
|
||||
('printedparts.delete', 'Retire printed parts', 'printedparts'),
|
||||
('printedparts.restock', 'Restock and adjust stock counts',
|
||||
'printedparts'),
|
||||
]
|
||||
|
||||
def get_navigation_items(self) -> List[dict]:
|
||||
return [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user