diff options
author | Henry Castro <hcastro@collabora.com> | 2021-10-12 23:05:50 +0300 |
---|---|---|
committer | Julius Härtl (Rebase PR Action) <github@juliushaertl.de> | 2022-02-08 23:32:43 +0300 |
commit | 73e3d8f034668dae798b3d252f996dbe91e14ea4 (patch) | |
tree | 25b2f59607d8a5541b7158121df8e43e2a04a67e /lib | |
parent | 6d47572a40e0cf79ecd5500daf08c9b95134a055 (diff) |
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 <hcastro@collabora.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Controller/WopiController.php | 10 |
1 files changed, 9 insertions, 1 deletions
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]); } |