Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-05-05 19:17:09 +0300
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-06-13 19:46:04 +0300
commitadf3856d35945790fed5f7934d8c154d1f01b377 (patch)
tree6ae1b9220936a0dd236a3e58cd7eed189352cfc1 /core/Controller
parent8e3382cedaecf551c3d6991feae08c57f66496eb (diff)
Return Svg avatars
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'core/Controller')
-rw-r--r--core/Controller/AvatarController.php46
1 files changed, 37 insertions, 9 deletions
diff --git a/core/Controller/AvatarController.php b/core/Controller/AvatarController.php
index 11d81ab00b2..6f0cf03d8e8 100644
--- a/core/Controller/AvatarController.php
+++ b/core/Controller/AvatarController.php
@@ -41,6 +41,7 @@ use OCP\IL10N;
use OCP\IRequest;
use OCP\IUserManager;
use OCP\IUserSession;
+use OCP\AppFramework\Http\DataResponse;
/**
* Class AvatarController
@@ -113,6 +114,20 @@ class AvatarController extends Controller {
+
+ /**
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ * @NoSameSiteCookieRequired
+ * @PublicPage
+ *
+ * Shortcut to getAvatar
+ */
+ public function getAvatarPng($userId, $size) {
+ return $this->getAvatar($userId, $size, true);
+ }
+
+
/**
* @NoAdminRequired
* @NoCSRFRequired
@@ -121,24 +136,37 @@ class AvatarController extends Controller {
*
* @param string $userId
* @param int $size
+ * @param bool $png return png or not
* @return JSONResponse|FileDisplayResponse
*/
- public function getAvatar($userId, $size) {
+ public function getAvatar($userId, $size, bool $png = false) {
if ($size > 2048) {
$size = 2048;
} elseif ($size <= 0) {
$size = 64;
}
- try {
- $avatar = $this->avatarManager->getAvatar($userId)->getFile($size);
- $resp = new FileDisplayResponse($avatar,
+ if ($png === false) {
+ $avatar = $this->avatarManager->getAvatar($userId)->getAvatarVector($size);
+ $resp = new DataDisplayResponse(
+ $avatar,
Http::STATUS_OK,
- ['Content-Type' => $avatar->getMimeType()]);
- } catch (\Exception $e) {
- $resp = new Http\Response();
- $resp->setStatus(Http::STATUS_NOT_FOUND);
- return $resp;
+ ['Content-Type' => 'image/svg+xml'
+ ]);
+ } else {
+
+ try {
+ $avatar = $this->avatarManager->getAvatar($userId)->getFile($size);
+ $resp = new FileDisplayResponse(
+ $avatar,
+ Http::STATUS_OK,
+ ['Content-Type' => $avatar->getMimeType()
+ ]);
+ } catch (\Exception $e) {
+ $resp = new Http\Response();
+ $resp->setStatus(Http::STATUS_NOT_FOUND);
+ return $resp;
+ }
}
// Cache for 30 minutes