protected function removeSharing(Request $request, $token) { if (!Sharing::deleteByToken($token, $this->getUserId())) { return $this->abort(404, 'error.sharingNotFound'); } return $this->success(); }
protected function getArguments(Request $request) { $arguments = parent::getArguments($request); $sharing = Sharing::loadByToken($request->attributes->get('token')); if (!$sharing) { $this->abort(404, 'error.sharingNotFound'); } array_unshift($arguments, FileManager::getBySharing($this->getUserId(), $sharing)); return $arguments; }
protected function removeUser(Request $request) { $userId = $request->request->get('userId'); if (!empty($userId)) { if (User::deleteByUserId($userId)) { UserRole::deleteByUserId($userId); Sharing::deleteByUserId($userId); return $this->success(); } } $this->abort(500, 'error.cannotRemoveUser'); }
public function getSharingToken() { if ($this->sharingToken === null) { $path = $this->relativePath; if (!$this->isFile()) { $path .= '/'; } $this->sharingToken = Sharing::generateToken($this->ownerId, $this->relativePath); } return $this->sharingToken; }
public static function getBySharing($userId, Sharing $sharing) { return self::getInstance($sharing->getUserId(), $userId, str_replace('/', DIRECTORY_SEPARATOR, $sharing->getPath()), false); }
protected function getDirectLink(Request $request, FileManager $fileManager) { if (!$request->query->has('path')) { return $this->abort(400); } $path = $fileManager->getAbsolutePath($request->query->get('path')); if (!is_file($path)) { return $this->abort(404); } if (!$fileManager->isWritable()) { return $this->abort(500); } $relativePath = $fileManager->getRelativePath($path); list($parentPath) = explode('/', $relativePath); $sharings = Sharing::loadByPathRecursively($parentPath, $fileManager->getOwnerId()); if (count($sharings) > 0) { $sharing = $sharings[0]; } else { $sharing = new Sharing(null, $fileManager->getOwnerId(), $relativePath); $sharing->save(); } $sharingPath = $sharing->getPath(); if (is_file($fileManager->getAbsolutePath($sharingPath))) { $sharingPath = dirname($sharingPath); if ($sharingPath === '.') { $sharingPath = ''; } } $finalPath = str_replace($sharingPath, '', $relativePath); $url = $this->url('openFile', ['token' => $sharing->getToken(), 'path' => $finalPath], 'sharings_'); return $this->success($url); }