Add instance id to file id

For multitenancy

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
pull/7/head
Lukas Reschke 7 years ago
parent 881d8402ed
commit 1441bdc594
No known key found for this signature in database
GPG Key ID: B9F6980CF6E759B1

@ -104,7 +104,7 @@ class DocumentController extends Controller {
$params = [ $params = [
'permissions' => $item->getPermissions(), 'permissions' => $item->getPermissions(),
'title' => $item->getName(), 'title' => $item->getName(),
'fileId' => $item->getId(), 'fileId' => $item->getId() . '_' . $this->settings->getSystemValue('instanceid'),
'token' => $token, 'token' => $token,
'urlsrc' => $urlSrc, 'urlsrc' => $urlSrc,
'path' => '/', 'path' => '/',
@ -153,7 +153,7 @@ class DocumentController extends Controller {
$params = [ $params = [
'permissions' => $share->getPermissions(), 'permissions' => $share->getPermissions(),
'title' => $item->getName(), 'title' => $item->getName(),
'fileId' => $item->getId(), 'fileId' => $item->getId() . '_' . $this->settings->getSystemValue('instanceid'),
'token' => $token, 'token' => $token,
'urlsrc' => $urlSrc, 'urlsrc' => $urlSrc,
'path' => '/', 'path' => '/',
@ -233,7 +233,7 @@ class DocumentController extends Controller {
$ret = $this->wopiParser->getUrlSrc($mimetype); $ret = $this->wopiParser->getUrlSrc($mimetype);
$response = array( $response = array(
'status' => 'success', 'status' => 'success',
'fileid' => $info['fileid'], 'fileid' => $info['fileid'] . '_' . $this->settings->getSystemValue('instanceid'),
'urlsrc' => $ret['urlsrc'], 'urlsrc' => $ret['urlsrc'],
'action' => $ret['action'], 'action' => $ret['action'],
'lolang' => $this->settings->getUserValue($this->uid, 'core', 'lang', 'en'), 'lolang' => $this->settings->getUserValue($this->uid, 'core', 'lang', 'en'),

@ -35,32 +35,42 @@ use OCP\AppFramework\Http\StreamResponse;
class WopiController extends Controller { class WopiController extends Controller {
/** @var IRootFolder */ /** @var IRootFolder */
private $rootFolder; private $rootFolder;
/** @var string */
private $userId;
/** @var IUserManager */
private $userManager;
/** @var Parser */
private $wopiParser;
/** /**
* @param string $appName * @param string $appName
* @param IRequest $request * @param IRequest $request
* @param IRootFolder $rootFolder * @param IRootFolder $rootFolder
* @param string $UserId * @param string $UserId
* @param IUserManager $userManager
* @param Parser $wopiParser
*/ */
public function __construct($appName, public function __construct($appName,
$UserId, $UserId,
IRequest $request, IRequest $request,
IRootFolder $rootFolder, IRootFolder $rootFolder) {
IUserManager $userManager,
Parser $wopiParser) {
parent::__construct($appName, $request); parent::__construct($appName, $request);
$this->rootFolder = $rootFolder; $this->rootFolder = $rootFolder;
$this->userId = $UserId; }
$this->userManager = $userManager;
$this->wopiParser = $wopiParser; /**
* @param string $fileId
* @return array
* @throws \Exception
*/
private function parseFileId($fileId) {
$arr = explode('_', $fileId, 2);
if (count($arr) === 2) {
list($fileId, $instanceId) = $arr;
$version = '0';
} else if (count($arr) === 3) {
list($fileId, $instanceId, $version) = $arr;
} else {
throw new \Exception('$fileId has not the expected format');
}
return [
$fileId,
$instanceId,
$version,
];
} }
/** /**
@ -76,11 +86,7 @@ class WopiController extends Controller {
public function checkFileInfo($fileId) { public function checkFileInfo($fileId) {
$token = $this->request->getParam('access_token'); $token = $this->request->getParam('access_token');
$arr = explode('_', $fileId, 2); list($fileId, , $version) = $this->parseFileId($fileId);
$version = '0';
if (count($arr) === 2) {
list($fileId, $version) = $arr;
}
$row = new Wopi(); $row = new Wopi();
$row->loadBy('token', $token); $row->loadBy('token', $token);
@ -130,11 +136,7 @@ class WopiController extends Controller {
*/ */
public function getFile($fileId, public function getFile($fileId,
$access_token) { $access_token) {
$arr = explode('_', $fileId, 2); list($fileId, , $version) = $this->parseFileId($fileId);
$version = '0';
if (count($arr) === 2) {
list($fileId, $version) = $arr;
}
$row = new Wopi(); $row = new Wopi();
$row->loadBy('token', $access_token); $row->loadBy('token', $access_token);
@ -165,12 +167,9 @@ class WopiController extends Controller {
* @param string $access_token * @param string $access_token
* @return JSONResponse * @return JSONResponse
*/ */
public function putFile($fileId, $access_token) { public function putFile($fileId,
$arr = explode('_', $fileId, 2); $access_token) {
$version = '0'; list($fileId, , $version) = $this->parseFileId($fileId);
if (count($arr) === 2) {
list($fileId, $version) = $arr;
}
$row = new Wopi(); $row = new Wopi();
$row->loadBy('token', $access_token); $row->loadBy('token', $access_token);

Loading…
Cancel
Save