|
|
@ -34,6 +34,7 @@ use OCP\IL10N; |
|
|
|
use OCP\IRequest; |
|
|
|
use OCP\IRequest; |
|
|
|
use OCP\IUserManager; |
|
|
|
use OCP\IUserManager; |
|
|
|
use OCP\IUserSession; |
|
|
|
use OCP\IUserSession; |
|
|
|
|
|
|
|
use OCP\Files\Folder; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Class AvatarController |
|
|
|
* Class AvatarController |
|
|
@ -57,6 +58,9 @@ class AvatarController extends Controller { |
|
|
|
/** @var IUserSession */ |
|
|
|
/** @var IUserSession */ |
|
|
|
protected $userSession; |
|
|
|
protected $userSession; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** @var Folder */ |
|
|
|
|
|
|
|
protected $userFolder; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* @param string $appName |
|
|
|
* @param string $appName |
|
|
|
* @param IRequest $request |
|
|
|
* @param IRequest $request |
|
|
@ -65,6 +69,7 @@ class AvatarController extends Controller { |
|
|
|
* @param IL10N $l10n |
|
|
|
* @param IL10N $l10n |
|
|
|
* @param IUserManager $userManager |
|
|
|
* @param IUserManager $userManager |
|
|
|
* @param IUserSession $userSession |
|
|
|
* @param IUserSession $userSession |
|
|
|
|
|
|
|
* @param Folder $userFolder |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public function __construct($appName, |
|
|
|
public function __construct($appName, |
|
|
|
IRequest $request, |
|
|
|
IRequest $request, |
|
|
@ -72,7 +77,8 @@ class AvatarController extends Controller { |
|
|
|
\OC\Cache\File $cache, |
|
|
|
\OC\Cache\File $cache, |
|
|
|
IL10N $l10n, |
|
|
|
IL10N $l10n, |
|
|
|
IUserManager $userManager, |
|
|
|
IUserManager $userManager, |
|
|
|
IUserSession $userSession) { |
|
|
|
IUserSession $userSession, |
|
|
|
|
|
|
|
Folder $userFolder) { |
|
|
|
parent::__construct($appName, $request); |
|
|
|
parent::__construct($appName, $request); |
|
|
|
|
|
|
|
|
|
|
|
$this->avatarManager = $avatarManager; |
|
|
|
$this->avatarManager = $avatarManager; |
|
|
@ -80,6 +86,7 @@ class AvatarController extends Controller { |
|
|
|
$this->l = $l10n; |
|
|
|
$this->l = $l10n; |
|
|
|
$this->userManager = $userManager; |
|
|
|
$this->userManager = $userManager; |
|
|
|
$this->userSession = $userSession; |
|
|
|
$this->userSession = $userSession; |
|
|
|
|
|
|
|
$this->userFolder = $userFolder; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -133,12 +140,12 @@ class AvatarController extends Controller { |
|
|
|
|
|
|
|
|
|
|
|
if (isset($path)) { |
|
|
|
if (isset($path)) { |
|
|
|
$path = stripslashes($path); |
|
|
|
$path = stripslashes($path); |
|
|
|
$view = new \OC\Files\View('/'.$userId.'/files'); |
|
|
|
$node = $this->userFolder->get($path); |
|
|
|
if ($view->filesize($path) > 20*1024*1024) { |
|
|
|
if ($node->getSize() > 20*1024*1024) { |
|
|
|
return new DataResponse(['data' => ['message' => $this->l->t('File is too big')]], |
|
|
|
return new DataResponse(['data' => ['message' => $this->l->t('File is too big')]], |
|
|
|
Http::STATUS_BAD_REQUEST); |
|
|
|
Http::STATUS_BAD_REQUEST); |
|
|
|
} |
|
|
|
} |
|
|
|
$fileName = $view->getLocalFile($path); |
|
|
|
$content = $node->getContent(); |
|
|
|
} elseif (!is_null($files)) { |
|
|
|
} elseif (!is_null($files)) { |
|
|
|
if ( |
|
|
|
if ( |
|
|
|
$files['error'][0] === 0 && |
|
|
|
$files['error'][0] === 0 && |
|
|
@ -150,8 +157,7 @@ class AvatarController extends Controller { |
|
|
|
Http::STATUS_BAD_REQUEST); |
|
|
|
Http::STATUS_BAD_REQUEST); |
|
|
|
} |
|
|
|
} |
|
|
|
$this->cache->set('avatar_upload', file_get_contents($files['tmp_name'][0]), 7200); |
|
|
|
$this->cache->set('avatar_upload', file_get_contents($files['tmp_name'][0]), 7200); |
|
|
|
$view = new \OC\Files\View('/'.$userId.'/cache'); |
|
|
|
$content = $this->cache->get('avatar_upload'); |
|
|
|
$fileName = $view->getLocalFile('avatar_upload'); |
|
|
|
|
|
|
|
unlink($files['tmp_name'][0]); |
|
|
|
unlink($files['tmp_name'][0]); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
return new DataResponse(['data' => ['message' => $this->l->t('Invalid file provided')]], |
|
|
|
return new DataResponse(['data' => ['message' => $this->l->t('Invalid file provided')]], |
|
|
@ -165,7 +171,7 @@ class AvatarController extends Controller { |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
try { |
|
|
|
$image = new \OC_Image(); |
|
|
|
$image = new \OC_Image(); |
|
|
|
$image->loadFromFile($fileName); |
|
|
|
$image->loadFromData($content); |
|
|
|
$image->fixOrientation(); |
|
|
|
$image->fixOrientation(); |
|
|
|
|
|
|
|
|
|
|
|
if ($image->valid()) { |
|
|
|
if ($image->valid()) { |
|
|
|