Compare commits

...

3 Commits

Author SHA1 Message Date
Jonas bacd491526
Merge 668a711dfa into b60d1e77a6 2024-11-28 14:09:58 +01:00
Nextcloud bot b60d1e77a6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-28 02:33:16 +00:00
brtbr 668a711dfa feat: add option to not use avatars in BBB rooms
This commit adds an admin option to disable the use of Nextcloud avatars
in BBB rooms.

If an avatar-cache is configured and a meeting is running while changing
this setting, the avatars of these meetings will not be cleared. In that
case the command-line argument (see README) needs to be used.

Fixes issue #268
2024-06-02 02:08:14 +02:00
7 changed files with 34 additions and 7 deletions

View File

@ -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

View File

@ -1,6 +1,10 @@
OC.L10N.register(
"bbb",
{
"You shared the room %s with {shareWith}." : "Du delade rummet %s med {shareWith}.",
"{user} shared the room %s with you." : "{user} delade rummet %s med dig.",
"You unshared the room %s with {shareWith}." : "Du slutade dela rummet %s med {shareWith}.",
"{user} unshared the room %s with you." : "{user} slutade dela rummet %s med dig.",
"Public" : "Offentlig",
"Internal" : "Intern",
"Back to %s" : "Tillbaka till %s",
@ -35,6 +39,7 @@ OC.L10N.register(
"Server error" : "Serverfel",
"Start" : "Start",
"Loading" : "Läser in",
"You are not allowed to change this option, because this room is shared with you." : "Du får inte ändra det här alternativet eftersom detta rum delas med dig.",
"Settings saved" : "Inställningar sparade",
"Unexpected error occurred" : "Ett oväntat fel inträffade",
"Send to" : "Skicka till",

View File

@ -1,4 +1,8 @@
{ "translations": {
"You shared the room %s with {shareWith}." : "Du delade rummet %s med {shareWith}.",
"{user} shared the room %s with you." : "{user} delade rummet %s med dig.",
"You unshared the room %s with {shareWith}." : "Du slutade dela rummet %s med {shareWith}.",
"{user} unshared the room %s with you." : "{user} slutade dela rummet %s med dig.",
"Public" : "Offentlig",
"Internal" : "Intern",
"Back to %s" : "Tillbaka till %s",
@ -33,6 +37,7 @@
"Server error" : "Serverfel",
"Start" : "Start",
"Loading" : "Läser in",
"You are not allowed to change this option, because this room is shared with you." : "Du får inte ändra det här alternativet eftersom detta rum delas med dig.",
"Settings saved" : "Inställningar sparade",
"Unexpected error occurred" : "Ett oväntat fel inträffade",
"Send to" : "Skicka till",

View File

@ -131,11 +131,13 @@ class API {
}
if ($uid) {
$avatarUrl = $this->avatarRepository->getAvatarUrl($room, $uid);
$joinMeetingParams->setUserID($uid);
if ($this->config->getAppValue('bbb', 'avatar.enabled', 'true') === 'true') {
$avatarUrl = $this->avatarRepository->getAvatarUrl($room, $uid);
$joinMeetingParams->setAvatarURL($avatarUrl);
}
}
return $this->getServer()->getJoinMeetingURL($joinMeetingParams);
}

View File

@ -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);
if ($this->config->getAppValue('bbb', 'avatar.enabled', 'true') === 'true') {
$this->avatarRepository->clearRoom($room->uid);
}
$this->eventDispatcher->dispatch(MeetingEndedEvent::class, new MeetingEndedEvent($room, $recordingmarks));
}

View File

@ -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);

View File

@ -29,6 +29,11 @@ script('bbb', 'restrictions');
<label for="bbb-join-theme"><?php p($l->t('Use Nextcloud theme in BigBlueButton.')); ?></label>
</p>
<p>
<input type="checkbox" name="avatar.enabled" id="bbb-avatar-enabled" class="checkbox bbb-setting" value="1" <?php p($_['avatar.enabled']); ?> />
<label for="bbb-avatar-enabled"><?php p($l->t('Use Nextcloud avatars in BBB rooms.')); ?></label>
</p>
<h3><?php p($l->t('Default Room Settings')); ?></h3>
<p><?php p($l->t('Below you can change some default values, which are used to create a new room.')); ?></p>