zoneminder/web/api
Isaac Connor 4e60cb96a7 feat: add User Roles feature for reusable permission templates
Add a User Roles system where roles define reusable permission templates.
When a user has a role assigned, the role provides fallback permissions
(user's direct permissions take precedence; role is used when user has 'None').

Database changes:
- Add User_Roles table with same permission fields as Users
- Add Role_Groups_Permissions table for per-role group overrides
- Add Role_Monitors_Permissions table for per-role monitor overrides
- Add RoleId foreign key to Users table

Permission resolution order:
1. User's direct Monitor/Group permissions (if not 'Inherit')
2. Role's Monitor/Group permissions (if user has role)
3. Role's base permission (if user's is 'None')
4. User's base permission (fallback)

Includes:
- PHP models: User_Role, Role_Group_Permission, Role_Monitor_Permission
- Role management UI in Options > Roles tab
- Role selector in user edit form
- REST API endpoints for roles CRUD
- Translation strings for en_gb

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:34:27 -05:00
..
app feat: add User Roles feature for reusable permission templates 2026-01-29 13:34:27 -05:00
lib/Cake Upgrade cakephp to 2.10.24 2021-03-31 12:11:12 -04:00
.editorconfig Moved the api to underneath the web directory 2014-04-29 20:41:04 +00:00
CMakeLists.txt Update CMakeLists.txt 2017-05-03 12:35:54 -05:00
CONTRIBUTING.md Upgrade cakephp to 2.10.24 2021-03-31 12:11:12 -04:00
README.md Text corrections 2023-08-27 02:00:59 +02:00
build.properties Upgrade cakephp to 2.10.24 2021-03-31 12:11:12 -04:00
build.xml Upgrade cakephp to 2.10.24 2021-03-31 12:11:12 -04:00
composer.json Upgrade cakephp to 2.10.24 2021-03-31 12:11:12 -04:00
index.php Upgrade cakephp to 2.10.24 2021-03-31 12:11:12 -04:00

README.md

ZoneMinder API

This is the ZoneMinder API. It should be, for now, installed under the webroot e.g. /api.

app/Config/database.php.default must be configured and copied to app/Config/database.php

In addition, Security.salt and Security.cipherSeed in app/Config/core.php should be changed.

The API can run on a dedicated / separate instance, so long as it can access the database as configured in app/Config/database.php