|
9 | 9 |
|
10 | 10 | namespace OCA\Files\AppInfo; |
11 | 11 |
|
| 12 | +use OC\Core\Sharing\Permission\EditSharePermissionPreset; |
| 13 | +use OC\Core\Sharing\Permission\ViewSharePermissionPreset; |
| 14 | +use OC\Core\Sharing\Property\ExpirationDateSharePropertyType; |
| 15 | +use OC\Core\Sharing\Property\LabelSharePropertyType; |
| 16 | +use OC\Core\Sharing\Property\NoteSharePropertyType; |
| 17 | +use OC\Core\Sharing\Property\PasswordSharePropertyType; |
| 18 | +use OC\Core\Sharing\Recipient\TokenShareRecipientType; |
12 | 19 | use OCA\Files\AdvancedCapabilities; |
13 | 20 | use OCA\Files\Capabilities; |
14 | 21 | use OCA\Files\Collaboration\Resources\Listener; |
|
28 | 35 | use OCA\Files\Listener\UserFirstTimeLoggedInListener; |
29 | 36 | use OCA\Files\Notification\Notifier; |
30 | 37 | use OCA\Files\Search\FilesSearchProvider; |
| 38 | +use OCA\Files\Sharing\Permission\NodeCreateSharePermissionType; |
| 39 | +use OCA\Files\Sharing\Permission\NodeDeleteSharePermissionType; |
| 40 | +use OCA\Files\Sharing\Permission\NodeDownloadSharePermissionType; |
| 41 | +use OCA\Files\Sharing\Permission\NodeReadSharePermissionType; |
| 42 | +use OCA\Files\Sharing\Permission\NodeUpdateSharePermissionType; |
| 43 | +use OCA\Files\Sharing\Property\NodeGridViewSharePropertyType; |
| 44 | +use OCA\Files\Sharing\Source\NodeShareSourceType; |
31 | 45 | use OCP\AppFramework\App; |
32 | 46 | use OCP\AppFramework\Bootstrap\IBootContext; |
33 | 47 | use OCP\AppFramework\Bootstrap\IBootstrap; |
|
42 | 56 | use OCP\Files\Events\NodeAddedToFavorite; |
43 | 57 | use OCP\Files\Events\NodeRemovedFromFavorite; |
44 | 58 | use OCP\Interaction\RestrictInteractionEvent; |
| 59 | +use OCP\Server; |
45 | 60 | use OCP\Share\Events\ShareCreatedEvent; |
46 | 61 | use OCP\Share\Events\ShareDeletedEvent; |
47 | 62 | use OCP\Share\Events\ShareDeletedFromSelfEvent; |
| 63 | +use OCP\Sharing\ISharingRegistry; |
48 | 64 | use OCP\User\Events\UserFirstTimeLoggedInEvent; |
49 | 65 |
|
50 | 66 | class Application extends App implements IBootstrap { |
@@ -87,6 +103,35 @@ public function register(IRegistrationContext $context): void { |
87 | 103 | $context->registerConfigLexicon(ConfigLexicon::class); |
88 | 104 |
|
89 | 105 | $context->registerEventListener(RestrictInteractionEvent::class, RestrictInteractionListener::class); |
| 106 | + |
| 107 | + $registry = Server::get(ISharingRegistry::class); |
| 108 | + |
| 109 | + $registry->registerSourceType(Server::get(NodeShareSourceType::class)); |
| 110 | + $registry->markPropertyTypeCompatibleWithSourceType(ExpirationDateSharePropertyType::class, NodeShareSourceType::class); |
| 111 | + $registry->markPropertyTypeCompatibleWithSourceType(LabelSharePropertyType::class, NodeShareSourceType::class); |
| 112 | + $registry->markPropertyTypeCompatibleWithSourceType(NoteSharePropertyType::class, NodeShareSourceType::class); |
| 113 | + $registry->markPropertyTypeCompatibleWithSourceType(PasswordSharePropertyType::class, NodeShareSourceType::class); |
| 114 | + |
| 115 | + $registry->registerPropertyType(new NodeGridViewSharePropertyType()); |
| 116 | + $registry->markPropertyTypeCompatibleWithSourceType(NodeGridViewSharePropertyType::class, NodeShareSourceType::class); |
| 117 | + $registry->markPropertyTypeCompatibleWithRecipientType(NodeGridViewSharePropertyType::class, TokenShareRecipientType::class); |
| 118 | + |
| 119 | + $registry->registerPermissionType(NodeShareSourceType::class, new NodeCreateSharePermissionType()); |
| 120 | + $registry->markPermissionTypeCompatibleWithPermissionPreset(NodeCreateSharePermissionType::class, EditSharePermissionPreset::class); |
| 121 | + |
| 122 | + $registry->registerPermissionType(NodeShareSourceType::class, new NodeReadSharePermissionType()); |
| 123 | + $registry->markPermissionTypeCompatibleWithPermissionPreset(NodeReadSharePermissionType::class, ViewSharePermissionPreset::class); |
| 124 | + $registry->markPermissionTypeCompatibleWithPermissionPreset(NodeReadSharePermissionType::class, EditSharePermissionPreset::class); |
| 125 | + |
| 126 | + $registry->registerPermissionType(NodeShareSourceType::class, new NodeUpdateSharePermissionType()); |
| 127 | + $registry->markPermissionTypeCompatibleWithPermissionPreset(NodeUpdateSharePermissionType::class, EditSharePermissionPreset::class); |
| 128 | + |
| 129 | + $registry->registerPermissionType(NodeShareSourceType::class, new NodeDeleteSharePermissionType()); |
| 130 | + $registry->markPermissionTypeCompatibleWithPermissionPreset(NodeDeleteSharePermissionType::class, EditSharePermissionPreset::class); |
| 131 | + |
| 132 | + $registry->registerPermissionType(NodeShareSourceType::class, new NodeDownloadSharePermissionType()); |
| 133 | + $registry->markPermissionTypeCompatibleWithPermissionPreset(NodeDownloadSharePermissionType::class, ViewSharePermissionPreset::class); |
| 134 | + $registry->markPermissionTypeCompatibleWithPermissionPreset(NodeDownloadSharePermissionType::class, EditSharePermissionPreset::class); |
90 | 135 | } |
91 | 136 |
|
92 | 137 | #[\Override] |
|
0 commit comments