mirror of
https://github.com/nextcloud/passman.git
synced 2025-11-12 15:11:19 +08:00
Merge branch 'nc27'
Signed-off-by: binsky <timo@binsky.org>
This commit is contained in:
commit
727a07d5f3
32 changed files with 168 additions and 219 deletions
|
|
@ -1,14 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Nextcloud - passman
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later. See the COPYING file.
|
||||
*
|
||||
* @author Sander Brand <brantje@gmail.com>
|
||||
* @copyright Sander Brand 2016
|
||||
*/
|
||||
|
||||
namespace OCA\Passman\AppInfo;
|
||||
|
||||
|
||||
|
|
@ -37,12 +37,12 @@ For an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)
|
|||
<screenshot small-thumbnail="https://img.passman.cc/thumbs/share_credential.png">https://img.passman.cc/share_credential.png</screenshot>
|
||||
<screenshot small-thumbnail="https://img.passman.cc/thumbs/password_audit.png">https://img.passman.cc/password_audit.png</screenshot>
|
||||
<dependencies>
|
||||
<php min-version="7.4"/>
|
||||
<php min-version="8.0"/>
|
||||
<database>sqlite</database>
|
||||
<database>pgsql</database>
|
||||
<database min-version="5.5">mysql</database>
|
||||
<lib>openssl</lib>
|
||||
<nextcloud min-version="20" max-version="26"/>
|
||||
<nextcloud min-version="26" max-version="27"/>
|
||||
</dependencies>
|
||||
|
||||
<background-jobs>
|
||||
|
|
@ -55,6 +55,14 @@ For an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)
|
|||
</post-migration>
|
||||
</repair-steps>
|
||||
|
||||
<navigations>
|
||||
<navigation>
|
||||
<name>Passwords</name>
|
||||
<route>passman.Page.index</route>
|
||||
<order>10</order>
|
||||
</navigation>
|
||||
</navigations>
|
||||
|
||||
<settings>
|
||||
<admin>OCA\Passman\Settings\Admin</admin>
|
||||
</settings>
|
||||
|
|
|
|||
|
|
@ -19,88 +19,88 @@
|
|||
*/
|
||||
return [
|
||||
'routes' => [
|
||||
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
|
||||
['name' => 'page#bookmarklet', 'url' => '/bookmarklet', 'verb' => 'GET'],
|
||||
['name' => 'page#publicSharePage', 'url' => '/share/public', 'verb' => 'GET'],
|
||||
['name' => 'Page#index', 'url' => '/', 'verb' => 'GET'],
|
||||
['name' => 'Page#bookmarklet', 'url' => '/bookmarklet', 'verb' => 'GET'],
|
||||
['name' => 'Page#publicSharePage', 'url' => '/share/public', 'verb' => 'GET'],
|
||||
|
||||
//Vault
|
||||
['name' => 'vault#listVaults', 'url' => '/api/v2/vaults', 'verb' => 'GET'],
|
||||
['name' => 'vault#create', 'url' => '/api/v2/vaults', 'verb' => 'POST'],
|
||||
['name' => 'vault#get', 'url' => '/api/v2/vaults/{vault_guid}', 'verb' => 'GET'],
|
||||
['name' => 'vault#update', 'url' => '/api/v2/vaults/{vault_guid}', 'verb' => 'PATCH'],
|
||||
['name' => 'vault#delete', 'url' => '/api/v2/vaults/{vault_guid}', 'verb' => 'DELETE'],
|
||||
['name' => 'Vault#listVaults', 'url' => '/api/v2/vaults', 'verb' => 'GET'],
|
||||
['name' => 'Vault#create', 'url' => '/api/v2/vaults', 'verb' => 'POST'],
|
||||
['name' => 'Vault#get', 'url' => '/api/v2/vaults/{vault_guid}', 'verb' => 'GET'],
|
||||
['name' => 'Vault#update', 'url' => '/api/v2/vaults/{vault_guid}', 'verb' => 'PATCH'],
|
||||
['name' => 'Vault#delete', 'url' => '/api/v2/vaults/{vault_guid}', 'verb' => 'DELETE'],
|
||||
//@TODO make frontend use PATCH
|
||||
['name' => 'vault#updateSharingKeys', 'url' => '/api/v2/vaults/{vault_guid}/sharing-keys', 'verb' => 'POST'],
|
||||
['name' => 'Vault#updateSharingKeys', 'url' => '/api/v2/vaults/{vault_guid}/sharing-keys', 'verb' => 'POST'],
|
||||
|
||||
//Credential
|
||||
['name' => 'credential#createCredential', 'url' => '/api/v2/credentials', 'verb' => 'POST'],
|
||||
['name' => 'credential#getCredential', 'url' => '/api/v2/credentials/{credential_guid}', 'verb' => 'GET'],
|
||||
['name' => 'credential#updateCredential', 'url' => '/api/v2/credentials/{credential_guid}', 'verb' => 'PATCH'],
|
||||
['name' => 'credential#deleteCredential', 'url' => '/api/v2/credentials/{credential_guid}', 'verb' => 'DELETE'],
|
||||
['name' => 'Credential#createCredential', 'url' => '/api/v2/credentials', 'verb' => 'POST'],
|
||||
['name' => 'Credential#getCredential', 'url' => '/api/v2/credentials/{credential_guid}', 'verb' => 'GET'],
|
||||
['name' => 'Credential#updateCredential', 'url' => '/api/v2/credentials/{credential_guid}', 'verb' => 'PATCH'],
|
||||
['name' => 'Credential#deleteCredential', 'url' => '/api/v2/credentials/{credential_guid}', 'verb' => 'DELETE'],
|
||||
|
||||
//Revisions
|
||||
['name' => 'credential#getRevision', 'url' => '/api/v2/credentials/{credential_guid}/revision', 'verb' => 'GET'],
|
||||
['name' => 'credential#deleteRevision', 'url' => '/api/v2/credentials/{credential_guid}/revision/{revision_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'credential#updateRevision', 'url' => '/api/v2/credentials/{credential_guid}/revision/{revision_id}', 'verb' => 'PATCH'],
|
||||
['name' => 'Credential#getRevision', 'url' => '/api/v2/credentials/{credential_guid}/revision', 'verb' => 'GET'],
|
||||
['name' => 'Credential#deleteRevision', 'url' => '/api/v2/credentials/{credential_guid}/revision/{revision_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'Credential#updateRevision', 'url' => '/api/v2/credentials/{credential_guid}/revision/{revision_id}', 'verb' => 'PATCH'],
|
||||
|
||||
//File stuff
|
||||
['name' => 'file#uploadFile', 'url' => '/api/v2/file', 'verb' => 'POST'],
|
||||
['name' => 'file#getFile', 'url' => '/api/v2/file/{file_id}', 'verb' => 'GET'],
|
||||
['name' => 'file#deleteFile', 'url' => '/api/v2/file/{file_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'file#deleteFiles', 'url' => '/api/v2/files/delete', 'verb' => 'POST'],
|
||||
['name' => 'file#updateFile', 'url' => '/api/v2/file/{file_id}', 'verb' => 'PATCH'],
|
||||
['name' => 'File#uploadFile', 'url' => '/api/v2/file', 'verb' => 'POST'],
|
||||
['name' => 'File#getFile', 'url' => '/api/v2/file/{file_id}', 'verb' => 'GET'],
|
||||
['name' => 'File#deleteFile', 'url' => '/api/v2/file/{file_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'File#deleteFiles', 'url' => '/api/v2/files/delete', 'verb' => 'POST'],
|
||||
['name' => 'File#updateFile', 'url' => '/api/v2/file/{file_id}', 'verb' => 'PATCH'],
|
||||
|
||||
//Sharing stuff
|
||||
['name' => 'share#search', 'url' => '/api/v2/sharing/search', 'verb' => 'POST'],
|
||||
['name' => 'share#getVaultsByUser', 'url' => '/api/v2/sharing/vaults/{user_id}', 'verb' => 'GET'],
|
||||
['name' => 'share#applyIntermediateShare', 'url' => '/api/v2/sharing/share', 'verb' => 'POST'],
|
||||
['name' => 'share#savePendingRequest', 'url' => '/api/v2/sharing/save', 'verb' => 'POST'],
|
||||
['name' => 'share#getPendingRequests', 'url' => '/api/v2/sharing/pending', 'verb' => 'GET'],
|
||||
['name' => 'share#deleteShareRequest', 'url' => '/api/v2/sharing/decline/{share_request_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'share#getVaultItems', 'url' => '/api/v2/sharing/vault/{vault_guid}/get', 'verb' => 'GET'],
|
||||
['name' => 'share#getVaultAclEntries', 'url' => '/api/v2/sharing/vault/{vault_guid}/acl', 'verb' => 'GET'],
|
||||
['name' => 'share#createPublicShare', 'url' => '/api/v2/sharing/public', 'verb' => 'POST'],
|
||||
['name' => 'share#getPublicCredentialData', 'url' => '/api/v2/sharing/credential/{credential_guid}/public', 'verb' => 'GET'],
|
||||
['name' => 'share#unshareCredential', 'url' => '/api/v2/sharing/credential/{item_guid}', 'verb' => 'DELETE'],
|
||||
['name' => 'share#unshareCredentialFromUser', 'url' => '/api/v2/sharing/credential/{item_guid}/{user_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'share#getRevisions', 'url' => '/api/v2/sharing/credential/{item_guid}/revisions', 'verb' => 'GET'],
|
||||
['name' => 'share#getItemAcl', 'url' => '/api/v2/sharing/credential/{item_guid}/acl', 'verb' => 'GET'],
|
||||
['name' => 'share#uploadFile', 'url' => '/api/v2/sharing/credential/{item_guid}/file', 'verb' => 'POST'],
|
||||
['name' => 'share#getFile', 'url' => '/api/v2/sharing/credential/{item_guid}/file/{file_guid}', 'verb' => 'GET'],
|
||||
['name' => 'share#updateSharedCredentialACL', 'url' => '/api/v2/sharing/credential/{item_guid}/acl', 'verb' => 'PATCH'],
|
||||
['name' => 'share#updateSharedCredentialACLSharedKey', 'url' => '/api/v2/sharing/credential/{item_guid}/acl/shared_key', 'verb' => 'PATCH'],
|
||||
['name' => 'internal#getAppVersion', 'url' => '/api/v2/version', 'verb' => 'GET'],
|
||||
['name' => 'Share#search', 'url' => '/api/v2/sharing/search', 'verb' => 'POST'],
|
||||
['name' => 'Share#getVaultsByUser', 'url' => '/api/v2/sharing/vaults/{user_id}', 'verb' => 'GET'],
|
||||
['name' => 'Share#applyIntermediateShare', 'url' => '/api/v2/sharing/share', 'verb' => 'POST'],
|
||||
['name' => 'Share#savePendingRequest', 'url' => '/api/v2/sharing/save', 'verb' => 'POST'],
|
||||
['name' => 'Share#getPendingRequests', 'url' => '/api/v2/sharing/pending', 'verb' => 'GET'],
|
||||
['name' => 'Share#deleteShareRequest', 'url' => '/api/v2/sharing/decline/{share_request_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'Share#getVaultItems', 'url' => '/api/v2/sharing/vault/{vault_guid}/get', 'verb' => 'GET'],
|
||||
['name' => 'Share#getVaultAclEntries', 'url' => '/api/v2/sharing/vault/{vault_guid}/acl', 'verb' => 'GET'],
|
||||
['name' => 'Share#createPublicShare', 'url' => '/api/v2/sharing/public', 'verb' => 'POST'],
|
||||
['name' => 'Share#getPublicCredentialData', 'url' => '/api/v2/sharing/credential/{credential_guid}/public', 'verb' => 'GET'],
|
||||
['name' => 'Share#unshareCredential', 'url' => '/api/v2/sharing/credential/{item_guid}', 'verb' => 'DELETE'],
|
||||
['name' => 'Share#unshareCredentialFromUser', 'url' => '/api/v2/sharing/credential/{item_guid}/{user_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'Share#getRevisions', 'url' => '/api/v2/sharing/credential/{item_guid}/revisions', 'verb' => 'GET'],
|
||||
['name' => 'Share#getItemAcl', 'url' => '/api/v2/sharing/credential/{item_guid}/acl', 'verb' => 'GET'],
|
||||
['name' => 'Share#uploadFile', 'url' => '/api/v2/sharing/credential/{item_guid}/file', 'verb' => 'POST'],
|
||||
['name' => 'Share#getFile', 'url' => '/api/v2/sharing/credential/{item_guid}/file/{file_guid}', 'verb' => 'GET'],
|
||||
['name' => 'Share#updateSharedCredentialACL', 'url' => '/api/v2/sharing/credential/{item_guid}/acl', 'verb' => 'PATCH'],
|
||||
['name' => 'Share#updateSharedCredentialACLSharedKey', 'url' => '/api/v2/sharing/credential/{item_guid}/acl/shared_key', 'verb' => 'PATCH'],
|
||||
['name' => 'Internal#getAppVersion', 'url' => '/api/v2/version', 'verb' => 'GET'],
|
||||
|
||||
//Settings
|
||||
['name' => 'settings#getSettings', 'url' => '/api/v2/settings', 'verb' => 'GET'],
|
||||
['name' => 'settings#saveUserSetting', 'url' => '/api/v2/settings/{key}/{value}', 'verb' => 'POST'],
|
||||
['name' => 'settings#saveAdminSetting', 'url' => '/api/v2/settings/{key}/{value}/admin1/admin2', 'verb' => 'POST'],
|
||||
['name' => 'Settings#getSettings', 'url' => '/api/v2/settings', 'verb' => 'GET'],
|
||||
['name' => 'Settings#saveUserSetting', 'url' => '/api/v2/settings/{key}/{value}', 'verb' => 'POST'],
|
||||
['name' => 'Settings#saveAdminSetting', 'url' => '/api/v2/settings/{key}/{value}/admin1/admin2', 'verb' => 'POST'],
|
||||
|
||||
|
||||
//Translations
|
||||
['name' => 'translation#getLanguageStrings', 'url' => '/api/v2/language', 'verb' => 'GET'],
|
||||
['name' => 'Translation#getLanguageStrings', 'url' => '/api/v2/language', 'verb' => 'GET'],
|
||||
|
||||
|
||||
#Icons
|
||||
['name' => 'icon#getSingleIcon', 'url' => '/api/v2/geticon/{base64Url}', 'verb' => 'GET'],
|
||||
['name' => 'icon#getIcon', 'url' => '/api/v2/icon/{base64Url}', 'verb' => 'GET'],
|
||||
['name' => 'icon#getIcon', 'url' => '/api/v2/icon/{base64Url}/{credentialId}', 'verb' => 'GET'],
|
||||
['name' => 'icon#getLocalIconList', 'url' => '/api/v2/icon/list', 'verb' => 'GET'],
|
||||
['name' => 'Icon#getSingleIcon', 'url' => '/api/v2/geticon/{base64Url}', 'verb' => 'GET'],
|
||||
['name' => 'Icon#getIcon', 'url' => '/api/v2/icon/{base64Url}', 'verb' => 'GET'],
|
||||
['name' => 'Icon#getIcon', 'url' => '/api/v2/icon/{base64Url}/{credentialId}', 'verb' => 'GET'],
|
||||
['name' => 'Icon#getLocalIconList', 'url' => '/api/v2/icon/list', 'verb' => 'GET'],
|
||||
|
||||
//
|
||||
['name' => 'vault#preflighted_cors', 'url' => '/api/v2/{path}', 'verb' => 'OPTIONS', 'requirements' => array('path' => '.+')],
|
||||
['name' => 'Vault#preflighted_cors', 'url' => '/api/v2/{path}', 'verb' => 'OPTIONS', 'requirements' => array('path' => '.+')],
|
||||
//Internal API
|
||||
['name' => 'internal#remind', 'url' => '/api/internal/notifications/remind/{credential_id}', 'verb' => 'POST'],
|
||||
['name' => 'internal#read', 'url' => '/api/internal/notifications/read/{credential_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'internal#getAppVersion', 'url' => '/api/internal/version', 'verb' => 'GET'],
|
||||
['name' => 'internal#generatePerson', 'url' => '/api/internal/generate_person', 'verb' => 'GET'],
|
||||
['name' => 'Internal#remind', 'url' => '/api/internal/notifications/remind/{credential_id}', 'verb' => 'POST'],
|
||||
['name' => 'Internal#read', 'url' => '/api/internal/notifications/read/{credential_id}', 'verb' => 'DELETE'],
|
||||
['name' => 'Internal#getAppVersion', 'url' => '/api/internal/version', 'verb' => 'GET'],
|
||||
['name' => 'Internal#generatePerson', 'url' => '/api/internal/generate_person', 'verb' => 'GET'],
|
||||
|
||||
//Admin routes
|
||||
['name' => 'admin#searchUser', 'url' => '/admin/search', 'verb' => 'GET'],
|
||||
['name' => 'admin#moveCredentials', 'url' => '/admin/move', 'verb' => 'POST'],
|
||||
['name' => 'admin#requestDeletion', 'url' => '/admin/request-deletion/{vault_guid}', 'verb' => 'POST'],
|
||||
['name' => 'admin#deleteRequestDeletion', 'url' => '/admin/request-deletion/{vault_guid}', 'verb' => 'DELETE'],
|
||||
['name' => 'admin#listRequests', 'url' => '/admin/delete-requests', 'verb' => 'GET'],
|
||||
['name' => 'admin#acceptRequestDeletion', 'url' => '/admin/accept-delete-request', 'verb' => 'POST'],
|
||||
['name' => 'Admin#searchUser', 'url' => '/admin/search', 'verb' => 'GET'],
|
||||
['name' => 'Admin#moveCredentials', 'url' => '/admin/move', 'verb' => 'POST'],
|
||||
['name' => 'Admin#requestDeletion', 'url' => '/admin/request-deletion/{vault_guid}', 'verb' => 'POST'],
|
||||
['name' => 'Admin#deleteRequestDeletion', 'url' => '/admin/request-deletion/{vault_guid}', 'verb' => 'DELETE'],
|
||||
['name' => 'Admin#listRequests', 'url' => '/admin/delete-requests', 'verb' => 'GET'],
|
||||
['name' => 'Admin#acceptRequestDeletion', 'url' => '/admin/accept-delete-request', 'verb' => 'POST'],
|
||||
]
|
||||
];
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -46,9 +46,6 @@ use OCP\AppFramework\Bootstrap\IBootstrap;
|
|||
use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IL10N;
|
||||
use OCP\INavigationManager;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUserManager;
|
||||
use OCP\IUserSession;
|
||||
use OCP\Notification\IManager;
|
||||
|
|
@ -127,32 +124,9 @@ class Application extends App implements IBootstrap {
|
|||
|
||||
public function boot(IBootContext $context): void {
|
||||
/** @var IManager $manager */
|
||||
$manager = $context->getAppContainer()->get(IManager::class);
|
||||
$manager = $context->getAppContainer()->query(IManager::class);
|
||||
$manager->registerNotifierService(Notifier::class);
|
||||
|
||||
Util::addTranslations(self::APP_ID);
|
||||
$this->registerNavigationEntry();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the navigation entry
|
||||
*/
|
||||
public function registerNavigationEntry() {
|
||||
$c = $this->getContainer();
|
||||
/** @var INavigationManager $navigationManager */
|
||||
$navigationManager = $c->get(INavigationManager::class);
|
||||
|
||||
$navigationEntry = function () use ($c) {
|
||||
/** @var IURLGenerator $urlGenerator */
|
||||
$urlGenerator = $c->get(IURLGenerator::class);
|
||||
return [
|
||||
'id' => $c->getAppName(),
|
||||
'order' => 10,
|
||||
'name' => $c->get(IL10N::class)->t('Passwords'),
|
||||
'href' => $urlGenerator->linkToRoute('passman.page.index'),
|
||||
'icon' => $urlGenerator->imagePath($c->getAppName(), 'app.svg'),
|
||||
];
|
||||
};
|
||||
$navigationManager->add($navigationEntry);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,8 +23,9 @@
|
|||
|
||||
namespace OCA\Passman\BackgroundJob;
|
||||
|
||||
use OC\BackgroundJob\TimedJob;
|
||||
use OCA\Passman\Service\CronService;
|
||||
use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\BackgroundJob\TimedJob;
|
||||
use OCP\IConfig;
|
||||
|
||||
/**
|
||||
|
|
@ -34,22 +35,21 @@ use OCP\IConfig;
|
|||
*/
|
||||
class ExpireCredentials extends TimedJob {
|
||||
|
||||
protected IConfig $config;
|
||||
private CronService $cronService;
|
||||
|
||||
/**
|
||||
* ExpireCredentials constructor.
|
||||
*
|
||||
* @param ITimeFactory $timeFactory
|
||||
* @param IConfig $config
|
||||
* @param CronService $cronService
|
||||
*/
|
||||
public function __construct(IConfig $config, CronService $cronService) {
|
||||
public function __construct(ITimeFactory $timeFactory, protected IConfig $config, private CronService $cronService) {
|
||||
parent::__construct($timeFactory);
|
||||
|
||||
// Run once per minute
|
||||
$this->setInterval(60);
|
||||
$this->config = $config;
|
||||
$this->cronService = $cronService;
|
||||
}
|
||||
|
||||
protected function run($argument) {
|
||||
protected function run($argument): void {
|
||||
$this->cronService->expireCredentials();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,15 +15,15 @@ use OCA\Passman\Db\Credential;
|
|||
use OCA\Passman\Db\CredentialRevision;
|
||||
use OCA\Passman\Db\DeleteVaultRequest;
|
||||
use OCA\Passman\Service\CredentialRevisionService;
|
||||
use OCA\Passman\Service\CredentialService;
|
||||
use OCA\Passman\Service\DeleteVaultRequestService;
|
||||
use OCA\Passman\Service\FileService;
|
||||
use OCA\Passman\Service\VaultService;
|
||||
use OCA\Passman\Utility\Utils;
|
||||
use OCP\AppFramework\ApiController;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\IConfig;
|
||||
use OCP\IRequest;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\ApiController;
|
||||
use OCA\Passman\Service\CredentialService;
|
||||
use OCP\IUserManager;
|
||||
|
||||
|
||||
|
|
@ -13,7 +13,6 @@ namespace OCA\Passman\Controller;
|
|||
|
||||
use OCA\Passman\Service\FileService;
|
||||
use OCP\AppFramework\ApiController;
|
||||
use OCP\AppFramework\Db\DoesNotExistException;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\IRequest;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
|
@ -11,19 +11,16 @@
|
|||
|
||||
namespace OCA\Passman\Controller;
|
||||
|
||||
use OCP\IRequest;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCA\Passman\AppInfo\Application;
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\IRequest;
|
||||
use OCP\Util;
|
||||
|
||||
class PageController extends Controller {
|
||||
|
||||
|
||||
private $userId;
|
||||
|
||||
public function __construct($AppName, IRequest $request, $UserId){
|
||||
parent::__construct($AppName, $request);
|
||||
$this->userId = $UserId;
|
||||
public function __construct(IRequest $request) {
|
||||
parent::__construct(Application::APP_ID, $request);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -37,8 +34,7 @@ class PageController extends Controller {
|
|||
* @NoCSRFRequired
|
||||
*/
|
||||
public function index() {
|
||||
$params = ['user' => $this->userId];
|
||||
return new TemplateResponse('passman', 'main', $params); // templates/main.php
|
||||
return new TemplateResponse($this->appName, 'main'); // templates/main.php
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -48,7 +44,7 @@ class PageController extends Controller {
|
|||
*/
|
||||
public function bookmarklet($url='', $title='') {
|
||||
$params = array('url' => $url, 'title' => $title);
|
||||
return new TemplateResponse('passman', 'bookmarklet', $params);
|
||||
return new TemplateResponse($this->appName, 'bookmarklet', $params);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -57,7 +53,7 @@ class PageController extends Controller {
|
|||
* @PublicPage
|
||||
*/
|
||||
public function publicSharePage() {
|
||||
return new TemplateResponse('passman', 'public_share');
|
||||
return new TemplateResponse($this->appName, 'public_share');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -11,13 +11,12 @@
|
|||
|
||||
namespace OCA\Passman\Controller;
|
||||
|
||||
use OCP\IL10N;
|
||||
use OCP\Settings\ISettings;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\ApiController;
|
||||
use OCP\IRequest;
|
||||
use OCA\Passman\Service\SettingsService;
|
||||
use OCP\AppFramework\ApiController;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\IL10N;
|
||||
use OCP\IRequest;
|
||||
|
||||
class SettingsController extends ApiController {
|
||||
private $userId;
|
||||
|
|
@ -11,10 +11,10 @@
|
|||
|
||||
namespace OCA\Passman\Controller;
|
||||
|
||||
use OCP\IRequest;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\ApiController;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\IL10N;
|
||||
use OCP\IRequest;
|
||||
|
||||
class TranslationController extends ApiController {
|
||||
private $trans;
|
||||
|
|
@ -19,7 +19,6 @@ use OCA\Passman\Service\SettingsService;
|
|||
use OCA\Passman\Service\VaultService;
|
||||
use OCA\Passman\Utility\NotFoundJSONResponse;
|
||||
use OCP\AppFramework\ApiController;
|
||||
use OCP\AppFramework\Db\DoesNotExistException;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\IRequest;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
|
@ -4,7 +4,7 @@ namespace OCA\Passman\Middleware;
|
|||
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use \OCP\AppFramework\Middleware;
|
||||
use OCP\AppFramework\Middleware;
|
||||
use OCP\IRequest;
|
||||
|
||||
class APIMiddleware extends Middleware {
|
||||
|
|
@ -19,6 +19,8 @@ class APIMiddleware extends Middleware {
|
|||
if($response instanceof JSONResponse){
|
||||
if(isset($this->request->server['HTTP_ORIGIN'])) {
|
||||
$response->addHeader('Access-Control-Allow-Origin', $this->request->server['HTTP_ORIGIN']);
|
||||
} else {
|
||||
$response->addHeader('Access-Control-Allow-Origin', '*');
|
||||
}
|
||||
}
|
||||
return parent::afterController($controller, $methodName, $response);
|
||||
|
|
@ -4,9 +4,9 @@ namespace OCA\Passman\Middleware;
|
|||
|
||||
use OCA\Passman\Controller\ShareController;
|
||||
use OCA\Passman\Service\SettingsService;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use \OCP\AppFramework\Middleware;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\Middleware;
|
||||
|
||||
class ShareMiddleware extends Middleware {
|
||||
|
||||
|
|
@ -90,7 +90,7 @@ class Provider implements IProvider {
|
|||
$this->urlGenerator->imagePath(Application::APP_ID, 'app.svg'),
|
||||
$Credential->getLabel(),
|
||||
\sprintf("Part of Passman vault %s", $Vault->getName()),
|
||||
$this->urlGenerator->linkToRoute('passman.page.index') . "#/vault/" . $Vault->getGuid() . "?show=" . $Credential->getGuid()
|
||||
$this->urlGenerator->linkToRoute('passman.Page.index') . "#/vault/" . $Vault->getGuid() . "?show=" . $Credential->getGuid()
|
||||
);
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* Javascripts
|
||||
*/
|
||||
|
|
@ -104,7 +105,6 @@ script('passman', 'exporters/exporter-csv');
|
|||
script('passman', 'exporters/exporter-json');
|
||||
/*build-js-end*/
|
||||
|
||||
|
||||
/*
|
||||
* Styles
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
<div class="main_list credential-revisions" off-click-filter="'.download-js-link, .sidebar-shown, #app-sidebar'">
|
||||
<div id="passman-controls">
|
||||
<div class="actions creatable">
|
||||
<div class="breadcrumb">
|
||||
<div class="crumb svg crumbhome">
|
||||
<ul class="breadcrumb">
|
||||
<li class="crumb svg crumbhome">
|
||||
<a ng-click="logout()" class="icon-home">Home</a>
|
||||
<span style="display: none;"></span>
|
||||
</div>
|
||||
<div class="crumb svg">
|
||||
</li>
|
||||
<li class="crumb svg">
|
||||
<a ng-click="cancelRevision()">{{active_vault.name}}</a>
|
||||
</div>
|
||||
<div class="crumb svg last">
|
||||
</li>
|
||||
<li class="crumb svg last">
|
||||
<a ng-if="storedCredential.credential_id">{{ 'showing.revisions' | translate}} "{{storedCredential.label}}"</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<table class="credential-table" ng-init="menuOpen = false;">
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
<div id="passman-controls">
|
||||
<div class="breadcrumb">
|
||||
<div class="breadcrumb">
|
||||
<div class="crumb svg crumbhome">
|
||||
<ul class="breadcrumb">
|
||||
<li class="crumb svg crumbhome">
|
||||
<a ng-click="logout()" class="icon-home">Home</a>
|
||||
<span style="display: none;"></span>
|
||||
</div>
|
||||
<div class="crumb svg" data-dir="/Test">
|
||||
</li>
|
||||
<li class="crumb svg" data-dir="/Test">
|
||||
<a ng-click="cancel()">{{ active_vault.name }}</a>
|
||||
</div>
|
||||
<div class="crumb svg last" data-dir="/Test">
|
||||
</li>
|
||||
<li class="crumb svg last" data-dir="/Test">
|
||||
<a ng-if="storedCredential.credential_id">{{ 'edit.credential' | translate }}
|
||||
"{{ storedCredential.label }}"</a>
|
||||
<a ng-if="!storedCredential.credential_id">{{ 'create.credential' | translate }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
<div id="passman-controls">
|
||||
<div class="breadcrumb">
|
||||
<div class="breadcrumb">
|
||||
<div class="crumb svg crumbhome">
|
||||
<ul class="breadcrumb">
|
||||
<li class="crumb svg crumbhome">
|
||||
<a ng-click="logout()" class="icon-home">Home</a>
|
||||
<span style="display: none;"></span>
|
||||
</div>
|
||||
<div class="crumb svg">
|
||||
</li>
|
||||
<li class="crumb svg">
|
||||
<a ng-click="cancel()">{{ active_vault.name }}</a>
|
||||
</div>
|
||||
<div class="crumb svg last">
|
||||
</li>
|
||||
<li class="crumb svg last">
|
||||
<a>{{ 'settings' | translate }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,19 +1,19 @@
|
|||
<div id="passman-controls">
|
||||
<div class="actions creatable">
|
||||
<div class="breadcrumb">
|
||||
<div class="crumb svg crumbhome">
|
||||
<ul class="breadcrumb">
|
||||
<li class="crumb svg crumbhome">
|
||||
<a ng-click="logout()" class="icon-home">Home</a>
|
||||
<span style="display: none;"></span>
|
||||
</div>
|
||||
<div class="crumb svg" data-dir="/Test">
|
||||
</li>
|
||||
<li class="crumb svg" data-dir="/Test">
|
||||
<a ng-click="cancel()">{{ active_vault.name }}</a>
|
||||
</div>
|
||||
<div class="crumb svg last" data-dir="/Test">
|
||||
</li>
|
||||
<li class="crumb svg last" data-dir="/Test">
|
||||
<a ng-if="storedCredential.credential_id">
|
||||
{{ 'share.credential' | translate }} {{ storedCredential.label }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="app-sidebar-tabs">
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
<div class="main_list" off-click-filter="'.download-js-link, .sidebar-shown, #app-sidebar'">
|
||||
<div id="passman-controls" ng-class="{ 'sidebar-shown': selectedCredential }">
|
||||
<div class="breadcrumb">
|
||||
<div class="breadcrumb">
|
||||
<div class="crumb svg crumbhome">
|
||||
<ul class="breadcrumb">
|
||||
<li class="crumb svg crumbhome">
|
||||
<a ng-click="logout()" class="icon-home">Home</a>
|
||||
<span style="display: none;"></span>
|
||||
</div>
|
||||
<div class="crumb svg" ng-click="clearState()">
|
||||
</li>
|
||||
<li class="crumb svg" ng-click="clearState()">
|
||||
<a>{{active_vault.name}}</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="addCredential" ng-hide="delete_time>0">
|
||||
<button ng-click="addCredential()"><i class="fa fa-plus"></i></button>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -23,19 +23,9 @@
|
|||
|
||||
namespace OCA\Passman\Controller;
|
||||
|
||||
use OCA\Comments\Activity\Setting;
|
||||
use OCA\Passman\Service\ActivityService;
|
||||
use OCA\Passman\Service\CredentialService;
|
||||
use OCA\Passman\Service\FileService;
|
||||
use OCA\Passman\Service\NotificationService;
|
||||
use OCA\Passman\Service\SettingsService;
|
||||
use OCA\Passman\Service\ShareService;
|
||||
use OCA\Passman\Service\VaultService;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IUserManager;
|
||||
use PHPUnit_Framework_TestCase;
|
||||
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use PHPUnit_Framework_TestCase;
|
||||
|
||||
/**
|
||||
* Class FileControllerTest
|
||||
|
|
|
|||
|
|
@ -23,9 +23,8 @@
|
|||
|
||||
namespace OCA\Passman\Controller;
|
||||
|
||||
use PHPUnit_Framework_TestCase;
|
||||
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use PHPUnit_Framework_TestCase;
|
||||
|
||||
/**
|
||||
* Class InternalControllerTest
|
||||
|
|
|
|||
|
|
@ -23,9 +23,8 @@
|
|||
|
||||
namespace OCA\Passman\Controller;
|
||||
|
||||
use PHPUnit_Framework_TestCase;
|
||||
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use PHPUnit_Framework_TestCase;
|
||||
|
||||
/**
|
||||
* Class PageControllerTest
|
||||
|
|
|
|||
|
|
@ -23,11 +23,10 @@
|
|||
|
||||
namespace OCA\Passman\Controller;
|
||||
|
||||
use OCA\Passman\Service\SettingsService;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\IConfig;
|
||||
use PHPUnit_Framework_TestCase;
|
||||
use OCA\Passman\Service\SettingsService;
|
||||
|
||||
/**
|
||||
* Class SettingsControllerTest
|
||||
|
|
|
|||
|
|
@ -27,9 +27,8 @@ use OCA\Passman\Service\CredentialService;
|
|||
use OCA\Passman\Service\DeleteVaultRequestService;
|
||||
use OCA\Passman\Service\SettingsService;
|
||||
use OCA\Passman\Service\VaultService;
|
||||
use PHPUnit_Framework_TestCase;
|
||||
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use PHPUnit_Framework_TestCase;
|
||||
|
||||
/**
|
||||
* Class VaultControllerTest
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue