summaryrefslogtreecommitdiffstats
path: root/lib/Capabilities.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Capabilities.php')
-rw-r--r--lib/Capabilities.php188
1 files changed, 113 insertions, 75 deletions
diff --git a/lib/Capabilities.php b/lib/Capabilities.php
index 8d3c5017e..58d44d58a 100644
--- a/lib/Capabilities.php
+++ b/lib/Capabilities.php
@@ -25,6 +25,116 @@ use OCP\Util;
* @psalm-import-type TalkCapabilities from ResponseDefinitions
*/
class Capabilities implements IPublicCapability {
+ public const FEATURES = [
+ 'audio',
+ 'video',
+ 'chat-v2',
+ 'conversation-v4',
+ 'guest-signaling',
+ 'empty-group-room',
+ 'guest-display-names',
+ 'multi-room-users',
+ 'favorites',
+ 'last-room-activity',
+ 'no-ping',
+ 'system-messages',
+ 'delete-messages',
+ 'mention-flag',
+ 'in-call-flags',
+ 'conversation-call-flags',
+ 'notification-levels',
+ 'invite-groups-and-mails',
+ 'locked-one-to-one-rooms',
+ 'read-only-rooms',
+ 'listable-rooms',
+ 'chat-read-marker',
+ 'chat-unread',
+ 'webinary-lobby',
+ 'start-call-flag',
+ 'chat-replies',
+ 'circles-support',
+ 'force-mute',
+ 'sip-support',
+ 'sip-support-nopin',
+ 'chat-read-status',
+ 'phonebook-search',
+ 'raise-hand',
+ 'room-description',
+ 'rich-object-sharing',
+ 'temp-user-avatar-api',
+ 'geo-location-sharing',
+ 'voice-message-sharing',
+ 'signaling-v3',
+ 'publishing-permissions',
+ 'clear-history',
+ 'direct-mention-flag',
+ 'notification-calls',
+ 'conversation-permissions',
+ 'rich-object-list-media',
+ 'rich-object-delete',
+ 'unified-search',
+ 'chat-permission',
+ 'silent-send',
+ 'silent-call',
+ 'send-call-notification',
+ 'talk-polls',
+ 'breakout-rooms-v1',
+ 'recording-v1',
+ 'avatar',
+ 'chat-get-context',
+ 'single-conversation-status',
+ 'chat-keep-notifications',
+ 'typing-privacy',
+ 'remind-me-later',
+ 'bots-v1',
+ 'markdown-messages',
+ 'media-caption',
+ 'session-state',
+ 'note-to-self',
+ 'recording-consent',
+ 'sip-support-dialout',
+ 'delete-messages-unlimited',
+ 'edit-messages',
+ 'silent-send-state',
+ 'chat-read-last',
+ 'federation-v1',
+ 'ban-v1',
+ ];
+
+ public const LOCAL_FEATURES = [
+ 'favorites',
+ 'chat-read-status',
+ 'listable-rooms',
+ 'phonebook-search',
+ 'temp-user-avatar-api',
+ 'unified-search',
+ 'avatar',
+ 'remind-me-later',
+ 'note-to-self',
+ ];
+
+ public const LOCAL_CONFIGS = [
+ 'attachments' => [
+ 'allowed',
+ 'folder',
+ ],
+ 'call' => [
+ 'predefined-backgrounds',
+ 'can-upload-background',
+ ],
+ 'chat' => [
+ 'read-privacy',
+ 'has-translation-providers',
+ 'typing-privacy',
+ ],
+ 'conversations' => [
+ 'can-create',
+ ],
+ 'previews' => [
+ 'max-gif-size',
+ ],
+ ];
+
protected ICache $talkCache;
public function __construct(
@@ -52,81 +162,8 @@ class Capabilities implements IPublicCapability {
}
$capabilities = [
- 'features' => [
- 'audio',
- 'video',
- 'chat-v2',
- 'conversation-v4',
- 'guest-signaling',
- 'empty-group-room',
- 'guest-display-names',
- 'multi-room-users',
- 'favorites',
- 'last-room-activity',
- 'no-ping',
- 'system-messages',
- 'delete-messages',
- 'mention-flag',
- 'in-call-flags',
- 'conversation-call-flags',
- 'notification-levels',
- 'invite-groups-and-mails',
- 'locked-one-to-one-rooms',
- 'read-only-rooms',
- 'listable-rooms',
- 'chat-read-marker',
- 'chat-unread',
- 'webinary-lobby',
- 'start-call-flag',
- 'chat-replies',
- 'circles-support',
- 'force-mute',
- 'sip-support',
- 'sip-support-nopin',
- 'chat-read-status',
- 'phonebook-search',
- 'raise-hand',
- 'room-description',
- 'rich-object-sharing',
- 'temp-user-avatar-api',
- 'geo-location-sharing',
- 'voice-message-sharing',
- 'signaling-v3',
- 'publishing-permissions',
- 'clear-history',
- 'direct-mention-flag',
- 'notification-calls',
- 'conversation-permissions',
- 'rich-object-list-media',
- 'rich-object-delete',
- 'unified-search',
- 'chat-permission',
- 'silent-send',
- 'silent-call',
- 'send-call-notification',
- 'talk-polls',
- 'breakout-rooms-v1',
- 'recording-v1',
- 'avatar',
- 'chat-get-context',
- 'single-conversation-status',
- 'chat-keep-notifications',
- 'typing-privacy',
- 'remind-me-later',
- 'bots-v1',
- 'markdown-messages',
- 'media-caption',
- 'session-state',
- 'note-to-self',
- 'recording-consent',
- 'sip-support-dialout',
- 'delete-messages-unlimited',
- 'edit-messages',
- 'silent-send-state',
- 'chat-read-last',
- 'federation-v1',
- 'ban-v1',
- ],
+ 'features' => self::FEATURES,
+ 'features-local' => self::LOCAL_FEATURES,
'config' => [
'attachments' => [
'allowed' => $user instanceof IUser,
@@ -162,6 +199,7 @@ class Capabilities implements IPublicCapability {
'session-ping-limit' => max(0, (int)$this->serverConfig->getAppValue('spreed', 'session-ping-limit', '200')),
],
],
+ 'config-local' => self::LOCAL_CONFIGS,
'version' => $this->appManager->getAppVersion('spreed'),
];