zoneminder/web/api/app/Model
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
..
AppModel.php Upgrade cakephp to 2.10.24 2021-02-02 23:19:52 -05:00
CameraModel.php rough in api support for Models and Manufacturers 2021-09-25 20:49:30 -04:00
Config.php Merged Angular UI branch API to master 2015-06-11 02:58:58 +00:00
Control.php Merged Angular UI branch API to master 2015-06-11 02:58:58 +00:00
Event.php Add Tags to event search and return tag data with events 2026-01-05 21:43:27 +11:00
EventData.php Fix Monitor=>Frame in associations 2025-12-19 16:48:15 -05:00
Event_Summary.php Merge pull request #3242 from connortechnology/fix_3232_api_monitor_event_summaries 2021-05-19 20:32:50 -04:00
Frame.php Add TimeStampSecs to fields returned for Frames. 2023-01-18 10:07:41 -05:00
Group.php Make Group containable 2019-12-20 14:56:14 -05:00
Host.php Update Host.php (#2062) 2018-03-13 22:28:38 -04:00
Log.php Initial commit of Logs MVC 2014-11-15 19:03:40 +00:00
Manufacturer.php rough in api support for Models and Manufacturers 2021-09-25 20:49:30 -04:00
Monitor.php Remove Function reference 2025-09-06 11:34:09 -04:00
Monitor_Status.php rough in adding Monitor_Status to Monitors 2018-10-31 11:08:44 -04:00
Role.php feat: add User Roles feature for reusable permission templates 2026-01-29 13:34:27 -05:00
RoleGroupPermission.php feat: add User Roles feature for reusable permission templates 2026-01-29 13:34:27 -05:00
RoleMonitorPermission.php feat: add User Roles feature for reusable permission templates 2026-01-29 13:34:27 -05:00
Server.php rough in Server object support 2016-05-02 10:41:25 -04:00
ServerStat.php Add ServerStats to api 2023-02-26 17:04:05 -05:00
Snapshot.php Fix the HABATM relationship in Snapshots 2022-12-07 15:01:08 -05:00
State.php Merged Angular UI branch API to master 2015-06-11 02:58:58 +00:00
Storage.php rough in a Storage Model 2018-05-07 14:09:05 -07:00
Tag.php Add Tags support to API 2023-11-03 13:33:28 -04:00
User.php feat: add User Roles feature for reusable permission templates 2026-01-29 13:34:27 -05:00
UserPreference.php Finish roughing in UserPreference in api 2023-05-12 14:10:53 -04:00
Zone.php Update api Zone Saving. Fixes #3037 2020-09-10 13:31:39 -04:00
ZonePreset.php Merged Angular UI branch API to master 2015-06-11 02:58:58 +00:00