Skip to content

Commit 81c0b3f

Browse files
committed
Expose capability for locking
Signed-off-by: Julius Härtl <jus@bitgrid.net>
1 parent 5fd18fc commit 81c0b3f

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,19 @@ Administrators can also lock files using the `./occ` command:
2626

2727
## API
2828

29+
### Capability
30+
31+
If locking is available the app will expose itself through the capabilties endpoint under the files key:
32+
```
33+
curl http://admin:admin@nextcloud.local/ocs/v1.php/cloud/capabilities\?format\=json -H 'OCS-APIRequest: true' \
34+
| jq .ocs.data.capabilities.files
35+
{
36+
...
37+
"locking": "1.0",
38+
...
39+
}
40+
```
41+
2942
### Fetching lock details
3043

3144
WebDAV returns the following additional properties if requests through a `PROPFIND`:

lib/AppInfo/Application.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
use OCA\DAV\Connector\Sabre\CachingTree;
3636
use OCA\DAV\Connector\Sabre\ObjectTree;
3737
use OCA\Files\Event\LoadAdditionalScriptsEvent;
38+
use OCA\FilesLock\Capability;
3839
use OCA\FilesLock\Listeners\LoadAdditionalScripts;
3940
use OCA\FilesLock\Plugins\FilesLockPlugin;
4041
use OCA\FilesLock\Service\FileService;
@@ -91,6 +92,7 @@ public function __construct(array $params = array()) {
9192
* @param IRegistrationContext $context
9293
*/
9394
public function register(IRegistrationContext $context): void {
95+
$context->registerCapability(Capability::class);
9496
$context->registerEventListener(
9597
LoadAdditionalScriptsEvent::class,
9698
LoadAdditionalScripts::class

lib/Capability.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace OCA\FilesLock;
4+
5+
use OCP\Capabilities\ICapability;
6+
7+
class Capability implements ICapability {
8+
9+
public function getCapabilities() {
10+
return [
11+
'files' => [
12+
'locking' => '1.0',
13+
]
14+
];
15+
}
16+
17+
}

0 commit comments

Comments
 (0)