Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
feat(controllers): Migrate server annotations to attributes
Signed-off-by: Joas Schilling <[email protected]>
  • Loading branch information
nickvergessen committed Apr 26, 2023
commit 5ac5d00e2d64f580aadc3257d166c1df4c904313
22 changes: 8 additions & 14 deletions lib/Controller/AvatarController.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
use OCA\Talk\Service\AvatarService;
use OCA\Talk\Service\RoomFormatter;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\FileDisplayResponse;
use OCP\AppFramework\Http\Response;
Expand All @@ -53,9 +55,7 @@ public function __construct(
parent::__construct($appName, $request);
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireModeratorParticipant]
public function uploadAvatar(): DataResponse {
try {
Expand All @@ -78,10 +78,8 @@ public function uploadAvatar(): DataResponse {
}
}

/**
* @PublicPage
* @NoCSRFRequired
*/
#[PublicPage]
#[NoCSRFRequired]
#[RequireParticipant]
public function getAvatar(bool $darkTheme = false): Response {
$file = $this->avatarService->getAvatar($this->getRoom(), $this->userSession->getUser(), $darkTheme);
Expand All @@ -93,18 +91,14 @@ public function getAvatar(bool $darkTheme = false): Response {
return $response;
}

/**
* @PublicPage
* @NoCSRFRequired
*/
#[PublicPage]
#[NoCSRFRequired]
#[RequireParticipant]
public function getAvatarDark(): Response {
return $this->getAvatar(true);
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireModeratorParticipant]
public function deleteAvatar(): DataResponse {
$this->avatarService->deleteAvatar($this->getRoom());
Expand Down
37 changes: 10 additions & 27 deletions lib/Controller/BreakoutRoomController.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
use OCA\Talk\Service\ParticipantService;
use OCA\Talk\Service\RoomFormatter;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\Comments\MessageTooLongException;
use OCP\IRequest;
Expand All @@ -49,9 +50,7 @@ public function __construct(
parent::__construct($appName, $request);
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInModeratorParticipant]
public function configureBreakoutRooms(int $mode, int $amount, string $attendeeMap = '[]'): DataResponse {
try {
Expand All @@ -64,9 +63,7 @@ public function configureBreakoutRooms(int $mode, int $amount, string $attendeeM
return new DataResponse($this->formatMultipleRooms($rooms), Http::STATUS_OK);
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInModeratorParticipant]
public function removeBreakoutRooms(): DataResponse {
$this->breakoutRoomService->removeBreakoutRooms($this->room);
Expand All @@ -79,9 +76,7 @@ public function removeBreakoutRooms(): DataResponse {
));
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInModeratorParticipant]
public function broadcastChatMessage(string $message): DataResponse {
try {
Expand All @@ -95,9 +90,7 @@ public function broadcastChatMessage(string $message): DataResponse {
return new DataResponse($this->formatMultipleRooms($rooms), Http::STATUS_CREATED);
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInModeratorParticipant]
public function applyAttendeeMap(string $attendeeMap): DataResponse {
try {
Expand All @@ -109,9 +102,7 @@ public function applyAttendeeMap(string $attendeeMap): DataResponse {
return new DataResponse($this->formatMultipleRooms($rooms), Http::STATUS_OK);
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInParticipant]
public function requestAssistance(): DataResponse {
try {
Expand All @@ -128,9 +119,7 @@ public function requestAssistance(): DataResponse {
));
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInParticipant]
public function resetRequestForAssistance(): DataResponse {
try {
Expand All @@ -147,9 +136,7 @@ public function resetRequestForAssistance(): DataResponse {
));
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInModeratorParticipant]
public function startBreakoutRooms(): DataResponse {
try {
Expand All @@ -162,9 +149,7 @@ public function startBreakoutRooms(): DataResponse {
return new DataResponse($this->formatMultipleRooms($rooms), Http::STATUS_OK);
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInModeratorParticipant]
public function stopBreakoutRooms(): DataResponse {
try {
Expand All @@ -177,9 +162,7 @@ public function stopBreakoutRooms(): DataResponse {
return new DataResponse($this->formatMultipleRooms($rooms), Http::STATUS_OK);
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireLoggedInParticipant]
public function switchBreakoutRoom(string $target): DataResponse {
try {
Expand Down
20 changes: 6 additions & 14 deletions lib/Controller/CallController.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
use OCA\Talk\Service\ParticipantService;
use OCA\Talk\Service\RoomService;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IRequest;
Expand All @@ -64,9 +65,7 @@ public function __construct(
$this->timeFactory = $timeFactory;
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireCallEnabled]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
Expand Down Expand Up @@ -104,9 +103,7 @@ public function getPeersForCall(): DataResponse {
return new DataResponse($result);
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireCallEnabled]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
Expand All @@ -133,9 +130,7 @@ public function joinCall(?int $flags = null, ?int $forcePermissions = null, bool
return new DataResponse();
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireCallEnabled]
#[RequireParticipant]
#[RequirePermission(permission: RequirePermission::START_CALL)]
Expand All @@ -155,9 +150,7 @@ public function ringAttendee(int $attendeeId): DataResponse {
return new DataResponse();
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireParticipant]
public function updateCallFlags(int $flags): DataResponse {
$session = $this->participant->getSession();
Expand All @@ -175,11 +168,10 @@ public function updateCallFlags(int $flags): DataResponse {
}

/**
* @PublicPage
*
* @param bool $all whether to also terminate the call for all participants
* @return DataResponse
*/
#[PublicPage]
#[RequireParticipant]
public function leaveCall(bool $all = false): DataResponse {
$session = $this->participant->getSession();
Expand Down
42 changes: 13 additions & 29 deletions lib/Controller/ChatController.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
use OCA\Talk\Share\RoomShareProvider;
use OCP\App\IAppManager;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Collaboration\AutoComplete\IManager;
Expand Down Expand Up @@ -192,8 +194,6 @@ public function parseCommentToResponse(IComment $comment, Message $parentMessage
}

/**
* @PublicPage
*
* Sends a new chat message to the given room.
*
* The author and timestamp are automatically set to the current user/guest
Expand All @@ -208,6 +208,7 @@ public function parseCommentToResponse(IComment $comment, Message $parentMessage
* "404 Not found" if the room or session for a guest user was not
* found".
*/
#[PublicPage]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
#[RequirePermission(permission: RequirePermission::CHAT)]
Expand Down Expand Up @@ -249,8 +250,6 @@ public function sendMessage(string $message, string $actorDisplayName = '', stri
}

/**
* @PublicPage
*
* Sends a rich-object to the given room.
*
* The author and timestamp are automatically set to the current user/guest
Expand All @@ -265,6 +264,7 @@ public function sendMessage(string $message, string $actorDisplayName = '', stri
* "404 Not found" if the room or session for a guest user was not
* found".
*/
#[PublicPage]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
#[RequirePermission(permission: RequirePermission::CHAT)]
Expand Down Expand Up @@ -349,8 +349,6 @@ protected function preloadShares(array $comments): void {
}

/**
* @PublicPage
*
* Receives chat messages from the given room.
*
* - Receiving the history ($lookIntoFuture=0):
Expand Down Expand Up @@ -398,6 +396,7 @@ protected function preloadShares(array $comments): void {
* 'actorDisplayName', 'timestamp' (in seconds and UTC timezone) and
* 'message'.
*/
#[PublicPage]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
public function receiveMessages(int $lookIntoFuture,
Expand Down Expand Up @@ -595,12 +594,11 @@ protected function prepareCommentsAsDataResponse(array $comments, int $lastCommo
}

/**
* @PublicPage
*
* @param int $messageId The focused message which should be in the "middle" of the returned context
* @param int $limit Number of chat messages to receive in both directions (50 by default, 100 at most, might return 201 messages)
* @return DataResponse
*/
#[PublicPage]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
public function getMessageContext(
Expand Down Expand Up @@ -660,9 +658,7 @@ protected function loadSelfReactions(array $messages, array $commentIdToIndex):
return $messages;
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
#[RequirePermission(permission: RequirePermission::CHAT)]
Expand Down Expand Up @@ -730,9 +726,7 @@ public function deleteMessage(int $messageId): DataResponse {
return $response;
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireModeratorParticipant]
#[RequireReadWriteConversation]
public function clearHistory(): DataResponse {
Expand Down Expand Up @@ -765,9 +759,7 @@ public function clearHistory(): DataResponse {
return $response;
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireParticipant]
public function setReadMarker(int $lastReadMessage): DataResponse {
$this->participantService->updateLastReadMessage($this->participant, $lastReadMessage);
Expand All @@ -778,9 +770,7 @@ public function setReadMarker(int $lastReadMessage): DataResponse {
return $response;
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
#[RequireParticipant]
public function markUnread(): DataResponse {
$message = $this->room->getLastMessage();
Expand All @@ -804,9 +794,7 @@ public function markUnread(): DataResponse {
return $this->setReadMarker($unreadId);
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
public function getObjectsSharedInRoomOverview(int $limit = 7): DataResponse {
Expand Down Expand Up @@ -849,9 +837,7 @@ public function getObjectsSharedInRoomOverview(int $limit = 7): DataResponse {
return new DataResponse($messagesByType, Http::STATUS_OK);
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
public function getObjectsSharedInRoom(string $objectType, int $lastKnownMessageId = 0, int $limit = 100): DataResponse {
Expand Down Expand Up @@ -900,9 +886,7 @@ protected function getMessagesForRoom(array $messageIds): array {
return $messages;
}

/**
* @PublicPage
*/
#[PublicPage]
#[RequireModeratorOrNoLobby]
#[RequireParticipant]
#[RequirePermission(permission: RequirePermission::CHAT)]
Expand Down
Loading