diff --git a/appinfo/routes.php b/appinfo/routes.php index 07439625..e99b9d01 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -47,6 +47,7 @@ return [ //Sharing stuff ['name' => 'share#search', 'url' => '/api/v2/sharing/search', 'verb' => 'POST'], + ['name' => 'share#getVaultsByUser', 'url' => '/api/v2/sharing/vaults/{user_id}', 'verb' => 'GET'], //Internal API diff --git a/controller/sharecontroller.php b/controller/sharecontroller.php index 15368d23..571c7ffb 100644 --- a/controller/sharecontroller.php +++ b/controller/sharecontroller.php @@ -11,6 +11,7 @@ namespace OCA\Passman\Controller; +use OCA\Passman\Db\Vault; use OCP\IRequest; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\ApiController; @@ -30,7 +31,7 @@ class ShareController extends ApiController { private $activityService; private $groupManager; private $userManager; - + private $vaultService; private $limit = 50; private $offset = 0; @@ -41,13 +42,15 @@ class ShareController extends ApiController { IUser $UserId, IGroupManager $groupManager, IUserManager $userManager, - ActivityService $activityService + ActivityService $activityService, + VaultService $vaultService ) { parent::__construct($AppName, $request); $this->userId = $UserId; $this->userManager = $userManager; $this->groupManager = $groupManager; $this->activityService = $activityService; + $this->vaultService = $vaultService; } @@ -96,6 +99,24 @@ class ShareController extends ApiController { } + /** + * @NoAdminRequired + */ + public function getVaultsByUser($user_id){ + $user_vaults = $this->vaultService->getByUser($user_id); + $result = array(); + foreach($user_vaults as $vault){ + array_push($result, + array( + 'vault_id' => $vault, + 'guid' => $vault->getGuid(), + 'public_sharing_key' => $vault->getPublicSharingKey(), + 'user_id' => $user_id, + )); + } + return new JSONResponse($result); + } + public function share($credential){ $link = ''; diff --git a/js/app/services/shareservice.js b/js/app/services/shareservice.js index 9e2a5e91..75080135 100644 --- a/js/app/services/shareservice.js +++ b/js/app/services/shareservice.js @@ -25,6 +25,16 @@ angular.module('passmanApp') } }); }, + getVaultsByUser: function (userId) { + var queryUrl = OC.generateUrl('apps/passman/api/v2/sharing/vaults/'+ userId); + return $http.get(queryUrl, {search: string}).then(function (response) { + if (response.data) { + return response.data; + } else { + return response; + } + }); + }, generateRSAKeys: function(key_length, progress, callback){ var p = new C_Promise(function(){ var state = forge.pki.rsa.createKeyPairGenerationState(key_length, 0x10001);