@@ -6,5 +6,5 @@ |
||
| 6 | 6 | $baseDir = $vendorDir; |
| 7 | 7 | |
| 8 | 8 | return array( |
| 9 | - 'OCA\\Settings\\' => array($baseDir . '/../lib'), |
|
| 9 | + 'OCA\\Settings\\' => array($baseDir.'/../lib'), |
|
| 10 | 10 | ); |
@@ -73,10 +73,10 @@ |
||
| 73 | 73 | Request::USER_AGENT_ANDROID_MOBILE_CHROME, |
| 74 | 74 | Request::USER_AGENT_FREEBOX, |
| 75 | 75 | ])) { |
| 76 | - $response->addHeader('Content-Disposition', 'attachment; filename="' . rawurlencode($filename) . '"'); |
|
| 76 | + $response->addHeader('Content-Disposition', 'attachment; filename="'.rawurlencode($filename).'"'); |
|
| 77 | 77 | } else { |
| 78 | - $response->addHeader('Content-Disposition', 'attachment; filename*=UTF-8\'\'' . rawurlencode($filename) |
|
| 79 | - . '; filename="' . rawurlencode($filename) . '"'); |
|
| 78 | + $response->addHeader('Content-Disposition', 'attachment; filename*=UTF-8\'\''.rawurlencode($filename) |
|
| 79 | + . '; filename="'.rawurlencode($filename).'"'); |
|
| 80 | 80 | } |
| 81 | 81 | } |
| 82 | 82 | |
@@ -22,71 +22,71 @@ |
||
| 22 | 22 | use Sabre\HTTP\ResponseInterface; |
| 23 | 23 | |
| 24 | 24 | class Plugin extends ServerPlugin { |
| 25 | - private Server $server; |
|
| 26 | - |
|
| 27 | - public const VERSION_LABEL = '{http://nextcloud.org/ns}version-label'; |
|
| 28 | - |
|
| 29 | - public const VERSION_AUTHOR = '{http://nextcloud.org/ns}version-author'; // dav property for author |
|
| 30 | - |
|
| 31 | - public function __construct( |
|
| 32 | - private IRequest $request, |
|
| 33 | - private IPreview $previewManager, |
|
| 34 | - ) { |
|
| 35 | - $this->request = $request; |
|
| 36 | - } |
|
| 37 | - |
|
| 38 | - public function initialize(Server $server) { |
|
| 39 | - $this->server = $server; |
|
| 40 | - |
|
| 41 | - $server->on('afterMethod:GET', [$this, 'afterGet']); |
|
| 42 | - $server->on('propFind', [$this, 'propFind']); |
|
| 43 | - $server->on('propPatch', [$this, 'propPatch']); |
|
| 44 | - } |
|
| 45 | - |
|
| 46 | - public function afterGet(RequestInterface $request, ResponseInterface $response) { |
|
| 47 | - $path = $request->getPath(); |
|
| 48 | - if (!str_starts_with($path, 'versions')) { |
|
| 49 | - return; |
|
| 50 | - } |
|
| 51 | - |
|
| 52 | - try { |
|
| 53 | - $node = $this->server->tree->getNodeForPath($path); |
|
| 54 | - } catch (NotFound $e) { |
|
| 55 | - return; |
|
| 56 | - } |
|
| 57 | - |
|
| 58 | - if (!($node instanceof VersionFile)) { |
|
| 59 | - return; |
|
| 60 | - } |
|
| 61 | - |
|
| 62 | - $filename = $node->getVersion()->getSourceFileName(); |
|
| 63 | - |
|
| 64 | - if ($this->request->isUserAgent( |
|
| 65 | - [ |
|
| 66 | - Request::USER_AGENT_IE, |
|
| 67 | - Request::USER_AGENT_ANDROID_MOBILE_CHROME, |
|
| 68 | - Request::USER_AGENT_FREEBOX, |
|
| 69 | - ])) { |
|
| 70 | - $response->addHeader('Content-Disposition', 'attachment; filename="' . rawurlencode($filename) . '"'); |
|
| 71 | - } else { |
|
| 72 | - $response->addHeader('Content-Disposition', 'attachment; filename*=UTF-8\'\'' . rawurlencode($filename) |
|
| 73 | - . '; filename="' . rawurlencode($filename) . '"'); |
|
| 74 | - } |
|
| 75 | - } |
|
| 76 | - |
|
| 77 | - public function propFind(PropFind $propFind, INode $node): void { |
|
| 78 | - if ($node instanceof VersionFile) { |
|
| 79 | - $propFind->handle(self::VERSION_LABEL, fn () => $node->getMetadataValue('label')); |
|
| 80 | - $propFind->handle(self::VERSION_AUTHOR, fn () => $node->getMetadataValue('author')); |
|
| 81 | - $propFind->handle(FilesPlugin::HAS_PREVIEW_PROPERTYNAME, fn () => $this->previewManager->isMimeSupported($node->getContentType())); |
|
| 82 | - } |
|
| 83 | - } |
|
| 84 | - |
|
| 85 | - public function propPatch($path, PropPatch $propPatch): void { |
|
| 86 | - $node = $this->server->tree->getNodeForPath($path); |
|
| 87 | - |
|
| 88 | - if ($node instanceof VersionFile) { |
|
| 89 | - $propPatch->handle(self::VERSION_LABEL, fn (string $label) => $node->setMetadataValue('label', $label)); |
|
| 90 | - } |
|
| 91 | - } |
|
| 25 | + private Server $server; |
|
| 26 | + |
|
| 27 | + public const VERSION_LABEL = '{http://nextcloud.org/ns}version-label'; |
|
| 28 | + |
|
| 29 | + public const VERSION_AUTHOR = '{http://nextcloud.org/ns}version-author'; // dav property for author |
|
| 30 | + |
|
| 31 | + public function __construct( |
|
| 32 | + private IRequest $request, |
|
| 33 | + private IPreview $previewManager, |
|
| 34 | + ) { |
|
| 35 | + $this->request = $request; |
|
| 36 | + } |
|
| 37 | + |
|
| 38 | + public function initialize(Server $server) { |
|
| 39 | + $this->server = $server; |
|
| 40 | + |
|
| 41 | + $server->on('afterMethod:GET', [$this, 'afterGet']); |
|
| 42 | + $server->on('propFind', [$this, 'propFind']); |
|
| 43 | + $server->on('propPatch', [$this, 'propPatch']); |
|
| 44 | + } |
|
| 45 | + |
|
| 46 | + public function afterGet(RequestInterface $request, ResponseInterface $response) { |
|
| 47 | + $path = $request->getPath(); |
|
| 48 | + if (!str_starts_with($path, 'versions')) { |
|
| 49 | + return; |
|
| 50 | + } |
|
| 51 | + |
|
| 52 | + try { |
|
| 53 | + $node = $this->server->tree->getNodeForPath($path); |
|
| 54 | + } catch (NotFound $e) { |
|
| 55 | + return; |
|
| 56 | + } |
|
| 57 | + |
|
| 58 | + if (!($node instanceof VersionFile)) { |
|
| 59 | + return; |
|
| 60 | + } |
|
| 61 | + |
|
| 62 | + $filename = $node->getVersion()->getSourceFileName(); |
|
| 63 | + |
|
| 64 | + if ($this->request->isUserAgent( |
|
| 65 | + [ |
|
| 66 | + Request::USER_AGENT_IE, |
|
| 67 | + Request::USER_AGENT_ANDROID_MOBILE_CHROME, |
|
| 68 | + Request::USER_AGENT_FREEBOX, |
|
| 69 | + ])) { |
|
| 70 | + $response->addHeader('Content-Disposition', 'attachment; filename="' . rawurlencode($filename) . '"'); |
|
| 71 | + } else { |
|
| 72 | + $response->addHeader('Content-Disposition', 'attachment; filename*=UTF-8\'\'' . rawurlencode($filename) |
|
| 73 | + . '; filename="' . rawurlencode($filename) . '"'); |
|
| 74 | + } |
|
| 75 | + } |
|
| 76 | + |
|
| 77 | + public function propFind(PropFind $propFind, INode $node): void { |
|
| 78 | + if ($node instanceof VersionFile) { |
|
| 79 | + $propFind->handle(self::VERSION_LABEL, fn () => $node->getMetadataValue('label')); |
|
| 80 | + $propFind->handle(self::VERSION_AUTHOR, fn () => $node->getMetadataValue('author')); |
|
| 81 | + $propFind->handle(FilesPlugin::HAS_PREVIEW_PROPERTYNAME, fn () => $this->previewManager->isMimeSupported($node->getContentType())); |
|
| 82 | + } |
|
| 83 | + } |
|
| 84 | + |
|
| 85 | + public function propPatch($path, PropPatch $propPatch): void { |
|
| 86 | + $node = $this->server->tree->getNodeForPath($path); |
|
| 87 | + |
|
| 88 | + if ($node instanceof VersionFile) { |
|
| 89 | + $propPatch->handle(self::VERSION_LABEL, fn (string $label) => $node->setMetadataValue('label', $label)); |
|
| 90 | + } |
|
| 91 | + } |
|
| 92 | 92 | } |
@@ -29,21 +29,21 @@ |
||
| 29 | 29 | use OC\AppFramework\DependencyInjection\DIContainer; |
| 30 | 30 | |
| 31 | 31 | class RouteActionHandler { |
| 32 | - private $controllerName; |
|
| 33 | - private $actionName; |
|
| 34 | - private $container; |
|
| 32 | + private $controllerName; |
|
| 33 | + private $actionName; |
|
| 34 | + private $container; |
|
| 35 | 35 | |
| 36 | - /** |
|
| 37 | - * @param string $controllerName |
|
| 38 | - * @param string $actionName |
|
| 39 | - */ |
|
| 40 | - public function __construct(DIContainer $container, $controllerName, $actionName) { |
|
| 41 | - $this->controllerName = $controllerName; |
|
| 42 | - $this->actionName = $actionName; |
|
| 43 | - $this->container = $container; |
|
| 44 | - } |
|
| 36 | + /** |
|
| 37 | + * @param string $controllerName |
|
| 38 | + * @param string $actionName |
|
| 39 | + */ |
|
| 40 | + public function __construct(DIContainer $container, $controllerName, $actionName) { |
|
| 41 | + $this->controllerName = $controllerName; |
|
| 42 | + $this->actionName = $actionName; |
|
| 43 | + $this->container = $container; |
|
| 44 | + } |
|
| 45 | 45 | |
| 46 | - public function __invoke($params) { |
|
| 47 | - App::main($this->controllerName, $this->actionName, $this->container, $params); |
|
| 48 | - } |
|
| 46 | + public function __invoke($params) { |
|
| 47 | + App::main($this->controllerName, $this->actionName, $this->container, $params); |
|
| 48 | + } |
|
| 49 | 49 | } |
@@ -30,48 +30,48 @@ |
||
| 30 | 30 | use Sabre\DAV\INode; |
| 31 | 31 | |
| 32 | 32 | class RestoreFolder implements ICollection, IMoveTarget { |
| 33 | - public function createFile($name, $data = null) { |
|
| 34 | - throw new Forbidden(); |
|
| 35 | - } |
|
| 33 | + public function createFile($name, $data = null) { |
|
| 34 | + throw new Forbidden(); |
|
| 35 | + } |
|
| 36 | 36 | |
| 37 | - public function createDirectory($name) { |
|
| 38 | - throw new Forbidden(); |
|
| 39 | - } |
|
| 37 | + public function createDirectory($name) { |
|
| 38 | + throw new Forbidden(); |
|
| 39 | + } |
|
| 40 | 40 | |
| 41 | - public function getChild($name) { |
|
| 42 | - return null; |
|
| 43 | - } |
|
| 41 | + public function getChild($name) { |
|
| 42 | + return null; |
|
| 43 | + } |
|
| 44 | 44 | |
| 45 | - public function delete() { |
|
| 46 | - throw new Forbidden(); |
|
| 47 | - } |
|
| 45 | + public function delete() { |
|
| 46 | + throw new Forbidden(); |
|
| 47 | + } |
|
| 48 | 48 | |
| 49 | - public function getName() { |
|
| 50 | - return 'restore'; |
|
| 51 | - } |
|
| 49 | + public function getName() { |
|
| 50 | + return 'restore'; |
|
| 51 | + } |
|
| 52 | 52 | |
| 53 | - public function setName($name) { |
|
| 54 | - throw new Forbidden(); |
|
| 55 | - } |
|
| 53 | + public function setName($name) { |
|
| 54 | + throw new Forbidden(); |
|
| 55 | + } |
|
| 56 | 56 | |
| 57 | - public function getLastModified(): int { |
|
| 58 | - return 0; |
|
| 59 | - } |
|
| 57 | + public function getLastModified(): int { |
|
| 58 | + return 0; |
|
| 59 | + } |
|
| 60 | 60 | |
| 61 | - public function getChildren(): array { |
|
| 62 | - return []; |
|
| 63 | - } |
|
| 61 | + public function getChildren(): array { |
|
| 62 | + return []; |
|
| 63 | + } |
|
| 64 | 64 | |
| 65 | - public function childExists($name): bool { |
|
| 66 | - return false; |
|
| 67 | - } |
|
| 65 | + public function childExists($name): bool { |
|
| 66 | + return false; |
|
| 67 | + } |
|
| 68 | 68 | |
| 69 | - public function moveInto($targetName, $sourcePath, INode $sourceNode): bool { |
|
| 70 | - if (!($sourceNode instanceof ITrash)) { |
|
| 71 | - return false; |
|
| 72 | - } |
|
| 69 | + public function moveInto($targetName, $sourcePath, INode $sourceNode): bool { |
|
| 70 | + if (!($sourceNode instanceof ITrash)) { |
|
| 71 | + return false; |
|
| 72 | + } |
|
| 73 | 73 | |
| 74 | - return $sourceNode->restore(); |
|
| 75 | - } |
|
| 74 | + return $sourceNode->restore(); |
|
| 75 | + } |
|
| 76 | 76 | |
| 77 | 77 | } |
@@ -65,7 +65,7 @@ discard block |
||
| 65 | 65 | $gid = $input->getArgument('groupid'); |
| 66 | 66 | $group = $this->groupManager->get($gid); |
| 67 | 67 | if ($group) { |
| 68 | - $output->writeln('<error>Group "' . $gid . '" already exists.</error>'); |
|
| 68 | + $output->writeln('<error>Group "'.$gid.'" already exists.</error>'); |
|
| 69 | 69 | return 1; |
| 70 | 70 | } else { |
| 71 | 71 | $group = $this->groupManager->createGroup($gid); |
@@ -73,9 +73,9 @@ discard block |
||
| 73 | 73 | $output->writeln('<error>Could not create group</error>'); |
| 74 | 74 | return 2; |
| 75 | 75 | } |
| 76 | - $output->writeln('Created group "' . $group->getGID() . '"'); |
|
| 76 | + $output->writeln('Created group "'.$group->getGID().'"'); |
|
| 77 | 77 | |
| 78 | - $displayName = trim((string)$input->getOption('display-name')); |
|
| 78 | + $displayName = trim((string) $input->getOption('display-name')); |
|
| 79 | 79 | if ($displayName !== '') { |
| 80 | 80 | $group->setDisplayName($displayName); |
| 81 | 81 | } |
@@ -36,48 +36,48 @@ |
||
| 36 | 36 | use Symfony\Component\Console\Output\OutputInterface; |
| 37 | 37 | |
| 38 | 38 | class Add extends Base { |
| 39 | - public function __construct( |
|
| 40 | - protected IGroupManager $groupManager, |
|
| 41 | - ) { |
|
| 42 | - parent::__construct(); |
|
| 43 | - } |
|
| 39 | + public function __construct( |
|
| 40 | + protected IGroupManager $groupManager, |
|
| 41 | + ) { |
|
| 42 | + parent::__construct(); |
|
| 43 | + } |
|
| 44 | 44 | |
| 45 | - protected function configure() { |
|
| 46 | - $this |
|
| 47 | - ->setName('group:add') |
|
| 48 | - ->setDescription('Add a group') |
|
| 49 | - ->addArgument( |
|
| 50 | - 'groupid', |
|
| 51 | - InputArgument::REQUIRED, |
|
| 52 | - 'Group id' |
|
| 53 | - ) |
|
| 54 | - ->addOption( |
|
| 55 | - 'display-name', |
|
| 56 | - null, |
|
| 57 | - InputOption::VALUE_REQUIRED, |
|
| 58 | - 'Group name used in the web UI (can contain any characters)' |
|
| 59 | - ); |
|
| 60 | - } |
|
| 45 | + protected function configure() { |
|
| 46 | + $this |
|
| 47 | + ->setName('group:add') |
|
| 48 | + ->setDescription('Add a group') |
|
| 49 | + ->addArgument( |
|
| 50 | + 'groupid', |
|
| 51 | + InputArgument::REQUIRED, |
|
| 52 | + 'Group id' |
|
| 53 | + ) |
|
| 54 | + ->addOption( |
|
| 55 | + 'display-name', |
|
| 56 | + null, |
|
| 57 | + InputOption::VALUE_REQUIRED, |
|
| 58 | + 'Group name used in the web UI (can contain any characters)' |
|
| 59 | + ); |
|
| 60 | + } |
|
| 61 | 61 | |
| 62 | - protected function execute(InputInterface $input, OutputInterface $output): int { |
|
| 63 | - $gid = $input->getArgument('groupid'); |
|
| 64 | - $group = $this->groupManager->get($gid); |
|
| 65 | - if ($group) { |
|
| 66 | - $output->writeln('<error>Group "' . $gid . '" already exists.</error>'); |
|
| 67 | - return 1; |
|
| 68 | - } else { |
|
| 69 | - $group = $this->groupManager->createGroup($gid); |
|
| 70 | - if (!$group instanceof IGroup) { |
|
| 71 | - $output->writeln('<error>Could not create group</error>'); |
|
| 72 | - return 2; |
|
| 73 | - } |
|
| 74 | - $output->writeln('Created group "' . $group->getGID() . '"'); |
|
| 62 | + protected function execute(InputInterface $input, OutputInterface $output): int { |
|
| 63 | + $gid = $input->getArgument('groupid'); |
|
| 64 | + $group = $this->groupManager->get($gid); |
|
| 65 | + if ($group) { |
|
| 66 | + $output->writeln('<error>Group "' . $gid . '" already exists.</error>'); |
|
| 67 | + return 1; |
|
| 68 | + } else { |
|
| 69 | + $group = $this->groupManager->createGroup($gid); |
|
| 70 | + if (!$group instanceof IGroup) { |
|
| 71 | + $output->writeln('<error>Could not create group</error>'); |
|
| 72 | + return 2; |
|
| 73 | + } |
|
| 74 | + $output->writeln('Created group "' . $group->getGID() . '"'); |
|
| 75 | 75 | |
| 76 | - $displayName = trim((string)$input->getOption('display-name')); |
|
| 77 | - if ($displayName !== '') { |
|
| 78 | - $group->setDisplayName($displayName); |
|
| 79 | - } |
|
| 80 | - } |
|
| 81 | - return 0; |
|
| 82 | - } |
|
| 76 | + $displayName = trim((string)$input->getOption('display-name')); |
|
| 77 | + if ($displayName !== '') { |
|
| 78 | + $group->setDisplayName($displayName); |
|
| 79 | + } |
|
| 80 | + } |
|
| 81 | + return 0; |
|
| 82 | + } |
|
| 83 | 83 | } |
@@ -32,10 +32,10 @@ |
||
| 32 | 32 | * @since 18.0.0 |
| 33 | 33 | */ |
| 34 | 34 | interface IUrl { |
| 35 | - /** |
|
| 36 | - * returns a URL that is related to the entity, e.g. the link to a share |
|
| 37 | - * |
|
| 38 | - * @since 18.0.0 |
|
| 39 | - */ |
|
| 40 | - public function getUrl(): string; |
|
| 35 | + /** |
|
| 36 | + * returns a URL that is related to the entity, e.g. the link to a share |
|
| 37 | + * |
|
| 38 | + * @since 18.0.0 |
|
| 39 | + */ |
|
| 40 | + public function getUrl(): string; |
|
| 41 | 41 | } |
@@ -32,10 +32,10 @@ |
||
| 32 | 32 | * @since 18.0.0 |
| 33 | 33 | */ |
| 34 | 34 | interface IDisplayName { |
| 35 | - /** |
|
| 36 | - * returns the end user facing name of the object related to the entity |
|
| 37 | - * |
|
| 38 | - * @since 18.0.0 |
|
| 39 | - */ |
|
| 40 | - public function getDisplayName(): string; |
|
| 35 | + /** |
|
| 36 | + * returns the end user facing name of the object related to the entity |
|
| 37 | + * |
|
| 38 | + * @since 18.0.0 |
|
| 39 | + */ |
|
| 40 | + public function getDisplayName(): string; |
|
| 41 | 41 | } |
@@ -32,11 +32,11 @@ |
||
| 32 | 32 | * @since 18.0.0 |
| 33 | 33 | */ |
| 34 | 34 | interface IIcon { |
| 35 | - /** |
|
| 36 | - * returns a URL to an icon that is related to the entity, for instance |
|
| 37 | - * a group icon for groups. |
|
| 38 | - * |
|
| 39 | - * @since 18.0.0 |
|
| 40 | - */ |
|
| 41 | - public function getIconUrl(): string; |
|
| 35 | + /** |
|
| 36 | + * returns a URL to an icon that is related to the entity, for instance |
|
| 37 | + * a group icon for groups. |
|
| 38 | + * |
|
| 39 | + * @since 18.0.0 |
|
| 40 | + */ |
|
| 41 | + public function getIconUrl(): string; |
|
| 42 | 42 | } |
@@ -37,24 +37,24 @@ |
||
| 37 | 37 | * @method string getNodeName() |
| 38 | 38 | */ |
| 39 | 39 | class TransferOwnership extends Entity { |
| 40 | - /** @var string */ |
|
| 41 | - protected $sourceUser; |
|
| 40 | + /** @var string */ |
|
| 41 | + protected $sourceUser; |
|
| 42 | 42 | |
| 43 | - /** @var string */ |
|
| 44 | - protected $targetUser; |
|
| 43 | + /** @var string */ |
|
| 44 | + protected $targetUser; |
|
| 45 | 45 | |
| 46 | - /** @var integer */ |
|
| 47 | - protected $fileId; |
|
| 46 | + /** @var integer */ |
|
| 47 | + protected $fileId; |
|
| 48 | 48 | |
| 49 | - /** @var string */ |
|
| 50 | - protected $nodeName; |
|
| 49 | + /** @var string */ |
|
| 50 | + protected $nodeName; |
|
| 51 | 51 | |
| 52 | - public function __construct() { |
|
| 53 | - $this->addType('sourceUser', 'string'); |
|
| 54 | - $this->addType('targetUser', 'string'); |
|
| 55 | - $this->addType('fileId', 'integer'); |
|
| 56 | - $this->addType('nodeName', 'string'); |
|
| 57 | - } |
|
| 52 | + public function __construct() { |
|
| 53 | + $this->addType('sourceUser', 'string'); |
|
| 54 | + $this->addType('targetUser', 'string'); |
|
| 55 | + $this->addType('fileId', 'integer'); |
|
| 56 | + $this->addType('nodeName', 'string'); |
|
| 57 | + } |
|
| 58 | 58 | |
| 59 | 59 | |
| 60 | 60 | } |