Compare commits

...

6 Commits

Author SHA1 Message Date
Jonas de8b248300
Merge 684a676b7b into d023ffa331 2024-12-08 19:38:54 +00:00
brtbr 684a676b7b
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-12-08 20:38:42 +01:00
Thibaut d023ffa331
Merge pull request #310 from arawa/fix/309_group_displayname_is_null
fix: #309 group displayname might be null
2024-12-05 10:06:49 +01:00
Sebastien Marinier 834e2a7800 fix: #309 group displayname might be null 2024-12-05 09:59:22 +01:00
Baptiste Fotia e2c58cd791
Merge pull request #308 from littleredbutton/doc/update-changelog-v2.7.3
doc: Update the changelog
2024-12-03 11:13:31 +01:00
zak39 4d280b46e1 doc: Update the changelog
Updated CHANGELOG for the release 2.7.3.
2024-12-03 11:02:34 +01:00
7 changed files with 51 additions and 9 deletions

View File

@ -6,6 +6,31 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
## 2.7.3 (2024-12-03)
### Added
- missing icon and adapt dialog style to NC30 by @smarinier in [#304](https://github.com/littleredbutton/cloud_bbb/pull/304)
### Changed
- readme, screenshots and project files. by @smarinier in [#300](https://github.com/littleredbutton/cloud_bbb/pull/300)
- remove NC25 support by @smarinier in [#302](https://github.com/littleredbutton/cloud_bbb/pull/302)
### Fix
- max number of rooms shloud take only owned rooms in account by @smarinier in [#296](https://github.com/littleredbutton/cloud_bbb/pull/296)
- admin interface displays groups gid instead of displayname by @smarinier in [#295](https://github.com/littleredbutton/cloud_bbb/pull/295)
- style lint warnings and typescript compiler need upgrade by @smarinier in [#294](https://github.com/littleredbutton/cloud_bbb/pull/294)
### Misc
- psalm github actions by @smarinier in [#298](https://github.com/littleredbutton/cloud_bbb/pull/298)
- update php versions for tests in github actions by @smarinier in [#297](https://github.com/littleredbutton/cloud_bbb/pull/297)
- expose app capabilities by @smarinier in [#293](https://github.com/littleredbutton/cloud_bbb/pull/293)
- make clean-dev and release:build by @smarinier in [#303](https://github.com/littleredbutton/cloud_bbb/pull/303)
- psalm bump 5.0 by @smarinier in [#301](https://github.com/littleredbutton/cloud_bbb/pull/301)
- Release/2.7.3 by @smarinier in [#307](https://github.com/littleredbutton/cloud_bbb/pull/307)
## 2.7.2 (2024-10-08)
### Misc
- rebuild frontend client

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

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

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);
$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));
}

View File

@ -34,8 +34,8 @@ class Restriction extends Entity implements JsonSerializable {
$this->addType('allowRecording', 'boolean');
}
public function setGroupName(string $groupName) {
$this->groupName = $groupName;
public function setGroupName(?string $groupName) {
$this->groupName = $groupName ?? '';
}
public function jsonSerialize(): array {

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>