From 73e3d8f034668dae798b3d252f996dbe91e14ea4 Mon Sep 17 00:00:00 2001 From: Henry Castro Date: Tue, 12 Oct 2021 16:05:50 -0400 Subject: add "is_admin" to extra info user data It is intended to extend the WOPI standard to identify admin users to add some extra features. Signed-off-by: Henry Castro --- lib/Controller/WopiController.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/Controller/WopiController.php b/lib/Controller/WopiController.php index 15805f3f..7d8ca1b4 100644 --- a/lib/Controller/WopiController.php +++ b/lib/Controller/WopiController.php @@ -46,6 +46,7 @@ use OCP\Files\Node; use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; use OCP\IConfig; +use OCP\IGroupManager; use OCP\ILogger; use OCP\IRequest; use OCP\IURLGenerator; @@ -81,6 +82,8 @@ class WopiController extends Controller { private $federationService; /** @var IEncryptionManager */ private $encryptionManager; + /** @var IGroupManager */ + private $groupManager; // Signifies LOOL that document has been changed externally in this storage const LOOL_STATUS_DOC_CHANGED = 1010; @@ -118,7 +121,8 @@ class WopiController extends Controller { IShareManager $shareManager, UserScopeService $userScopeService, FederationService $federationService, - IEncryptionManager $encryptionManager + IEncryptionManager $encryptionManager, + IGroupManager $groupManager ) { parent::__construct($appName, $request); $this->rootFolder = $rootFolder; @@ -134,6 +138,7 @@ class WopiController extends Controller { $this->userScopeService = $userScopeService; $this->federationService = $federationService; $this->encryptionManager = $encryptionManager; + $this->groupManager = $groupManager; } /** @@ -233,6 +238,9 @@ class WopiController extends Controller { $user = $this->userManager->get($wopi->getEditorUid()); if($user !== null) { $response['UserExtraInfo']['avatar'] = $this->urlGenerator->linkToRouteAbsolute('core.avatar.getAvatar', ['userId' => $wopi->getEditorUid(), 'size' => self::WOPI_AVATAR_SIZE]); + if ($this->groupManager->isAdmin($wopi->getEditorUid())) { + $response['UserExtraInfo']['is_admin'] = true; + } } else { $response['UserExtraInfo']['avatar'] = $this->urlGenerator->linkToRouteAbsolute('core.GuestAvatar.getAvatar', ['guestName' => urlencode($wopi->getGuestDisplayname()), 'size' => self::WOPI_AVATAR_SIZE]); } -- cgit v1.2.3