diff --git a/apps/PasswordManager/Api/Node/Share/PublicShare.php b/apps/PasswordManager/Api/Node/Share/Public/PublicShare.php
similarity index 66%
rename from apps/PasswordManager/Api/Node/Share/PublicShare.php
rename to apps/PasswordManager/Api/Node/Share/Public/PublicShare.php
index ac8291f8..da9ce807 100755
--- a/apps/PasswordManager/Api/Node/Share/PublicShare.php
+++ b/apps/PasswordManager/Api/Node/Share/Public/PublicShare.php
@@ -19,15 +19,20 @@
* along with this program. If not, see .
*/
-namespace KSA\PasswordManager\Api\Node\Share;
+namespace KSA\PasswordManager\Api\Node\Share\Public;
+use Doctrine\DBAL\Exception;
+use Keestash\Exception\User\UserNotFoundException;
use KSA\PasswordManager\Entity\IResponseCodes;
use KSA\PasswordManager\Entity\Share\NullShare;
use KSA\PasswordManager\Exception\PasswordManagerException;
use KSA\PasswordManager\Repository\Node\NodeRepository;
use KSA\PasswordManager\Repository\PublicShareRepository;
+use KSA\PasswordManager\Service\AccessService;
use KSA\PasswordManager\Service\Node\Share\ShareService;
use KSP\Api\IResponse;
+use KSP\Api\IVerb;
+use KSP\Core\DTO\Token\IToken;
use KSP\Core\Service\HTTP\IResponseService;
use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ResponseInterface;
@@ -47,10 +52,52 @@ public function __construct(
, private PublicShareRepository $shareRepository
, private LoggerInterface $logger
, private IResponseService $responseService
+ , private AccessService $accessService
) {
}
public function handle(ServerRequestInterface $request): ResponseInterface {
+ return match (strtolower($request->getMethod())) {
+ IVerb::POST => $this->handlePost($request),
+ IVerb::DELETE => $this->handleDelete($request),
+ default => new JsonResponse([], IResponse::BAD_REQUEST),
+ };
+ }
+
+ private function handleDelete(ServerRequestInterface $request): ResponseInterface {
+ try {
+ $parameters = (array) $request->getParsedBody();
+ $shareId = $parameters["shareId"] ?? null;
+ /** @var IToken $token */
+ $token = $request->getAttribute(IToken::class);
+
+ if ($shareId === null) {
+ return new JsonResponse([], IResponse::BAD_REQUEST);
+ }
+
+ $share = $this->shareRepository->getShareById($shareId);
+
+ if (
+ $share instanceof NullShare
+ || $this->shareService->isExpired($share)
+ ) {
+ return new JsonResponse([], IResponse::NOT_FOUND);
+ }
+
+ $node = $this->nodeRepository->getNode($share->getNodeId(), 0, 0);
+ if (false === $this->accessService->hasAccess($node, $token->getUser())) {
+ return new JsonResponse([], IResponse::FORBIDDEN);
+ }
+
+ $this->shareRepository->remove($share);
+ return new JsonResponse([], IResponse::OK);
+ } catch (Exception|PasswordManagerException|UserNotFoundException $e) {
+ $this->logger->error('error deleting public share', ['e' => $e]);
+ return new JsonResponse([], IResponse::NOT_IMPLEMENTED);
+ }
+ }
+
+ private function handlePost(ServerRequestInterface $request): ResponseInterface {
try {
$parameters = (array) $request->getParsedBody();
diff --git a/apps/PasswordManager/Api/Node/Share/PublicShareSingle.php b/apps/PasswordManager/Api/Node/Share/Public/PublicShareSingle.php
similarity index 98%
rename from apps/PasswordManager/Api/Node/Share/PublicShareSingle.php
rename to apps/PasswordManager/Api/Node/Share/Public/PublicShareSingle.php
index 2765f9a9..8e753383 100755
--- a/apps/PasswordManager/Api/Node/Share/PublicShareSingle.php
+++ b/apps/PasswordManager/Api/Node/Share/Public/PublicShareSingle.php
@@ -19,7 +19,7 @@
* along with this program. If not, see .
*/
-namespace KSA\PasswordManager\Api\Node\Share;
+namespace KSA\PasswordManager\Api\Node\Share\Public;
use DateTimeImmutable;
use Exception;
diff --git a/apps/PasswordManager/Api/Node/Share/Remove.php b/apps/PasswordManager/Api/Node/Share/Regular/Remove.php
similarity index 96%
rename from apps/PasswordManager/Api/Node/Share/Remove.php
rename to apps/PasswordManager/Api/Node/Share/Regular/Remove.php
index 774dedf8..418341ee 100755
--- a/apps/PasswordManager/Api/Node/Share/Remove.php
+++ b/apps/PasswordManager/Api/Node/Share/Regular/Remove.php
@@ -19,7 +19,7 @@
* along with this program. If not, see .
*/
-namespace KSA\PasswordManager\Api\Node\Share;
+namespace KSA\PasswordManager\Api\Node\Share\Regular;
use Keestash\Api\Response\JsonResponse;
use KSA\PasswordManager\Repository\Node\NodeRepository;
diff --git a/apps/PasswordManager/Api/Node/Share/Share.php b/apps/PasswordManager/Api/Node/Share/Regular/Share.php
similarity index 98%
rename from apps/PasswordManager/Api/Node/Share/Share.php
rename to apps/PasswordManager/Api/Node/Share/Regular/Share.php
index 3c52dd6c..332eabeb 100755
--- a/apps/PasswordManager/Api/Node/Share/Share.php
+++ b/apps/PasswordManager/Api/Node/Share/Regular/Share.php
@@ -19,7 +19,7 @@
* along with this program. If not, see .
*/
-namespace KSA\PasswordManager\Api\Node\Share;
+namespace KSA\PasswordManager\Api\Node\Share\Regular;
use Exception;
use Keestash\Api\Response\JsonResponse;
diff --git a/apps/PasswordManager/Api/Node/Share/ShareableUsers.php b/apps/PasswordManager/Api/Node/Share/Regular/ShareableUsers.php
similarity index 98%
rename from apps/PasswordManager/Api/Node/Share/ShareableUsers.php
rename to apps/PasswordManager/Api/Node/Share/Regular/ShareableUsers.php
index d9f51bf0..692151cd 100755
--- a/apps/PasswordManager/Api/Node/Share/ShareableUsers.php
+++ b/apps/PasswordManager/Api/Node/Share/Regular/ShareableUsers.php
@@ -12,7 +12,7 @@
* the Keestash software and contains warranty information and liability disclaimers.
*/
-namespace KSA\PasswordManager\Api\Node\Share;
+namespace KSA\PasswordManager\Api\Node\Share\Regular;
use doganoo\PHPAlgorithms\Datastructure\Lists\ArrayList\ArrayList;
use Keestash\Core\DTO\Http\JWT\Audience;
diff --git a/apps/PasswordManager/Exception/Node/Share/ShareException.php b/apps/PasswordManager/Exception/Node/Share/ShareException.php
new file mode 100644
index 00000000..34b39473
--- /dev/null
+++ b/apps/PasswordManager/Exception/Node/Share/ShareException.php
@@ -0,0 +1,28 @@
+
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published
+ * by the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+namespace KSA\PasswordManager\Exception\Node\Share;
+
+use KSA\PasswordManager\Exception\PasswordManagerException;
+
+class ShareException extends PasswordManagerException {
+
+}
diff --git a/apps/PasswordManager/Factory/Api/Node/Share/PublicShareFactory.php b/apps/PasswordManager/Factory/Api/Node/Share/PublicShareFactory.php
index d46ea0a4..55210c3a 100644
--- a/apps/PasswordManager/Factory/Api/Node/Share/PublicShareFactory.php
+++ b/apps/PasswordManager/Factory/Api/Node/Share/PublicShareFactory.php
@@ -21,9 +21,10 @@
namespace KSA\PasswordManager\Factory\Api\Node\Share;
-use KSA\PasswordManager\Api\Node\Share\PublicShare;
+use KSA\PasswordManager\Api\Node\Share\Public\PublicShare;
use KSA\PasswordManager\Repository\Node\NodeRepository;
use KSA\PasswordManager\Repository\PublicShareRepository;
+use KSA\PasswordManager\Service\AccessService;
use KSA\PasswordManager\Service\Node\Share\ShareService;
use KSP\Core\Service\HTTP\IResponseService;
use Psr\Container\ContainerInterface;
@@ -38,6 +39,7 @@ public function __invoke(ContainerInterface $container): PublicShare {
, $container->get(PublicShareRepository::class)
, $container->get(LoggerInterface::class)
, $container->get(IResponseService::class)
+ , $container->get(AccessService::class)
);
}
diff --git a/apps/PasswordManager/Factory/Api/Node/Share/PublicShareSingleFactory.php b/apps/PasswordManager/Factory/Api/Node/Share/PublicShareSingleFactory.php
index 98720d54..0de9621d 100644
--- a/apps/PasswordManager/Factory/Api/Node/Share/PublicShareSingleFactory.php
+++ b/apps/PasswordManager/Factory/Api/Node/Share/PublicShareSingleFactory.php
@@ -21,7 +21,7 @@
namespace KSA\PasswordManager\Factory\Api\Node\Share;
-use KSA\PasswordManager\Api\Node\Share\PublicShareSingle;
+use KSA\PasswordManager\Api\Node\Share\Public\PublicShareSingle;
use KSA\PasswordManager\Repository\Node\NodeRepository;
use KSA\PasswordManager\Repository\PublicShareRepository;
use KSA\PasswordManager\Service\Node\Credential\CredentialService;
diff --git a/apps/PasswordManager/Factory/Api/Node/Share/RemoveFactory.php b/apps/PasswordManager/Factory/Api/Node/Share/RemoveFactory.php
index 391d8a92..d62d8c74 100644
--- a/apps/PasswordManager/Factory/Api/Node/Share/RemoveFactory.php
+++ b/apps/PasswordManager/Factory/Api/Node/Share/RemoveFactory.php
@@ -21,7 +21,7 @@
namespace KSA\PasswordManager\Factory\Api\Node\Share;
-use KSA\PasswordManager\Api\Node\Share\Remove;
+use KSA\PasswordManager\Api\Node\Share\Regular\Remove;
use KSA\PasswordManager\Repository\Node\NodeRepository;
use Psr\Container\ContainerInterface;
@@ -33,4 +33,4 @@ public function __invoke(ContainerInterface $container): Remove {
);
}
-}
\ No newline at end of file
+}
diff --git a/apps/PasswordManager/Factory/Api/Node/Share/ShareFactory.php b/apps/PasswordManager/Factory/Api/Node/Share/ShareFactory.php
index 535c2db3..8a73065b 100644
--- a/apps/PasswordManager/Factory/Api/Node/Share/ShareFactory.php
+++ b/apps/PasswordManager/Factory/Api/Node/Share/ShareFactory.php
@@ -21,7 +21,7 @@
namespace KSA\PasswordManager\Factory\Api\Node\Share;
-use KSA\PasswordManager\Api\Node\Share\Share;
+use KSA\PasswordManager\Api\Node\Share\Regular\Share;
use KSA\PasswordManager\Repository\Node\NodeRepository;
use KSA\PasswordManager\Service\Node\NodeService;
use KSA\PasswordManager\Service\Node\Share\ShareService;
diff --git a/apps/PasswordManager/Factory/Api/Node/ShareableUsersFactory.php b/apps/PasswordManager/Factory/Api/Node/ShareableUsersFactory.php
index ee11c6ab..3a76c69c 100644
--- a/apps/PasswordManager/Factory/Api/Node/ShareableUsersFactory.php
+++ b/apps/PasswordManager/Factory/Api/Node/ShareableUsersFactory.php
@@ -21,7 +21,7 @@
namespace KSA\PasswordManager\Factory\Api\Node;
-use KSA\PasswordManager\Api\Node\Share\ShareableUsers;
+use KSA\PasswordManager\Api\Node\Share\Regular\ShareableUsers;
use KSA\PasswordManager\Repository\Node\NodeRepository;
use KSP\Core\Repository\User\IUserRepository;
use KSP\Core\Service\HTTP\IJWTService;
@@ -39,4 +39,4 @@ public function __invoke(ContainerInterface $container): ShareableUsers {
);
}
-}
\ No newline at end of file
+}
diff --git a/apps/PasswordManager/Repository/PublicShareRepository.php b/apps/PasswordManager/Repository/PublicShareRepository.php
index e157b833..4104a88b 100755
--- a/apps/PasswordManager/Repository/PublicShareRepository.php
+++ b/apps/PasswordManager/Repository/PublicShareRepository.php
@@ -27,6 +27,7 @@
use KSA\PasswordManager\Entity\Node\Node;
use KSA\PasswordManager\Entity\Share\NullShare;
use KSA\PasswordManager\Entity\Share\PublicShare;
+use KSA\PasswordManager\Exception\Node\Share\ShareException;
use KSA\PasswordManager\Exception\PasswordManagerException;
use KSP\Core\Backend\IBackend;
use KSP\Core\DTO\User\IUser;
@@ -115,6 +116,42 @@ public function getShare(string $hash): PublicShare {
}
+ public function getShareById(int $id): PublicShare {
+ $queryBuilder = $this->backend->getConnection()->createQueryBuilder();
+ $queryBuilder->select(
+ [
+ 's.id'
+ , 's.hash'
+ , 's.expire_ts'
+ , 's.node_id'
+ ]
+ )
+ ->from('pwm_public_share', 's')
+ ->where('s.`id` = ?')
+ ->setParameter(0, $id);
+
+ $result = $queryBuilder->executeQuery();
+ $rows = $result->fetchAllNumeric();
+
+ if (0 === count($rows)) {
+ return new NullShare();
+ }
+
+ $row = $rows[0];
+ $shareId = $row[0];
+ $shareHash = $row[1];
+ $expireTs = $row[2];
+ $nodeId = $row[3];
+
+ return new PublicShare(
+ (int) $shareId,
+ (int) $nodeId,
+ (string) $shareHash,
+ $this->dateTimeService->fromFormat($expireTs)
+ );
+
+ }
+
public function getShareByNode(Node $node): PublicShare {
$queryBuilder = $this->backend->getConnection()->createQueryBuilder();
$queryBuilder->select(
@@ -209,6 +246,20 @@ public function removeByUser(IUser $user): bool {
}
}
+ public function remove(PublicShare $share): PublicShare {
+ try {
+ $queryBuilder = $this->backend->getConnection()->createQueryBuilder();
+ $queryBuilder->delete('pwm_public_share', 'pps')
+ ->where('id = ?')
+ ->setParameter(0, $share->getId())
+ ->executeStatement();
+ return $share;
+ } catch (Exception $e) {
+ $this->logger->warning('can not remove users public share', ['share' => $share, 'exception' => $e]);
+ throw new ShareException();
+ }
+ }
+
public function removeOutdated(): bool {
$now = $this->dateTimeService->toYMDHIS(new DateTimeImmutable());
try {
diff --git a/apps/PasswordManager/Test/Integration/Api/Node/Share/PublicShareSingleTest.php b/apps/PasswordManager/Test/Integration/Api/Node/Share/Public/PublicShareSingleTest.php
similarity index 97%
rename from apps/PasswordManager/Test/Integration/Api/Node/Share/PublicShareSingleTest.php
rename to apps/PasswordManager/Test/Integration/Api/Node/Share/Public/PublicShareSingleTest.php
index 8d420ef6..faba269a 100644
--- a/apps/PasswordManager/Test/Integration/Api/Node/Share/PublicShareSingleTest.php
+++ b/apps/PasswordManager/Test/Integration/Api/Node/Share/Public/PublicShareSingleTest.php
@@ -19,9 +19,9 @@
* along with this program. If not, see .
*/
-namespace Integration\Api\Node\Share;
+namespace Integration\Api\Node\Share\Public;
-use KSA\PasswordManager\Api\Node\Share\PublicShareSingle;
+use KSA\PasswordManager\Api\Node\Share\Public\PublicShareSingle;
use KSA\PasswordManager\Entity\Share\PublicShare;
use KSA\PasswordManager\Repository\PublicShareRepository;
use KSA\PasswordManager\Service\Node\Credential\CredentialService;
diff --git a/apps/PasswordManager/Test/Integration/Api/Node/Share/PublicShareTest.php b/apps/PasswordManager/Test/Integration/Api/Node/Share/Public/PublicShareTest.php
similarity index 98%
rename from apps/PasswordManager/Test/Integration/Api/Node/Share/PublicShareTest.php
rename to apps/PasswordManager/Test/Integration/Api/Node/Share/Public/PublicShareTest.php
index 8f7ab012..730d915b 100644
--- a/apps/PasswordManager/Test/Integration/Api/Node/Share/PublicShareTest.php
+++ b/apps/PasswordManager/Test/Integration/Api/Node/Share/Public/PublicShareTest.php
@@ -19,10 +19,10 @@
* along with this program. If not, see .
*/
-namespace Integration\Api\Node\Share;
+namespace Integration\Api\Node\Share\Public;
use DateTime;
-use KSA\PasswordManager\Api\Node\Share\PublicShare;
+use KSA\PasswordManager\Api\Node\Share\Public\PublicShare;
use KSA\PasswordManager\ConfigProvider;
use KSA\PasswordManager\Entity\IResponseCodes;
use KSA\PasswordManager\Service\Node\Credential\CredentialService;
diff --git a/apps/PasswordManager/Test/Integration/Api/Node/Share/RemoveTest.php b/apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/RemoveTest.php
similarity index 96%
rename from apps/PasswordManager/Test/Integration/Api/Node/Share/RemoveTest.php
rename to apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/RemoveTest.php
index 4c81d52a..d66eef66 100644
--- a/apps/PasswordManager/Test/Integration/Api/Node/Share/RemoveTest.php
+++ b/apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/RemoveTest.php
@@ -19,9 +19,9 @@
* along with this program. If not, see .
*/
-namespace Integration\Api\Node\Share;
+namespace Integration\Api\Node\Share\Regular;
-use KSA\PasswordManager\Api\Node\Share\Remove;
+use KSA\PasswordManager\Api\Node\Share\Regular\Remove;
use KSA\PasswordManager\Repository\PublicShareRepository;
use KSA\PasswordManager\Service\Node\Share\ShareService;
use KSA\PasswordManager\Test\Integration\TestCase;
diff --git a/apps/PasswordManager/Test/Integration/Api/Node/Share/ShareTest.php b/apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/ShareTest.php
similarity index 98%
rename from apps/PasswordManager/Test/Integration/Api/Node/Share/ShareTest.php
rename to apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/ShareTest.php
index d5ee0d36..4450bf17 100644
--- a/apps/PasswordManager/Test/Integration/Api/Node/Share/ShareTest.php
+++ b/apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/ShareTest.php
@@ -19,9 +19,9 @@
* along with this program. If not, see .
*/
-namespace Integration\Api\Node\Share;
+namespace Integration\Api\Node\Share\Regular;
-use KSA\PasswordManager\Api\Node\Share\Share;
+use KSA\PasswordManager\Api\Node\Share\Regular\Share;
use KSA\PasswordManager\Test\Integration\TestCase;
use Ramsey\Uuid\Uuid;
diff --git a/apps/PasswordManager/Test/Integration/Api/Node/ShareableUsersTest.php b/apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/ShareableUsersTest.php
similarity index 93%
rename from apps/PasswordManager/Test/Integration/Api/Node/ShareableUsersTest.php
rename to apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/ShareableUsersTest.php
index 67dcc50a..52c6c3ea 100644
--- a/apps/PasswordManager/Test/Integration/Api/Node/ShareableUsersTest.php
+++ b/apps/PasswordManager/Test/Integration/Api/Node/Share/Regular/ShareableUsersTest.php
@@ -19,9 +19,9 @@
* along with this program. If not, see .
*/
-namespace KSA\PasswordManager\Test\Integration\Api\Node;
+namespace Integration\Api\Node\Share\Regular;
-use KSA\PasswordManager\Api\Node\Share\ShareableUsers;
+use KSA\PasswordManager\Api\Node\Share\Regular\ShareableUsers;
use KSA\PasswordManager\Entity\Node\Credential\Credential;
use KSA\PasswordManager\Repository\Node\NodeRepository;
use KSA\PasswordManager\Test\Integration\TestCase;
@@ -44,4 +44,4 @@ public function testShareableUsers(): void {
$this->assertTrue(true === $this->getResponseService()->isValidResponse($response));
}
-}
\ No newline at end of file
+}
diff --git a/apps/PasswordManager/config/api_router.php b/apps/PasswordManager/config/api_router.php
index 0ee40200..ae104382 100644
--- a/apps/PasswordManager/config/api_router.php
+++ b/apps/PasswordManager/config/api_router.php
@@ -41,11 +41,11 @@
use KSA\PasswordManager\Api\Node\Pwned\ChartData;
use KSA\PasswordManager\Api\Node\Pwned\IsActive;
use KSA\PasswordManager\Api\Node\Search;
-use KSA\PasswordManager\Api\Node\Share\PublicShare;
-use KSA\PasswordManager\Api\Node\Share\PublicShareSingle;
-use KSA\PasswordManager\Api\Node\Share\Remove as RemoveShare;
-use KSA\PasswordManager\Api\Node\Share\Share;
-use KSA\PasswordManager\Api\Node\Share\ShareableUsers;
+use KSA\PasswordManager\Api\Node\Share\Public\PublicShare;
+use KSA\PasswordManager\Api\Node\Share\Public\PublicShareSingle;
+use KSA\PasswordManager\Api\Node\Share\Regular\Remove as RemoveShare;
+use KSA\PasswordManager\Api\Node\Share\Regular\Share;
+use KSA\PasswordManager\Api\Node\Share\Regular\ShareableUsers;
use KSA\PasswordManager\ConfigProvider;
use KSA\PasswordManager\Middleware\NodeAccessMiddleware;
use KSP\Api\IRoute;
@@ -95,6 +95,12 @@
, IRoute::METHOD => IVerb::POST
, IRoute::NAME => PublicShare::class
],
+ [
+ IRoute::PATH => ConfigProvider::PASSWORD_MANAGER_PUBLIC_SHARE_PUBLIC
+ , IRoute::MIDDLEWARE => [NodeAccessMiddleware::class, PublicShare::class]
+ , IRoute::METHOD => IVerb::DELETE
+ , IRoute::NAME => PublicShare::class . '@' . IVerb::DELETE
+ ],
[
IRoute::PATH => ConfigProvider::PASSWORD_MANAGER_PUBLIC_SHARE_REMOVE
, IRoute::MIDDLEWARE => [NodeAccessMiddleware::class, RemoveShare::class]
diff --git a/apps/PasswordManager/config/dependencies.php b/apps/PasswordManager/config/dependencies.php
index 71d806fe..d64aade8 100644
--- a/apps/PasswordManager/config/dependencies.php
+++ b/apps/PasswordManager/config/dependencies.php
@@ -44,10 +44,10 @@
use KSA\PasswordManager\Api\Node\Pwned\ChartData;
use KSA\PasswordManager\Api\Node\Pwned\IsActive;
use KSA\PasswordManager\Api\Node\Search;
-use KSA\PasswordManager\Api\Node\Share\PublicShare;
-use KSA\PasswordManager\Api\Node\Share\PublicShareSingle;
-use KSA\PasswordManager\Api\Node\Share\Share;
-use KSA\PasswordManager\Api\Node\Share\ShareableUsers;
+use KSA\PasswordManager\Api\Node\Share\Public\PublicShare;
+use KSA\PasswordManager\Api\Node\Share\Public\PublicShareSingle;
+use KSA\PasswordManager\Api\Node\Share\Regular\Share;
+use KSA\PasswordManager\Api\Node\Share\Regular\ShareableUsers;
use KSA\PasswordManager\Command\Node\Credential\CreateCredential;
use KSA\PasswordManager\Command\Node\Dump;
use KSA\PasswordManager\Command\Node\DumpAll;
@@ -140,28 +140,28 @@
ConfigProvider::FACTORIES => [
// api
// ---- comment
- AddComment::class => AddCommentFactory::class
- , Get::class => GetFactory::class
- , Remove::class => RemoveFactory::class
+ AddComment::class => AddCommentFactory::class
+ , Get::class => GetFactory::class
+ , Remove::class => RemoveFactory::class
// ---- generate
- , Generate::class => GenerateFactory::class
- , Quality::class => QualityFactory::class
+ , Generate::class => GenerateFactory::class
+ , Quality::class => QualityFactory::class
// ---- PublicShare
- , PublicShare::class => PublicShareFactory::class
- , PublicShareSingle::class => PublicShareSingleFactory::class
- , \KSA\PasswordManager\Api\Node\Share\Remove::class => \KSA\PasswordManager\Factory\Api\Node\Share\RemoveFactory::class
- , Share::class => ShareFactory::class
+ , PublicShare::class => PublicShareFactory::class
+ , PublicShareSingle::class => PublicShareSingleFactory::class
+ , \KSA\PasswordManager\Api\Node\Share\Regular\Remove::class => \KSA\PasswordManager\Factory\Api\Node\Share\RemoveFactory::class
+ , Share::class => ShareFactory::class
// ---- Node
- , \KSA\PasswordManager\Api\Node\Get\Get::class => \KSA\PasswordManager\Factory\Api\Node\Get\GetFactory::class
- , Alpha::class => AlphaFactory::class
- , Beta::class => BetaFactory::class
- , GetByName::class => GetByNameFactory::class
- , Move::class => MoveFactory::class
- , ShareableUsers::class => ShareableUsersFactory::class
- , Delete::class => DeleteFactory::class
+ , \KSA\PasswordManager\Api\Node\Get\Get::class => \KSA\PasswordManager\Factory\Api\Node\Get\GetFactory::class
+ , Alpha::class => AlphaFactory::class
+ , Beta::class => BetaFactory::class
+ , GetByName::class => GetByNameFactory::class
+ , Move::class => MoveFactory::class
+ , ShareableUsers::class => ShareableUsersFactory::class
+ , Delete::class => DeleteFactory::class
, \KSA\PasswordManager\Api\Node\Folder\Update::class => \KSA\PasswordManager\Factory\Api\Node\UpdateFactory::class
, ListAll::class => ListAllFactory::class