diff options
Diffstat (limited to 'lib/Capabilities.php')
-rw-r--r-- | lib/Capabilities.php | 188 |
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'), ]; |