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');
 }
Beispiel #4
0
 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);
 }