Skip to content

Technical Plugin Permissions

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: Permissions plugin

Delegates specific management capabilities through configured user groups.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
  • Code ownership: AVideo Streamer repository.
  • Reported version: 1.0.
  • Source revision: 7d48f2dfc0289236718a3f9fba7c5ffecff4a37f.
  • Entry class file: Permissions.php.

Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.

Dependencies

No literal dependency declaration was extracted. This does not prove the plugin is standalone.

Hook integration

Override Implementation
updateScript() Permissions.php:40
getPluginMenu() Permissions.php:71
userCanUpload($users_id) Permissions.php:153
userCanLivestream($users_id) Permissions.php:164
getPermissionsOptions() Permissions.php:209

Configuration assignments

These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.

No direct $obj->field assignments were extracted. Inspect inherited defaults, getCustomizeAdvancedOptions() and the plugin-specific settings page.

Files and request surface

This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.

File Source role Direct request fields observed
Objects/Users_groups_permissions.php class/helper implementation —
Permissions.php plugin entry class —
View/Users_groups_permissions/add.json.php JSON entry point; inspect caller and guard id, name, plugins_id, status, type, users_groups_id
View/Users_groups_permissions/delete.json.php JSON entry point; inspect caller and guard id
View/Users_groups_permissions/index.php PHP page/include/worker; inspect caller —
View/Users_groups_permissions/index_body.php PHP page/include/worker; inspect caller —
View/Users_groups_permissions/index_head.php PHP page/include/worker; inspect caller —
View/Users_groups_permissions/list.json.php JSON entry point; inspect caller and guard —
View/editor.php PHP page/include/worker; inspect caller —
getPermissions.json.php JSON entry point; inspect caller and guard users_groups_id
getPermissionsFromPlugin.html.php PHP page/include/worker; inspect caller plugins_id
getPermissionsFromPlugin.json.php JSON entry point; inspect caller and guard plugins_id
install/install.sql schema/migration SQL —
setPermission.json.php JSON entry point; inspect caller and guard isEnabled, plugins_id, type, users_groups_id

Data and migrations

Tables named in available CREATE TABLE statements: users_groups_permissions. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.

Main-file named symbols

Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.

Function or method Source
getDescription() 20
getName() 28
getUUID() 32
getPluginVersion() 36
updateScript() 40
getEmptyDataObject() 51
getPluginMenu() 71
getForm() 76
hasPermission($type, $pluginName, $users_id = 0) 110
canAdminComment() 145
canAdminVideos() 149
userCanUpload($users_id) 153
userCanLivestream($users_id) 164
canModerateVideos() 175
canAdminUsers() 179
canAdminUserGroups() 183
canClearCache() 187
canGenerateSiteMap() 191
canSeeLogs() 195
getPermissionsOptions() 209
getPluginPermissions($plugins_id) 235
getPluginPermissionsFromName($pluginName) 272
setPermission($users_groups_id, $plugins_id, $type, $isEnabled) 281

Supporting PHP declarations

These symbols are grouped by source file; inspect the class declaration and visibility before calling them.

Objects/Users_groups_permissions.php

Declared classes: Users_groups_permissions.

Named symbol Source
getSearchFieldsNames() 9
getTableName() 13
getAllUsers_groups() 17
getAllPlugins() 37
setId($id) 57
setName($name) 61
setusers_groups_id($users_groups_id) 66
setPlugins_id($plugins_id) 70
setType($type) 74
setStatus($status) 78
getId() 82
getName() 86
getusers_groups_id() 90
getPlugins_id() 94
getType() 98
getStatus() 102
deleteAllFromGroup($groups_id) 106
add($pluginName, $users_groups_id, $type) 123
getAllFromUserGorup($users_groups_id, $activeOnly = true) 139
getAllFromPluginAndType($plugins_id, $type, $activeOnly = true) 179
getAllFromPlugin($plugins_id, $activeOnly = true) 214
getFromUserGroupAndPluginAndType($users_groups_id, $plugins_id, $type, $activeOnly = true) 249
save() 283

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.

Related test filenames (name matches only; not executed by generation):

Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.

Clone this wiki locally