diff --git a/README.md b/README.md index 493b2ff..0145d5b 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,7 @@ Key | Description `app.shortener` | Value of your shortener service. Should start with `https://` and contain `{token}`. `avatar.path` | Absolute path to an optional avatar cache directory. `avatar.url` | URL which serves `avatar.path` to be used as avatar cache. +`avatar.enabled` | Set to `false` if you want to disable the use of Nextcloud avatars in BBB rooms. ### Avatar cache (v2.2+) The generation of avatars puts a high load on your Nextcloud instance, since the @@ -111,8 +112,8 @@ For additional security, we recommend to disable directory listing, symlinks and any language interpreter such as php for the cache directory. Cached avatars are usually deleted as soon as the meeting ends. In cases the BBB -server shuts down unexpected, we provide the `bbb:clear-avatar-cache` occ -command (example use: `./occ bbb:clear-avatar-cache`). +server shuts down unexpected or you set `avatar.enabled` to `false` (via gui or manually) while a meeting was running, +we provide the `bbb:clear-avatar-cache` occ command (example use: `./occ bbb:clear-avatar-cache`). ## :bowtie: User guide diff --git a/lib/BigBlueButton/API.php b/lib/BigBlueButton/API.php index 4912f4c..71aebf7 100644 --- a/lib/BigBlueButton/API.php +++ b/lib/BigBlueButton/API.php @@ -131,10 +131,12 @@ class API { } if ($uid) { - $avatarUrl = $this->avatarRepository->getAvatarUrl($room, $uid); - $joinMeetingParams->setUserID($uid); - $joinMeetingParams->setAvatarURL($avatarUrl); + + if ($this->config->getAppValue('bbb', 'avatar.enabled', 'true') === 'true') { + $avatarUrl = $this->avatarRepository->getAvatarUrl($room, $uid); + $joinMeetingParams->setAvatarURL($avatarUrl); + } } return $this->getServer()->getJoinMeetingURL($joinMeetingParams); diff --git a/lib/Controller/HookController.php b/lib/Controller/HookController.php index f3a1614..48aa5c8 100644 --- a/lib/Controller/HookController.php +++ b/lib/Controller/HookController.php @@ -7,6 +7,7 @@ use OCA\BigBlueButton\Db\Room; use OCA\BigBlueButton\Event\MeetingEndedEvent; use OCA\BigBlueButton\Event\RecordingReadyEvent; use OCA\BigBlueButton\Service\RoomService; +use OCP\IConfig; use OCP\AppFramework\Controller; use OCP\EventDispatcher\IEventDispatcher; use OCP\IRequest; @@ -27,18 +28,23 @@ class HookController extends Controller { /** @var IEventDispatcher */ private $eventDispatcher; + /** @var IConfig */ + private $config; + public function __construct( string $appName, IRequest $request, RoomService $service, AvatarRepository $avatarRepository, - IEventDispatcher $eventDispatcher + IEventDispatcher $eventDispatcher, + IConfig $config ) { parent::__construct($appName, $request); $this->service = $service; $this->avatarRepository = $avatarRepository; $this->eventDispatcher = $eventDispatcher; + $this->config = $config; } public function setToken(string $token): void { @@ -65,7 +71,9 @@ class HookController extends Controller { $this->service->updateRunning($room->getId(), false); - $this->avatarRepository->clearRoom($room->uid); + if ($this->config->getAppValue('bbb', 'avatar.enabled', 'true') === 'true') { + $this->avatarRepository->clearRoom($room->uid); + } $this->eventDispatcher->dispatch(MeetingEndedEvent::class, new MeetingEndedEvent($room, $recordingmarks)); } diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index 0fbc203..e4bbff5 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -30,6 +30,7 @@ class Admin implements ISettings { 'join.theme' => $this->config->getAppValue('bbb', 'join.theme') === 'true' ? 'checked' : '', 'app.shortener' => $this->config->getAppValue('bbb', 'app.shortener'), 'join.mediaCheck' => $this->config->getAppValue('bbb', 'join.mediaCheck', 'true') === 'true' ? 'checked' : '', + 'avatar.enabled' => $this->config->getAppValue('bbb', 'avatar.enabled', 'true') === 'true' ? 'checked' : '', ]; return new TemplateResponse('bbb', 'admin', $parameters); diff --git a/templates/admin.php b/templates/admin.php index a517ace..41de087 100644 --- a/templates/admin.php +++ b/templates/admin.php @@ -29,6 +29,11 @@ script('bbb', 'restrictions');
++ /> + +
+t('Below you can change some default values, which are used to create a new room.')); ?>