Repository navigation
Technical Plugin User_Controll
Tracks user activity/history and implements configured user/IP bans and live-disconnection controls.
Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.
- Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
- Code ownership: independently versioned plugin repository.
- Reported version:
3.5. - Source revision:
706d5a1139cf9bdd2560ba8516c8c9719c6bc065. - Entry class file: User_Controll.php.
Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.
No literal dependency declaration was extracted. This does not prove the plugin is standalone.
| Override | Implementation |
|---|---|
getTags() |
User_Controll.php:11 |
getStart() |
User_Controll.php:32 |
getPluginMenu() |
User_Controll.php:63 |
onUserSignIn($users_id) |
User_Controll.php:69 |
getUsersManagerListButton() |
User_Controll.php:162 |
getFooterCode() |
User_Controll.php:181 |
getChannelPageButtons($users_id) |
User_Controll.php:202 |
beforeSaveVideo(Video $_this): array |
User_Controll.php:218 |
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.
| Field | Literal default or expression type | Literal source label/help | Evidence |
|---|---|---|---|
logLoginActivity |
true |
— | source |
hls_path |
"/HLS/live" |
— | source |
nginxServer |
Computed/structured; inspect source | — | source |
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/Ban.php | class/helper implementation | — |
| Objects/LoginHistory.php | class/helper implementation | — |
| Objects/Max_uploads_per_hour.php | class/helper implementation | — |
| User_Controll.php | plugin entry class | — |
| View/Max_uploads_per_hour/add.json.php | JSON entry point; inspect caller and guard |
id, max_uploads, users_groups_id
|
| View/Max_uploads_per_hour/delete.json.php | JSON entry point; inspect caller and guard | id |
| View/Max_uploads_per_hour/index.php | PHP page/include/worker; inspect caller | — |
| View/Max_uploads_per_hour/index_body.php | PHP page/include/worker; inspect caller | — |
| View/Max_uploads_per_hour/list.json.php | JSON entry point; inspect caller and guard | draw |
| View/editor.php | PHP page/include/worker; inspect caller | — |
| banDelete.json.php | JSON entry point; inspect caller and guard | id |
| banDeleteFromIP.json.php | JSON entry point; inspect caller and guard | IP |
| banIP.json.php | JSON entry point; inspect caller and guard | IP |
| banUser.json.php | JSON entry point; inspect caller and guard | users_id |
| bans.json.php | JSON entry point; inspect caller and guard | — |
| footer.php | PHP page/include/worker; inspect caller | — |
| install/install.sql | schema/migration SQL | — |
| install/updateV3.0.sql | schema/migration SQL | — |
| ips.json.php | JSON entry point; inspect caller and guard | users_id |
| page/editor.php | PHP page/include/worker; inspect caller | — |
Tables named in available CREATE TABLE statements: bans, max_uploads_per_hour, users_login_history.
Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.
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 |
|---|---|
getTags() |
11 |
getDescription() |
17 |
getName() |
24 |
getUUID() |
28 |
getStart() |
32 |
getPluginVersion() |
41 |
getEmptyDataObject() |
46 |
getPluginMenu() |
63 |
onUserSignIn($users_id) |
69 |
banUser($users_id) |
79 |
banDelete($id) |
97 |
removeLiveDirectory($users_id) |
107 |
disconnectLive($users_id) |
120 |
banIP($IP) |
131 |
isUserBan($users_id) |
142 |
isIPBan($IP) |
147 |
getHistoryFromUser($users_id) |
158 |
getUsersManagerListButton() |
162 |
shouldAddFooter() |
167 |
getFooterCode() |
181 |
deleteFromIP($IP) |
189 |
getChannelPageButtons($users_id) |
202 |
beforeSaveVideo(Video $_this): array |
218 |
These symbols are grouped by source file; inspect the class declaration and visibility before calling them.
Declared classes: Ban.
| Named symbol | Source |
|---|---|
getSearchFieldsNames() |
9 |
getTableName() |
13 |
getIP() |
17 |
getUsers_id() |
21 |
setIP($IP) |
25 |
setUsers_id($users_id) |
29 |
getFromUser($users_id) |
33 |
getFromIP($IP) |
67 |
getAll() |
101 |
Declared classes: LoginHistory.
| Named symbol | Source |
|---|---|
getSearchFieldsNames() |
9 |
getTableName() |
13 |
getIP() |
17 |
getUsers_id() |
21 |
setIP($IP) |
25 |
setUsers_id($users_id) |
29 |
getAllFromUser($users_id) |
33 |
Declared classes: Max_uploads_per_hour.
| Named symbol | Source |
|---|---|
getSearchFieldsNames() |
10 |
getTableName() |
15 |
getAllUsers_groups() |
20 |
setId($id) |
31 |
setMax_uploads($max_uploads) |
35 |
setCreated_php_time($created_php_time) |
39 |
setModified_php_time($modified_php_time) |
43 |
setUsers_groups_id($users_groups_id) |
47 |
getId() |
52 |
getMax_uploads() |
56 |
getCreated_php_time() |
60 |
getModified_php_time() |
64 |
getUsers_groups_id() |
68 |
getAll() |
73 |
save() |
90 |
getFromUserGroup($users_groups_id, $refreshCache = false) |
100 |
getTotalVideosLastHour($users_id) |
123 |
getMaxUploadsPerHour($users_id) |
138 |
getTimeToNextUpload($users_id) |
158 |
canUserUploadNow($users_id) |
194 |
- Check the installed/enabled version and the dependencies/settings above.
- Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
- Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
- Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.
Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.
Start
Install and update
- Install on Ubuntu 24.04 or 26.04
- Installation Setup Page
- Scheduler cron job (required)
- Set up email
- Use HTTPS
- Own Encoder
- Docker
- Update AVideo
- Backup
- Secure file permissions
- Server command-line tools
- Hidden configuration options
Videos
- Upload a video
- Local Encoder (on your computer)
- Bulk upload by FTP
- Import a channel
- Publish on YouTube and social media
- Privacy options
- Only for logged-in users
- Resolutions by user group
- Storage options
- Move and protect video files
- Video does not play
Users
Live
- Make a live stream
- Stream with OBS
- Own live server
- One live server, many sites
- Live server install errors
- Live does not play
Plugins
Problems
Other
- Translate your site
- Write a plugin (developers)
- Technical reference (developers and advanced administrators)
Old and retired guides