* [FIX] Fixed wrong behavior when copying account password from history to clipboard. Thanks to @@josedo_3010 for testing!

This commit is contained in:
nuxsmin
2018-04-03 20:57:05 +02:00
parent a7c48c9393
commit d2dd98e0b4
18 changed files with 233 additions and 104 deletions

View File

@@ -169,12 +169,6 @@
<text>Ver Clave</text>
<route>account/viewPass</route>
</action>
<action multiple="1">
<id>105</id>
<name>ACCOUNT_VIEW_HISTORY</name>
<text>Ver Historial</text>
<route>account/viewHistory</route>
</action>
<action multiple="1">
<id>106</id>
<name>ACCOUNT_EDIT_PASS</name>
@@ -253,6 +247,24 @@
<text>Eliminar Favorito</text>
<route>accountFavorite/unmark</route>
</action>
<action multiple="1">
<id>140</id>
<name>ACCOUNT_HISTORY_VIEW</name>
<text>Ver Historial</text>
<route>account/viewHistory</route>
</action>
<action multiple="1">
<id>141</id>
<name>ACCOUNT_HISTORY_VIEW_PASS</name>
<text>Ver Clave</text>
<route>account/viewPassHistory</route>
</action>
<action multiple="1">
<id>142</id>
<name>ACCOUNT_HISTORY_COPY_PASS</name>
<text>Copiar Clave</text>
<route>account/copyPassHistory</route>
</action>
<action multiple="1">
<id>200</id>
<name>WIKI_VIEW</name>

View File

@@ -459,7 +459,7 @@ class AccountController extends ControllerBase implements CrudControllerInterfac
$accountHistoryData = $accountHistoryService->getById($id);
$accountHistoryHelper = $this->dic->get(AccountHistoryHelper::class);
$accountHistoryHelper->setView($accountHistoryData, ActionsInterface::ACCOUNT_VIEW_HISTORY);
$accountHistoryHelper->setView($accountHistoryData, ActionsInterface::ACCOUNT_HISTORY_VIEW);
$this->view->addTemplate('account-history');
@@ -522,15 +522,14 @@ class AccountController extends ControllerBase implements CrudControllerInterfac
* Display account's password
*
* @param int $id Account's ID
* @param int $isHistory The account's ID refers to history
* @param int $parentId
*/
public function viewPassAction($id, $isHistory, $parentId)
public function viewPassAction($id, $parentId)
{
try {
$accountPassHelper = $this->dic->get(AccountPasswordHelper::class);
$account = $isHistory === 0 ? $this->accountService->getPasswordForId($id) : $this->accountService->getPasswordHistoryForId($id);
$account = $this->accountService->getPasswordForId($id);
$this->view->assign('isLinked', $parentId > 0);
@@ -541,7 +540,7 @@ class AccountController extends ControllerBase implements CrudControllerInterfac
'html' => $this->render()
];
if ($isHistory === 0) $this->accountService->incrementDecryptCounter($id);
$this->accountService->incrementDecryptCounter($id);
$this->eventDispatcher->notifyEvent('show.account.pass',
new Event($this, EventMessage::factory()
@@ -557,22 +556,56 @@ class AccountController extends ControllerBase implements CrudControllerInterfac
}
}
/**
* Display account's password
*
* @param int $id Account's ID
*/
public function viewPassHistoryAction($id)
{
try {
$accountPassHelper = $this->dic->get(AccountPasswordHelper::class);
$account = $this->accountService->getPasswordHistoryForId($id);
$this->view->assign('isLinked', 0);
$data = [
'acclogin' => $account->getLogin(),
'accpass' => $accountPassHelper->getPassword($account, $this->acl, AccountPasswordHelper::TYPE_FULL),
'useimage' => $this->configData->isAccountPassToImage(),
'html' => $this->render()
];
$this->eventDispatcher->notifyEvent('show.account.pass.history',
new Event($this, EventMessage::factory()
->addDescription(__u('Clave visualizada'))
->addDetail(__u('Cuenta'), $account->getName()))
);
$this->returnJsonResponseData($data);
} catch (\Exception $e) {
processException($e);
$this->returnJsonResponseException($e);
}
}
/**
* Copy account's password
*
* @param int $id Account's ID
* @param int $isHistory The account's ID refers to history
* @throws Helpers\HelperException
* @throws SPException
* @throws \Defuse\Crypto\Exception\CryptoException
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
*/
public function copyPassAction($id, $isHistory)
public function copyPassAction($id)
{
$accountPassHelper = $this->dic->get(AccountPasswordHelper::class);
$account = $isHistory === 0 ? $this->accountService->getPasswordForId($id) : $this->accountService->getPasswordHistoryForId($id);
$account = $this->accountService->getPasswordForId($id);
$data = [
'accpass' => $accountPassHelper->getPassword($account, $this->acl, AccountPasswordHelper::TYPE_NORMAL),
@@ -587,6 +620,35 @@ class AccountController extends ControllerBase implements CrudControllerInterfac
$this->returnJsonResponseData($data);
}
/**
* Copy account's password
*
* @param int $id Account's ID
* @throws Helpers\HelperException
* @throws SPException
* @throws \Defuse\Crypto\Exception\CryptoException
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
*/
public function copyPassHistoryAction($id)
{
$accountPassHelper = $this->dic->get(AccountPasswordHelper::class);
$account = $this->accountService->getPasswordHistoryForId($id);
$data = [
'accpass' => $accountPassHelper->getPassword($account, $this->acl, AccountPasswordHelper::TYPE_NORMAL),
];
$this->eventDispatcher->notifyEvent('copy.account.pass.history',
new Event($this, EventMessage::factory()
->addDescription(__u('Clave copiada'))
->addDetail(__u('Cuenta'), $account->getName()))
);
$this->returnJsonResponseData($data);
}
/**
* Saves copy action
*/

View File

@@ -273,23 +273,21 @@ class AccountActionsHelper extends HelperBase
}
if ($accountAcl->isShowViewPass()) {
$actionViewPass = $this->getViewPassAction();
$actionCopy = $this->getCopyPassAction();
if ($accountActionsDto->isHistory()) {
$actionViewPass = $this->getViewPassHistoryAction()
->addData('item-id', $accountActionsDto->getAccountHistoryId());
$actionCopy = $this->getCopyPassHistoryAction()
->addData('item-id', $accountActionsDto->getAccountHistoryId());
} else {
$actionViewPass = $this->getViewPassAction()
->addData('item-id', $accountActionsDto->getAccountId());
$actionCopy = $this->getCopyPassAction()
->addData('item-id', $accountActionsDto->getAccountId());
}
$actionViewPass->addData('parent-id', $accountActionsDto->getAccountParentId());
$actionCopy->addData('parent-id', $accountActionsDto->getAccountParentId());
$actionViewPass->addData('history', (int)$accountActionsDto->isHistory());
$actionCopy->addData('history', (int)$accountActionsDto->isHistory());
if ($accountActionsDto->isHistory()) {
$actionViewPass->addData('item-id', $accountActionsDto->getAccountHistoryId());
$actionCopy->addData('item-id', $accountActionsDto->getAccountHistoryId());
} else {
$actionViewPass->addData('item-id', $accountActionsDto->getAccountId());
$actionCopy->addData('item-id', $accountActionsDto->getAccountId());
}
$actions[] = $actionViewPass;
$actions[] = $actionCopy;
}
@@ -362,6 +360,51 @@ class AccountActionsHelper extends HelperBase
return $action;
}
/**
* @return DataGridAction
*/
public function getViewPassHistoryAction()
{
$action = new DataGridAction();
$action->setId(ActionsInterface::ACCOUNT_VIEW_PASS);
$action->setType(DataGridActionType::VIEW_ITEM);
$action->setName(__('Ver Clave'));
$action->setTitle(__('Ver Clave'));
$action->addClass('btn-action');
$action->setIcon($this->icons->getIconViewPass());
$action->setRuntimeFilter(AccountSearchItem::class, 'isShowViewPass');
$action->addData('action-route', Acl::getActionRoute(ActionsInterface::ACCOUNT_HISTORY_VIEW_PASS));
$action->addData('action-full', 1);
$action->addData('action-sk', $this->sk);
$action->addData('onclick', Acl::getActionRoute(ActionsInterface::ACCOUNT_HISTORY_VIEW_PASS));
$action->addAttribute('type', 'button');
return $action;
}
/**
* @return DataGridAction
*/
public function getCopyPassHistoryAction()
{
$action = new DataGridAction();
$action->setId(ActionsInterface::ACCOUNT_VIEW_PASS);
$action->setType(DataGridActionType::VIEW_ITEM);
$action->setName(__('Copiar Clave en Portapapeles'));
$action->setTitle(__('Copiar Clave en Portapapeles'));
$action->addClass('btn-action');
$action->addClass('clip-pass-button');
$action->setIcon($this->icons->getIconClipboard());
$action->setRuntimeFilter(AccountSearchItem::class, 'isShowCopyPass');
$action->addData('action-route', Acl::getActionRoute(ActionsInterface::ACCOUNT_HISTORY_COPY_PASS));
$action->addData('action-full', 0);
$action->addData('action-sk', $this->sk);
$action->addData('useclipboard', '1');
$action->addAttribute('type', 'button');
return $action;
}
/**
* @return DataGridAction
*/
@@ -389,16 +432,14 @@ class AccountActionsHelper extends HelperBase
*/
public function getCopyPassAction()
{
// Añadir la clase para usar el portapapeles
$ClipboardIcon = $this->icons->getIconClipboard()->setClass('clip-pass-button');
$action = new DataGridAction();
$action->setId(ActionsInterface::ACCOUNT_VIEW_PASS);
$action->setType(DataGridActionType::VIEW_ITEM);
$action->setName(__('Copiar Clave en Portapapeles'));
$action->setTitle(__('Copiar Clave en Portapapeles'));
$action->addClass('btn-action');
$action->setIcon($ClipboardIcon);
$action->addClass('clip-pass-button');
$action->setIcon($this->icons->getIconClipboard());
$action->setRuntimeFilter(AccountSearchItem::class, 'isShowCopyPass');
$action->addData('action-route', Acl::getActionRoute(ActionsInterface::ACCOUNT_COPY_PASS));
$action->addData('action-full', 0);

View File

@@ -107,8 +107,8 @@ class AccountHistoryHelper extends HelperBase
$accountActionsHelper = $this->dic->get(AccountActionsHelper::class);
$this->view->assign('accountActions', $accountActionsHelper->getActionsForAccount($this->accountAcl, new AccountActionsDto($this->accountId, $this->accountHistoryId)));
$this->view->assign('accountActionsMenu', $accountActionsHelper->getActionsGrouppedForAccount($this->accountAcl, new AccountActionsDto($this->accountId, $this->accountHistoryId)));
$this->view->assign('accountActions', $accountActionsHelper->getActionsForAccount($this->accountAcl, new AccountActionsDto($this->accountId, $this->accountHistoryId, 0)));
$this->view->assign('accountActionsMenu', $accountActionsHelper->getActionsGrouppedForAccount($this->accountAcl, new AccountActionsDto($this->accountId, $this->accountHistoryId, 0)));
}
/**

View File

@@ -1 +1 @@
.dtp{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.2);z-index:2000;font-size:15px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dtp>.dtp-content{background:#fff;max-width:300px;box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);max-height:520px;position:relative;left:50%}.dtp>.dtp-content>.dtp-date-view>header.dtp-header{background:#607d8b;color:#eceff1;text-align:center;padding:.3em}.dtp div.dtp-date,.dtp div.dtp-time{background:#607d8b;text-align:center;color:#eceff1;padding:10px}.dtp div.dtp-date>div{padding:0;margin:0}.dtp div.dtp-actual-month{font-size:1.5em}.dtp div.dtp-actual-num{font-size:3em;line-height:.9}.dtp div.dtp-actual-maxtime{font-size:3em;line-height:.9}.dtp div.dtp-actual-year{font-size:1.5em;color:#fff}.dtp div.dtp-picker{padding:1em;text-align:center}.dtp div.dtp-picker-month,.dtp div.dtp-actual-time{font-weight:500;text-align:center}.dtp div.dtp-picker-month{padding-bottom:20px!important;text-transform:uppercase!important}.dtp .dtp-close{position:absolute;top:.5em;right:1em}.dtp .dtp-close>a{color:#fff}.dtp .dtp-close>a>i{font-size:1em}.dtp table.dtp-picker-days{margin:0;min-height:251px}.dtp table.dtp-picker-days,.dtp table.dtp-picker-days tr,.dtp table.dtp-picker-days tr>td{border:0}.dtp table.dtp-picker-days tr>td{font-weight:700;text-align:center;padding:.5em}.dtp table.dtp-picker-days tr>td>span.dtp-select-day{color:#bdbdbd!important;padding:.4em .5em .5em .6em}.dtp table.dtp-picker-days tr>td>a,.dtp .dtp-picker-time>a{color:#212121;text-decoration:none;padding:.4em;border-radius:5px!important}.dtp table.dtp-picker-days tr>td>a.selected{background:#607d8b;color:#eceff1}.dtp table.dtp-picker-days tr>th{color:#757575;text-align:center;font-weight:700;padding:.4em .3em}.dtp .p10>a{color:#fff;text-decoration:none}.dtp .p10{width:10%;display:inline-block}.dtp .p20{width:20%;display:inline-block}.dtp .p60{width:60%;display:inline-block}.dtp .p80{width:80%;display:inline-block}.dtp a.dtp-meridien-am,.dtp a.dtp-meridien-pm{position:relative;top:10px;color:#212121;font-weight:500;padding:.7em .5em;border-radius:50%!important;text-decoration:none;background:#eee;font-size:1em}.dtp .dtp-actual-meridien a.selected{background:#607d8b;color:#eceff1}.dtp .dtp-picker-time>.dtp-select-hour{cursor:pointer}.dtp .dtp-picker-time>.dtp-select-minute{cursor:pointer}.dtp .dtp-buttons{padding:0 1em 1em 1em;text-align:right}.dtp.hidden,.dtp .hidden{display:none}.dtp .invisible{visibility:hidden}.dtp .left{float:left}.dtp .right{float:right}.dtp .clearfix{clear:both}.dtp .center{text-align:center}
.dtp{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.2);z-index:2000;font-size:15px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dtp>.dtp-content{background:#fff;max-width:300px;box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);max-height:520px;position:relative;left:50%}.dtp>.dtp-content>.dtp-date-view>header.dtp-header{background:#607d8b;color:#eceff1;text-align:center;padding:.3em}.dtp div.dtp-date,.dtp div.dtp-time{background:#607d8b;text-align:center;color:#eceff1;padding:10px}.dtp div.dtp-date>div{padding:0;margin:0}.dtp div.dtp-actual-month{font-size:1.5em}.dtp div.dtp-actual-num{font-size:3em;line-height:.9}.dtp div.dtp-actual-maxtime{font-size:3em;line-height:.9}.dtp div.dtp-actual-year{font-size:1.5em;color:#fff}.dtp div.dtp-picker{padding:1em;text-align:center}.dtp div.dtp-picker-month,.dtp div.dtp-actual-time{font-weight:500;text-align:center}.dtp div.dtp-picker-month{padding-bottom:20px !important;text-transform:uppercase !important}.dtp .dtp-close{position:absolute;top:.5em;right:1em}.dtp .dtp-close>a{color:#fff}.dtp .dtp-close>a>i{font-size:1em}.dtp table.dtp-picker-days{margin:0;min-height:251px}.dtp table.dtp-picker-days,.dtp table.dtp-picker-days tr,.dtp table.dtp-picker-days tr>td{border:0}.dtp table.dtp-picker-days tr>td{font-weight:700;text-align:center;padding:.5em}.dtp table.dtp-picker-days tr>td>span.dtp-select-day{color:#bdbdbd !important;padding:.4em .5em .5em .6em}.dtp table.dtp-picker-days tr>td>a,.dtp .dtp-picker-time>a{color:#212121;text-decoration:none;padding:.4em;border-radius:5px !important}.dtp table.dtp-picker-days tr>td>a.selected{background:#607d8b;color:#eceff1}.dtp table.dtp-picker-days tr>th{color:#757575;text-align:center;font-weight:700;padding:.4em .3em}.dtp .p10>a{color:#fff;text-decoration:none}.dtp .p10{width:10%;display:inline-block}.dtp .p20{width:20%;display:inline-block}.dtp .p60{width:60%;display:inline-block}.dtp .p80{width:80%;display:inline-block}.dtp a.dtp-meridien-am,.dtp a.dtp-meridien-pm{position:relative;top:10px;color:#212121;font-weight:500;padding:.7em .5em;border-radius:50% !important;text-decoration:none;background:#eee;font-size:1em}.dtp .dtp-actual-meridien a.selected{background:#607d8b;color:#eceff1}.dtp .dtp-picker-time>.dtp-select-hour{cursor:pointer}.dtp .dtp-picker-time>.dtp-select-minute{cursor:pointer}.dtp .dtp-buttons{padding:0 1em 1em 1em;text-align:right}.dtp.hidden,.dtp .hidden{display:none}.dtp .invisible{visibility:hidden}.dtp .left{float:left}.dtp .right{float:right}.dtp .clearfix{clear:both}.dtp .center{text-align:center}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -10,7 +10,7 @@
<?php foreach ($accountActions as $action): ?>
<li>
<button id="<?php echo $action->getId(); ?>"
class="<?php echo $action->getClassesAsString(); ?> mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $action->getIcon()->getClassButton(); ?>"
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $action->getClassesAsString(), ' ', $action->getIcon()->getClassButton(); ?>"
<?php foreach ($action->getData() as $key => $value): echo 'data-', $key, '="', $value, '"'; endforeach; ?>
<?php foreach ($action->getAttributes() as $key => $value): echo $key, '="', $value, '"'; endforeach; ?>
title="<?php echo $action->getTitle(); ?>">
@@ -28,7 +28,7 @@
<ul class="mdl-menu mdl-menu--top-left mdl-js-menu mdl-js-ripple-effect"
for="actions-menu-account">
<?php foreach ($accountActionsMenu as $action): ?>
<li class="btn-action mdl-menu__item"
<li class="mdl-menu__item btn-action <?php echo $action->getClassesAsString(); ?>"
id="<?php echo $action->getId(); ?>"
<?php foreach ($action->getData() as $key => $value): echo 'data-', $key, '="', $value, '"'; endforeach; ?>
<?php foreach ($action->getAttributes() as $key => $value): echo $key, '="', $value, '"'; endforeach; ?>

View File

@@ -191,7 +191,7 @@
<div class="account-actions">
<?php foreach ($data->getDataActionsFiltered($accountSearchItem) as $action): ?>
<i id="btn-action-<?php echo $accountSearchData->getId(), '-', $action->getIcon()->getIcon(); ?>"
class="btn-action material-icons <?php echo $action->getIcon()->getClass(); ?>"
class="btn-action material-icons <?php echo $action->getClassesAsString(), ' ', $action->getIcon()->getClass(); ?>"
data-item-id="<?php echo $accountSearchData->getId(); ?>"
data-parent-id="<?php echo $accountSearchData->getParentId(); ?>"
<?php foreach ($action->getData() as $name => $actionData): printf('data-%s="%s"', $name, $actionData); endforeach; ?>>
@@ -211,7 +211,7 @@
for="actions-menu-lower-right-<?php echo $accountSearchData->getId(); ?>">
<?php foreach ($actionsMenu as $actionMenu): ?>
<li class="btn-action mdl-menu__item"
<li class="btn-action mdl-menu__item <?php echo $actionMenu->getClassesAsString(); ?>"
data-item-id="<?php echo $accountSearchData->getId(); ?>"
data-parent-id="<?php echo $accountSearchData->getParentId(); ?>"
<?php foreach ($actionMenu->getData() as $dataName => $dataValue): printf('data-%s="%s"', $dataName, $dataValue); endforeach; ?>>

View File

@@ -153,7 +153,7 @@ class AccountAcl
public function isShowDetails()
{
return $this->actionId === Acl::ACCOUNT_VIEW
|| $this->actionId === Acl::ACCOUNT_VIEW_HISTORY
|| $this->actionId === Acl::ACCOUNT_HISTORY_VIEW
|| $this->actionId === Acl::ACCOUNT_DELETE;
}
@@ -173,7 +173,7 @@ class AccountAcl
{
return ($this->actionId === Acl::ACCOUNT_EDIT
|| $this->actionId === Acl::ACCOUNT_VIEW
|| $this->actionId === Acl::ACCOUNT_VIEW_HISTORY)
|| $this->actionId === Acl::ACCOUNT_HISTORY_VIEW)
&& $this->showFiles;
}
@@ -185,7 +185,7 @@ class AccountAcl
return ($this->actionId === Acl::ACCOUNT_SEARCH
|| $this->actionId === Acl::ACCOUNT_VIEW
|| $this->actionId === Acl::ACCOUNT_VIEW_PASS
|| $this->actionId === Acl::ACCOUNT_VIEW_HISTORY
|| $this->actionId === Acl::ACCOUNT_HISTORY_VIEW
|| $this->actionId === Acl::ACCOUNT_EDIT)
&& $this->showViewPass;
}
@@ -236,7 +236,7 @@ class AccountAcl
*/
public function isShowRestore()
{
return $this->actionId === Acl::ACCOUNT_VIEW_HISTORY && $this->showRestore;
return $this->actionId === Acl::ACCOUNT_HISTORY_VIEW && $this->showRestore;
}
/**
@@ -253,7 +253,7 @@ class AccountAcl
public function isShowHistory()
{
return ($this->actionId === Acl::ACCOUNT_VIEW
|| $this->actionId === Acl::ACCOUNT_VIEW_HISTORY)
|| $this->actionId === Acl::ACCOUNT_HISTORY_VIEW)
&& $this->showHistory;
}
@@ -313,7 +313,7 @@ class AccountAcl
case ActionsInterface::ACCOUNT_VIEW:
case ActionsInterface::ACCOUNT_SEARCH:
case ActionsInterface::ACCOUNT_VIEW_PASS:
case ActionsInterface::ACCOUNT_VIEW_HISTORY:
case ActionsInterface::ACCOUNT_HISTORY_VIEW:
case ActionsInterface::ACCOUNT_COPY:
return $this->resultView;
case ActionsInterface::ACCOUNT_EDIT:

View File

@@ -130,7 +130,7 @@ class Acl implements ActionsInterface
return ($userData->getIsAdminAcc() || $userProfile->isAccView() || $userProfile->isAccEdit());
case self::ACCOUNT_VIEW_PASS:
return ($userData->getIsAdminAcc() || $userProfile->isAccViewPass());
case self::ACCOUNT_VIEW_HISTORY:
case self::ACCOUNT_HISTORY_VIEW:
return ($userData->getIsAdminAcc() || $userProfile->isAccViewHistory());
case self::ACCOUNT_EDIT:
return ($userData->getIsAdminAcc() || $userProfile->isAccEdit());

View File

@@ -2,8 +2,8 @@
/**
* sysPass
*
* @author nuxsmin
* @link https://syspass.org
* @author nuxsmin
* @link https://syspass.org
* @copyright 2012-2018, Rubén Domínguez nuxsmin@$syspass.org
*
* This file is part of sysPass.
@@ -38,7 +38,6 @@ interface ActionsInterface
const ACCOUNT_EDIT = 102;
const ACCOUNT_DELETE = 103;
const ACCOUNT_VIEW_PASS = 104;
const ACCOUNT_VIEW_HISTORY = 105;
const ACCOUNT_EDIT_PASS = 106;
const ACCOUNT_EDIT_RESTORE = 107;
const ACCOUNT_COPY = 108;
@@ -55,6 +54,9 @@ interface ActionsInterface
const ACCOUNT_FAVORITE_VIEW = 130;
const ACCOUNT_FAVORITE_ADD = 131;
const ACCOUNT_FAVORITE_DELETE = 133;
const ACCOUNT_HISTORY_VIEW = 140;
const ACCOUNT_HISTORY_VIEW_PASS = 141;
const ACCOUNT_HISTORY_COPY_PASS = 142;
const WIKI = 20;
const WIKI_VIEW = 200;
const WIKI_NEW = 201;

View File

@@ -94,7 +94,7 @@ class AccountRepository extends Repository implements RepositoryItemInterface
/**
* @param QueryCondition $queryCondition
* @return ItemData
* @return AccountPassData
*/
public function getPasswordHistoryForId(QueryCondition $queryCondition)
{

View File

@@ -304,7 +304,7 @@ class AccountAclService extends Service
protected function compileShowAccess()
{
// Mostrar historial
$this->accountAcl->showHistory = $this->acl->checkUserAccess(Acl::ACCOUNT_VIEW_HISTORY);
$this->accountAcl->showHistory = $this->acl->checkUserAccess(Acl::ACCOUNT_HISTORY_VIEW);
// Mostrar lista archivos
$this->accountAcl->showFiles = $this->acl->checkUserAccess(Acl::ACCOUNT_FILE);

View File

@@ -33,6 +33,7 @@ use SP\Core\Crypt\Session as CryptSession;
use SP\Core\Exceptions\QueryException;
use SP\Core\Exceptions\SPException;
use SP\DataModel\AccountData;
use SP\DataModel\AccountPassData;
use SP\DataModel\Dto\AccountDetailsResponse;
use SP\DataModel\Dto\AccountSearchResponse;
use SP\DataModel\ItemSearchData;
@@ -454,7 +455,7 @@ class AccountService extends Service implements AccountServiceInterface
/**
* @param $id
* @return \SP\DataModel\ItemData
* @return AccountPassData
*/
public function getPasswordHistoryForId($id)
{

View File

@@ -56,7 +56,7 @@ class Installer extends Service
*/
const VERSION = [3, 0, 0];
const VERSION_TEXT = '3.0-beta';
const BUILD = 18040302;
const BUILD = 18040303;
/**
* @var ConfigService

View File

@@ -253,17 +253,16 @@ sysPass.Actions = function (Common) {
},
// Ver la clave de una cuenta
viewPass: function ($obj) {
log.info("account:showpass");
log.info("account:viewPass");
const parentId = $obj.data("parent-id") || 0;
const id = parentId === 0 ? $obj.data("item-id") : parentId;
const history = $obj.data("history") || 0;
const opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.entrypoint;
opts.method = "get";
opts.data = {
r: $obj.data("action-route") + "/" + id + "/" + history + "/" + parentId,
r: $obj.data("action-route") + "/" + id + "/" + parentId,
sk: Common.sk.get(),
isAjax: 1
};
@@ -293,8 +292,14 @@ sysPass.Actions = function (Common) {
}
});
},
// Ver la clave de una cuenta
viewPassHistory: function ($obj) {
log.info("account:viewPassHistory");
account.viewPass($obj);
},
copyPass: function ($obj) {
log.info("account:copypass");
log.info("account:copyPass");
const parentId = $obj.data("parent-id");
const id = parentId === 0 ? $obj.data("item-id") : parentId;
@@ -304,13 +309,18 @@ sysPass.Actions = function (Common) {
opts.method = "get";
opts.async = false;
opts.data = {
r: $obj.data("action-route") + "/" + id + "/" + $obj.data("history"),
r: $obj.data("action-route") + "/" + id,
sk: Common.sk.get(),
isAjax: 1
};
return Common.appRequests().getActionCall(opts);
},
copyPassHistory: function ($obj) {
log.info("account:copyPassHistory");
account.copyPassHistory($obj);
},
copy: function ($obj) {
log.info("account:copy");

View File

@@ -1,47 +1,48 @@
var $jscomp={scope:{},findInternal:function(b,e,l){b instanceof String&&(b=String(b));for(var f=b.length,g=0;g<f;g++){var m=b[g];if(e.call(l,m,g,b))return{i:g,v:m}}return{i:-1,v:void 0}}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(b,e,l){if(l.get||l.set)throw new TypeError("ES3 does not support getters and setters.");b!=Array.prototype&&b!=Object.prototype&&(b[e]=l.value)};
$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(b,e,l,f){if(e){l=$jscomp.global;b=b.split(".");for(f=0;f<b.length-1;f++){var g=b[f];g in l||(l[g]={});l=l[g]}b=b[b.length-1];f=l[b];e=e(f);e!=f&&null!=e&&$jscomp.defineProperty(l,b,{configurable:!0,writable:!0,value:e})}};
var $jscomp={scope:{},findInternal:function(b,e,l){b instanceof String&&(b=String(b));for(var f=b.length,h=0;h<f;h++){var m=b[h];if(e.call(l,m,h,b))return{i:h,v:m}}return{i:-1,v:void 0}}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(b,e,l){if(l.get||l.set)throw new TypeError("ES3 does not support getters and setters.");b!=Array.prototype&&b!=Object.prototype&&(b[e]=l.value)};
$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(b,e,l,f){if(e){l=$jscomp.global;b=b.split(".");for(f=0;f<b.length-1;f++){var h=b[f];h in l||(l[h]={});l=l[h]}b=b[b.length-1];f=l[b];e=e(f);e!=f&&null!=e&&$jscomp.defineProperty(l,b,{configurable:!0,writable:!0,value:e})}};
$jscomp.polyfill("Array.prototype.find",function(b){return b?b:function(b,l){return $jscomp.findInternal(this,b,l).v}},"es6-impl","es3");
sysPass.Actions=function(b){var e=b.log,l=0,f={entrypoint:"/index.php"};Object.freeze(f);var g=function(a,c){e.info("getContent");a.isAjax=1;var d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.method="get";d.type="html";d.addHistory=!0;d.data=a;b.appRequests().getActionCall(d,function(a){var d=$("#content");d.empty().html(a);a=b.triggers().views;a.common(d);if(void 0!==c&&"function"===typeof a[c])a[c]();d=$(".mdl-layout__content");0<d.scrollTop()&&d.animate({scrollTop:0},1E3)})},m=function(a,
c){$.magnificPopup.open({items:{src:a||"",type:"inline"},callbacks:{open:function(){var a=$("#box-popup");b.appTriggers().views.common(a);a.find(":input:text:visible:first").focus();void 0!==c&&"function"===typeof c.open&&c.open()},close:function(){void 0!==c&&"function"===typeof c.close&&c.close()}},showCloseBtn:!1})},w=function(a,c){var d=$('<div id="box-popup" class="image">'+c+"</div>"),h=d.find("img");if(0===h.length)return m(c);h.hide();$.magnificPopup.open({items:{src:d,type:"inline"},callbacks:{open:function(){var a=
this;h.on("click",function(){a.close()});setTimeout(function(){var a=b.resizeImage(h);d.css({backgroundColor:"#fff",width:a.width,height:"auto"});h.show("slow")},500)}}})},q={view:function(a){e.info("account:show");g(b.appRequests().getRouteForQuery(a.data("action-route"),a.data("item-id")),"account")},viewHistory:function(a){e.info("account:showHistory");g(b.appRequests().getRouteForQuery(a.data("action-route"),a.val()),"account")},edit:function(a){e.info("account:edit");g(b.appRequests().getRouteForQuery(a.data("action-route"),
sysPass.Actions=function(b){var e=b.log,l=0,f={entrypoint:"/index.php"};Object.freeze(f);var h=function(a,c){e.info("getContent");a.isAjax=1;var d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.method="get";d.type="html";d.addHistory=!0;d.data=a;b.appRequests().getActionCall(d,function(a){var d=$("#content");d.empty().html(a);a=b.triggers().views;a.common(d);if(void 0!==c&&"function"===typeof a[c])a[c]();d=$(".mdl-layout__content");0<d.scrollTop()&&d.animate({scrollTop:0},1E3)})},m=function(a,
c){$.magnificPopup.open({items:{src:a||"",type:"inline"},callbacks:{open:function(){var a=$("#box-popup");b.appTriggers().views.common(a);a.find(":input:text:visible:first").focus();void 0!==c&&"function"===typeof c.open&&c.open()},close:function(){void 0!==c&&"function"===typeof c.close&&c.close()}},showCloseBtn:!1})},w=function(a,c){var d=$('<div id="box-popup" class="image">'+c+"</div>"),g=d.find("img");if(0===g.length)return m(c);g.hide();$.magnificPopup.open({items:{src:d,type:"inline"},callbacks:{open:function(){var a=
this;g.on("click",function(){a.close()});setTimeout(function(){var a=b.resizeImage(g);d.css({backgroundColor:"#fff",width:a.width,height:"auto"});g.show("slow")},500)}}})},p={view:function(a){e.info("account:show");h(b.appRequests().getRouteForQuery(a.data("action-route"),a.data("item-id")),"account")},viewHistory:function(a){e.info("account:showHistory");h(b.appRequests().getRouteForQuery(a.data("action-route"),a.val()),"account")},edit:function(a){e.info("account:edit");h(b.appRequests().getRouteForQuery(a.data("action-route"),
a.data("item-id")),"account")},"delete":function(a){e.info("account:delete");var c='<div id="alert"><p id="alert-text">'+b.config().LANG[3]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(d){d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.data={r:"account/saveDelete/"+a.data("item-id"),sk:b.sk.get()};b.appRequests().getActionCall(d,function(d){b.msg.out(d);
q.search(a)})}}})},viewPass:function(a){e.info("account:showpass");var c=a.data("parent-id")||0,d=0===c?a.data("item-id"):c,h=a.data("history")||0,p=b.appRequests().getRequestOpts();p.url=f.entrypoint;p.method="get";p.data={r:a.data("action-route")+"/"+d+"/"+h+"/"+c,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(p,function(a){0!==a.status?b.msg.out(a):(a=$(a.data.html),m(a),l=setTimeout(function(){$.magnificPopup.close()},3E4),a.on("mouseleave",function(){clearTimeout(l);l=setTimeout(function(){$.magnificPopup.close()},
3E4)}).on("mouseenter",function(){0!==l&&clearTimeout(l)}))})},copyPass:function(a){e.info("account:copypass");var c=a.data("parent-id"),c=0===c?a.data("item-id"):c,d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.method="get";d.async=!1;d.data={r:a.data("action-route")+"/"+c+"/"+a.data("history"),sk:b.sk.get(),isAjax:1};return b.appRequests().getActionCall(d)},copy:function(a){e.info("account:copy");g(b.appRequests().getRouteForQuery(a.data("action-route"),a.data("item-id")),"account")},saveFavorite:function(a,
c){e.info("account:saveFavorite");var d="on"===a.data("status"),h=d?a.data("action-route-off"):a.data("action-route-on"),p=b.appRequests().getRequestOpts();p.url=f.entrypoint;p.data={r:h+"/"+a.data("item-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(p,function(h){b.msg.out(h);0===h.status&&(a.data("status",d?"off":"on"),"function"===typeof c&&c())})},request:function(a){e.info("account:request");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route")+"/"+
a.data("item-id");c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&void 0!==a.data.nextAction&&g({r:a.data.nextAction.nextAction},"account")})},menu:function(a){a.hide();a.parent().children(".actions-optional").show(250)},sort:function(a){e.info("account:sort");var b=$("#frmSearch");b.find('input[name="skey"]').val(a.data("key"));b.find('input[name="sorder"]').val(a.data("dir"));b.find('input[name="start"]').val(a.data("start"));q.search()},editPass:function(a){e.info("account:editpass");
var c=a.data("parent-id"),c=void 0===c?a.data("item-id"):c;g(b.appRequests().getRouteForQuery(a.data("action-route"),c),"account")},saveEditRestore:function(a){e.info("account:restore");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route")+"/"+a.data("history-id")+"/"+a.data("item-id");c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);void 0!==a.data.itemId&&void 0!==a.data.nextAction&&g(b.appRequests().getRouteForQuery(a.data.nextAction,
a.data.itemId),"account")})},listFiles:function(a){e.info("account:getfiles");var c=b.appRequests().getRequestOpts();c.method="get";c.type="html";c.url=f.entrypoint;c.data={r:a.data("action-route")+"/"+a.data("item-id"),del:a.data("delete"),sk:b.sk.get()};b.appRequests().getActionCall(c,function(b){a.html(b)})},search:function(a){e.info("account:search");var c=$("#frmSearch");c.find("input[name='sk']").val(b.sk.get());c.find("input[name='skey']").val();c.find("input[name='sorder']").val();void 0!==
a&&c.find("input[name='start']").val(0);a=b.appRequests().getRequestOpts();a.url=f.entrypoint+"?r="+c.data("action-route");a.method="get";a.data=c.serialize();b.appRequests().getActionCall(a,function(a){10===a.status&&b.msg.out(a);b.sk.set(a.data.sk);$("#res-content").empty().html(a.data.html)})},save:function(a){e.info("account:save");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route")+"/"+a.data("item-id");c.data=a.serialize();$("select.select-box-tags[data-hash][data-updated=true]").each(function(a,
b){c.data+="&"+b.getAttribute("id")+"_update=1"});b.appRequests().getActionCall(c,function(a){b.msg.out(a);void 0!==a.data.itemId&&void 0!==a.data.nextAction&&g(b.appRequests().getRouteForQuery(a.data.nextAction,a.data.itemId),"account")})}},r={get:function(a){e.info("items:get");var c=a[0].selectize;c.clearOptions();c.load(function(d){var h=b.appRequests().getRequestOpts();h.url=f.entrypoint;h.method="get";h.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:a.data("sk")};b.appRequests().getActionCall(h,
function(h){d(h.data);c.setValue(a.data("selected-id"),!0);b.appTriggers().updateFormHash()})})},update:function(a){e.info("items:update");var c=$("#"+a.data("item-dst"))[0].selectize;c.clearOptions();c.load(function(c){var d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.method="get";d.data={r:a.data("item-route"),sk:b.sk.get()};b.appRequests().getActionCall(d,function(a){c(a)})})}},u={logout:function(){b.redirect("index.php?r=login/logout")},login:function(a){e.info("main:login");var c=b.appRequests().getRequestOpts();
c.url=f.entrypoint+"?r="+a.data("route");c.method="get";c.data=a.serialize();b.appRequests().getActionCall(c,function(c){var d=$(".extra-hidden");switch(c.status){case 0:b.redirect(c.data.url);break;case 2:b.msg.out(c);a.find("input[type='text'],input[type='password']").val("");a.find("input:first").focus();0<d.length&&d.hide();$("#mpass").prop("disabled",!1).val("");$("#smpass").show();break;case 5:b.msg.out(c);a.find("input[type='text'],input[type='password']").val("");a.find("input:first").focus();
0<d.length&&d.hide();$("#oldpass").prop("disabled",!1).val("");$("#soldpass").show();break;default:b.msg.out(c),a.find("input[type='text'],input[type='password']").val(""),a.find("input:first").focus()}})},install:function(a){e.info("main:install");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("route");c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&setTimeout(function(){b.redirect("index.php?r=login/index")},1E3)})},upgrade:function(a){e.info("main:upgrade");
var c='<div id="alert"><p id="alert-text">'+b.config().LANG[59]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(c){var d;(c=a.find("input[name='taskId']").val())&&(d=t(c));var e=b.appRequests().getRequestOpts();e.url=f.entrypoint+"?r="+a.data("action-route");e.method="get";e.useFullLoading=!!c;e.data=a.serialize();b.appRequests().getActionCall(e,
function(c){b.msg.out(c);0!==c.status?a.find(":input[name=key]").val(""):(void 0!==d&&d.close(),setTimeout(function(){b.redirect("index.php")},5E3))})}}})},getUpdates:function(){e.info("main:getUpdates");var a=b.appRequests().getRequestOpts();a.url=f.entrypoint+"?r=status/checkRelease";a.method="get";a.timeout=1E4;a.useLoading=!1;a.data={isAjax:1};var c=$("#updates");b.appRequests().getActionCall(a,function(a){0===a.status?0<a.data.length?c.html('<a id="link-updates" href="'+a.data.url+'" target="_blank">'+
a.data.title+'<div id="help-hasupdates" class="icon material-icons mdl-color-text--indigo-200">cloud_download</div></a><span for="link-updates" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large">'+a.data.description+"</span>"):c.html('<div id="updates-info" class="icon material-icons mdl-color-text--teal-200">check_circle</div><span for="updates-info" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large">'+b.config().LANG[68]+"</span>"):c.html('<div id="updates-info" class="icon material-icons mdl-color-text--amber-200">warning</div><span for="updates-info" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large">'+
b.config().LANG[69]+"</span>");void 0!==componentHandler&&componentHandler.upgradeDom()},function(){c.html('<div id="updates-info" class="icon material-icons mdl-color-text--amber-200">warning</div><span for="updates-info" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large">'+b.config().LANG[69]+"</span>")})},getNotices:function(){e.info("main:getNotices");var a=b.appRequests().getRequestOpts();a.url=f.entrypoint+"?r=status/checkNotices";a.method="get";a.timeout=1E4;a.useLoading=!1;a.data={isAjax:1};
var c=$("#notices");b.appRequests().getActionCall(a,function(a){0===a.status&&0<a.data.length&&c.html('<a href="https://github.com/nuxsmin/sysPass/labels/Notices" target="_blank"><div id="notices-info" class="material-icons mdl-badge mdl-badge--overlap mdl-color-text--amber-200" data-badge="'+a.data.length+'">feedback</div></a><span for="notices-info" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large"><div class="notices-title">'+b.config().LANG[70]+"</div>"+a.data.map(function(a){return a.title}).join("<br>")+
"</span>");void 0!==componentHandler&&componentHandler.upgradeDom()})}},k={state:{tab:{index:0,refresh:!0,route:""},itemId:0,update:function(a){var b=$("#content").find("[id^='tabs-'].is-active");0<b.length&&(k.state.tab.refresh=!a.data("item-dst"),k.state.tab.index=b.data("tab-index"),k.state.tab.route=b.data("tab-route"),k.state.itemId=a.data("item-id"))}},save:function(a,c){e.info("tabs:save");k.state.update(a);var d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");
d.method=a.data("action-method")||"post";d.data=a.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(d,function(d){b.msg.out(d);0===d.status&&("function"===typeof c&&c(),!0===k.state.tab.refresh?g({r:k.state.tab.route,tabIndex:k.state.tab.index}):void 0!==a.data("reload")&&(e.info("reload"),setTimeout(function(){b.redirect("index.php")},2E3)))})}},v={show:function(a){e.info("appMgmt:show");k.state.update(a);var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={r:a.data("action-route")+
"/"+a.data("item-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(c){if(0!==c.status)b.msg.out(c);else{var d=a.data("item-dst");m(c.data.html,{open:function(){d&&(k.state.tab.refresh=!1)},close:function(){d&&r.update(a)}})}})},"delete":function(a){e.info("appMgmt:delete");k.state.update(a);n["delete"](a,function(c){var d=a.data("item-id"),h=b.appRequests().getRequestOpts();h.url=f.entrypoint;h.method="get";h.data={r:a.data("action-route")+(d&&"/"+d),items:c,sk:b.sk.get(),isAjax:1};
b.appRequests().getActionCall(h,function(a){b.msg.out(a);g({r:k.state.tab.route,tabIndex:k.state.tab.index})})})},save:function(a){e.info("appMgmt:save");k.save(a,function(){$.magnificPopup.close()})},search:function(a){e.info("appMgmt:search");n.search(a)},nav:function(a){e.info("appMgmt:nav");n.nav(a)}},n={search:function(a){e.info("grid:search");var c=$(a.data("target")),d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");d.method="get";d.data=a.serialize();b.appRequests().getActionCall(d,
function(a){0===a.status?c.html(a.data.html):c.html(b.msg.html.error(a.description));b.sk.set(a.csrf)})},nav:function(a,c){e.info("grid:nav");var d=$("#"+a.data("action-form"));d.find("[name='start']").val(a.data("start"));d.find("[name='count']").val(a.data("count"));d.find("[name='sk']").val(b.sk.get());"function"===typeof c?c(d):n.search(d)},"delete":function(a,c){var d='<div id="alert"><p id="alert-text">'+b.config().LANG[12]+"</p></div>",h=a.data("selection"),e=[];if(h&&($(h).find(".is-selected").each(function(){e.push($(this).data("item-id"))}),
0===e.length))return;mdlDialog().show({text:d,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(a){a.preventDefault();"function"===typeof c&&c(e)}}})}},t=function(a){var c=$("#taskStatus");c.empty().html(b.config().LANG[62]);var d=b.appRequests().getRequestOpts();d.method="get";d.url=f.entrypoint+"?r=task/runTask/"+a;return b.appRequests().getActionEvent(d,function(a){a=a.task+" - "+a.message+
" - "+a.time+" - "+a.progress+"%";a+="<br>"+b.config().LANG[62];c.empty().html(a)})};return{doAction:function(a,c){var d={r:a.r+(void 0!==a.itemId?"/"+a.itemId:""),isAjax:1},e=b.appRequests().getRequestOpts();e.url=f.entrypoint;e.method="get";e.type="html";e.addHistory=!0;e.data=d;b.appRequests().getActionCall(e,function(a){var d=$("#content");d.empty().html(a);a=b.triggers().views;a.common(d);if(void 0!==c&&"function"===typeof a[c])a[c]();d=$(".mdl-layout__content");0<d.scrollTop()&&d.animate({scrollTop:0},
1E3)})},appMgmt:v,account:q,file:{view:function(a){e.info("file:view");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get()};b.appRequests().getActionCall(c,function(c){if(0!==c.status)return b.msg.out(c);w(a,c.data.html)})},download:function(a){e.info("file:download");a={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get()};$.fileDownload(f.entrypoint,{httpMethod:"GET",data:a})},"delete":function(a){e.info("file:delete");
var c='<div id="alert"><p id="alert-text">'+b.config().LANG[15]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(c){c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get()};b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&q.listFiles($("#list-account-files"))})}}})}},
checks:{wiki:function(a){e.info("checks:wiki");a=$(a.data("src"));a.find("[name='sk']").val(b.sk.get());var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&$("#dokuWikiResCheck").html(a.data)})}},config:{save:function(a){e.info("config:save");k.save(a)},masterpass:function(a){var c='<div id="alert"><p id="alert-text">'+b.config().LANG[59]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],
onClick:function(c){c.preventDefault();b.msg.error(b.config().LANG[44]);a.find(":input[type=password]").val("")}},positive:{title:b.config().LANG[43],onClick:function(c){var d;(c=a.find("input[name='taskId']").val())&&(d=t(c));var e=b.appRequests().getRequestOpts();e.url=f.entrypoint;e.useFullLoading=!!c;e.data=a.serialize();b.appRequests().getActionCall(e,function(c){b.msg.out(c);a.find(":input[type=password]").val("");void 0!==d&&d.close()})}}})},backup:function(a){e.info("config:backup");k.state.update(a);
var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route");c.useFullLoading=!0;c.data=a.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&g({r:k.state.tab.route,tabIndex:k.state.tab.index})})},"export":function(a){e.info("config:export");k.save(a)},"import":function(a){e.info("config:import");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route");c.data=a.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(c,
function(a){b.msg.out(a)})},refreshMpass:function(a){e.info("config:import");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route");c.data={sk:a.data("sk"),isAjax:1};b.appRequests().getActionCall(c,function(a){b.msg.out(a)})},mailCheck:function(a){e.info("config:mailCheck");var c=$(a.data("src")),d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");d.data=c.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(d,function(a){b.msg.out(a)})}},
main:u,user:{showSettings:function(a){e.info("user:showSettings");g({r:a.data("action-route")},"userSettings")},saveSettings:function(a){e.info("user:saveSettings");k.save(a)},password:function(a){e.info("user:password");var c=b.appRequests().getRequestOpts();c.type="html";c.method="get";c.url=f.entrypoint;c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(a){0===a.length?u.logout():m(a)})},passreset:function(a){e.info("user:passreset");
var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"/?r="+a.data("action-route");c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&setTimeout(function(){b.redirect("index.php")},2E3)})}},link:{save:function(a){e.info("link:save");var c=function(c){var d=a.data("item-id"),e=b.appRequests().getRequestOpts();d?e.url=f.entrypoint+"?r="+a.data("action-route")+"/"+d+"/"+c:(e.url=f.entrypoint+"?r="+a.data("action-route"),e.data=a.serialize());b.appRequests().getActionCall(e,
function(c){b.msg.out(c);0===c.status&&g({r:a.data("action-next")+"/"+d})})},d='<div id="alert"><p id="alert-text">'+b.config().LANG[48]+"</p></div>";mdlDialog().show({text:d,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();c(0)}},positive:{title:b.config().LANG[43],onClick:function(a){a.preventDefault();c(1)}}})},refresh:function(a){e.info("link:refresh");k.state.update(a);var c=a.data("item-id"),d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.method="get";d.data=
{r:a.data("action-route")+"/"+c,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(d,function(d){b.msg.out(d);0===d.status&&((d=a.data("action-next"))?g({r:d+"/"+c}):g({r:k.state.tab.route,tabIndex:k.state.tab.index}))})}},eventlog:{search:function(a){e.info("eventlog:search");n.search(a)},nav:function(a){e.info("eventlog:nav");n.nav(a)},clear:function(a){var c='<div id="alert"><p id="alert-text">'+b.config().LANG[20]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();
b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(c){c.preventDefault();c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route");c.method="get";c.data={sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(c){b.msg.out(c);0===c.status&&g({r:a.data("nextaction")});b.sk.set(c.csrf)})}}})}},ajaxUrl:f,plugin:{toggle:function(a){e.info("plugin:enable");k.save(a,function(){setTimeout(function(){b.redirect("index.php")},2E3)})},reset:function(a){e.info("plugin:reset");
var c='<div id="alert"><p id="alert-text">'+b.config().LANG[58]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(b){b.preventDefault();k.save(a)}}})}},notification:{check:function(a){e.info("notification:check");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get(),
isAjax:1};b.appRequests().getActionCall(c,function(c){b.msg.out(c);0===c.status&&g({r:a.data("nextaction")});b.sk.set(c.csrf)})},search:function(a){e.info("notification:search");n.search(a)},show:function(a){e.info("notification:show");v.show(a)},save:function(a){e.info("notification:save");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("route");c.data=a.serialize();b.appRequests().getActionCall(c,function(c){b.msg.out(c);0===c.status&&(g({r:a.data("nextaction")}),$.magnificPopup.close())})},
"delete":function(a){e.info("notification:delete");n["delete"](a,function(c){var d=a.data("item-id"),e=b.appRequests().getRequestOpts();e.url=f.entrypoint;e.method="get";e.data={r:a.data("action-route")+(d?"/"+d:""),items:c,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(e,function(c){b.msg.out(c);g({r:a.data("nextaction")})})})},getActive:function(){e.info("notification:getActive");var a=b.appRequests().getRequestOpts();a.url=f.entrypoint;a.method="get";a.data={r:"items/notifications",sk:b.sk.get(),
isAjax:1};b.appRequests().getActionCall(a,function(a){return a})},nav:function(a){e.info("eventlog:nav");n.nav(a)}},wiki:{show:function(a){e.info("wiki:show");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={pageName:a.data("pagename"),actionId:a.data("action-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(a){0!==a.status?b.msg.out(a):m(a.data.html)})}},items:r,ldap:{check:function(a){e.info("ldap:check");var c=$(a.data("src")),d=b.appRequests().getRequestOpts();
d.url=f.entrypoint+"?r="+a.data("action-route");d.data=c.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(d,function(a){b.msg.out(a);0===a.status&&void 0!==a.data.template&&void 0!==a.data.items&&m(a.data.template,{open:function(){var c=$("#ldap-results").find(".list-wrap").empty();a.data.items.forEach(function(a){c.append(b.appTheme().html.getList(a.items,a.icon))})}})})},"import":function(a){e.info("ldap:import");var c='<div id="alert"><p id="alert-text">'+b.config().LANG[57]+"</p></div>";
mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(c){c=$(a.data("src"));c.find("[name='sk']").val(b.sk.get());var d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");d.data=c.serialize();b.appRequests().getActionCall(d,function(a){b.msg.out(a)})}}})}}}};
p.search(a)})}}})},viewPass:function(a){e.info("account:viewPass");var c=a.data("parent-id")||0,d=0===c?a.data("item-id"):c,g=b.appRequests().getRequestOpts();g.url=f.entrypoint;g.method="get";g.data={r:a.data("action-route")+"/"+d+"/"+c,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(g,function(a){0!==a.status?b.msg.out(a):(a=$(a.data.html),m(a),l=setTimeout(function(){$.magnificPopup.close()},3E4),a.on("mouseleave",function(){clearTimeout(l);l=setTimeout(function(){$.magnificPopup.close()},
3E4)}).on("mouseenter",function(){0!==l&&clearTimeout(l)}))})},viewPassHistory:function(a){e.info("account:viewPassHistory");p.viewPass(a)},copyPass:function(a){e.info("account:copyPass");var c=a.data("parent-id"),c=0===c?a.data("item-id"):c,d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.method="get";d.async=!1;d.data={r:a.data("action-route")+"/"+c,sk:b.sk.get(),isAjax:1};return b.appRequests().getActionCall(d)},copyPassHistory:function(a){e.info("account:copyPassHistory");p.copyPassHistory(a)},
copy:function(a){e.info("account:copy");h(b.appRequests().getRouteForQuery(a.data("action-route"),a.data("item-id")),"account")},saveFavorite:function(a,c){e.info("account:saveFavorite");var d="on"===a.data("status"),g=d?a.data("action-route-off"):a.data("action-route-on"),q=b.appRequests().getRequestOpts();q.url=f.entrypoint;q.data={r:g+"/"+a.data("item-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(q,function(g){b.msg.out(g);0===g.status&&(a.data("status",d?"off":"on"),"function"===
typeof c&&c())})},request:function(a){e.info("account:request");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route")+"/"+a.data("item-id");c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&void 0!==a.data.nextAction&&h({r:a.data.nextAction.nextAction},"account")})},menu:function(a){a.hide();a.parent().children(".actions-optional").show(250)},sort:function(a){e.info("account:sort");var b=$("#frmSearch");b.find('input[name="skey"]').val(a.data("key"));
b.find('input[name="sorder"]').val(a.data("dir"));b.find('input[name="start"]').val(a.data("start"));p.search()},editPass:function(a){e.info("account:editpass");var c=a.data("parent-id"),c=void 0===c?a.data("item-id"):c;h(b.appRequests().getRouteForQuery(a.data("action-route"),c),"account")},saveEditRestore:function(a){e.info("account:restore");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route")+"/"+a.data("history-id")+"/"+a.data("item-id");c.data=a.serialize();
b.appRequests().getActionCall(c,function(a){b.msg.out(a);void 0!==a.data.itemId&&void 0!==a.data.nextAction&&h(b.appRequests().getRouteForQuery(a.data.nextAction,a.data.itemId),"account")})},listFiles:function(a){e.info("account:getfiles");var c=b.appRequests().getRequestOpts();c.method="get";c.type="html";c.url=f.entrypoint;c.data={r:a.data("action-route")+"/"+a.data("item-id"),del:a.data("delete"),sk:b.sk.get()};b.appRequests().getActionCall(c,function(b){a.html(b)})},search:function(a){e.info("account:search");
var c=$("#frmSearch");c.find("input[name='sk']").val(b.sk.get());c.find("input[name='skey']").val();c.find("input[name='sorder']").val();void 0!==a&&c.find("input[name='start']").val(0);a=b.appRequests().getRequestOpts();a.url=f.entrypoint+"?r="+c.data("action-route");a.method="get";a.data=c.serialize();b.appRequests().getActionCall(a,function(a){10===a.status&&b.msg.out(a);b.sk.set(a.data.sk);$("#res-content").empty().html(a.data.html)})},save:function(a){e.info("account:save");var c=b.appRequests().getRequestOpts();
c.url=f.entrypoint+"?r="+a.data("action-route")+"/"+a.data("item-id");c.data=a.serialize();$("select.select-box-tags[data-hash][data-updated=true]").each(function(a,b){c.data+="&"+b.getAttribute("id")+"_update=1"});b.appRequests().getActionCall(c,function(a){b.msg.out(a);void 0!==a.data.itemId&&void 0!==a.data.nextAction&&h(b.appRequests().getRouteForQuery(a.data.nextAction,a.data.itemId),"account")})}},r={get:function(a){e.info("items:get");var c=a[0].selectize;c.clearOptions();c.load(function(d){var g=
b.appRequests().getRequestOpts();g.url=f.entrypoint;g.method="get";g.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:a.data("sk")};b.appRequests().getActionCall(g,function(g){d(g.data);c.setValue(a.data("selected-id"),!0);b.appTriggers().updateFormHash()})})},update:function(a){e.info("items:update");var c=$("#"+a.data("item-dst"))[0].selectize;c.clearOptions();c.load(function(c){var d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.method="get";d.data={r:a.data("item-route"),sk:b.sk.get()};
b.appRequests().getActionCall(d,function(a){c(a)})})}},u={logout:function(){b.redirect("index.php?r=login/logout")},login:function(a){e.info("main:login");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("route");c.method="get";c.data=a.serialize();b.appRequests().getActionCall(c,function(c){var d=$(".extra-hidden");switch(c.status){case 0:b.redirect(c.data.url);break;case 2:b.msg.out(c);a.find("input[type='text'],input[type='password']").val("");a.find("input:first").focus();
0<d.length&&d.hide();$("#mpass").prop("disabled",!1).val("");$("#smpass").show();break;case 5:b.msg.out(c);a.find("input[type='text'],input[type='password']").val("");a.find("input:first").focus();0<d.length&&d.hide();$("#oldpass").prop("disabled",!1).val("");$("#soldpass").show();break;default:b.msg.out(c),a.find("input[type='text'],input[type='password']").val(""),a.find("input:first").focus()}})},install:function(a){e.info("main:install");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+
"?r="+a.data("route");c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&setTimeout(function(){b.redirect("index.php?r=login/index")},1E3)})},upgrade:function(a){e.info("main:upgrade");var c='<div id="alert"><p id="alert-text">'+b.config().LANG[59]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(c){var d;(c=
a.find("input[name='taskId']").val())&&(d=t(c));var e=b.appRequests().getRequestOpts();e.url=f.entrypoint+"?r="+a.data("action-route");e.method="get";e.useFullLoading=!!c;e.data=a.serialize();b.appRequests().getActionCall(e,function(c){b.msg.out(c);0!==c.status?a.find(":input[name=key]").val(""):(void 0!==d&&d.close(),setTimeout(function(){b.redirect("index.php")},5E3))})}}})},getUpdates:function(){e.info("main:getUpdates");var a=b.appRequests().getRequestOpts();a.url=f.entrypoint+"?r=status/checkRelease";
a.method="get";a.timeout=1E4;a.useLoading=!1;a.data={isAjax:1};var c=$("#updates");b.appRequests().getActionCall(a,function(a){0===a.status?0<a.data.length?c.html('<a id="link-updates" href="'+a.data.url+'" target="_blank">'+a.data.title+'<div id="help-hasupdates" class="icon material-icons mdl-color-text--indigo-200">cloud_download</div></a><span for="link-updates" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large">'+a.data.description+"</span>"):c.html('<div id="updates-info" class="icon material-icons mdl-color-text--teal-200">check_circle</div><span for="updates-info" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large">'+
b.config().LANG[68]+"</span>"):c.html('<div id="updates-info" class="icon material-icons mdl-color-text--amber-200">warning</div><span for="updates-info" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large">'+b.config().LANG[69]+"</span>");void 0!==componentHandler&&componentHandler.upgradeDom()},function(){c.html('<div id="updates-info" class="icon material-icons mdl-color-text--amber-200">warning</div><span for="updates-info" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large">'+b.config().LANG[69]+
"</span>")})},getNotices:function(){e.info("main:getNotices");var a=b.appRequests().getRequestOpts();a.url=f.entrypoint+"?r=status/checkNotices";a.method="get";a.timeout=1E4;a.useLoading=!1;a.data={isAjax:1};var c=$("#notices");b.appRequests().getActionCall(a,function(a){0===a.status&&0<a.data.length&&c.html('<a href="https://github.com/nuxsmin/sysPass/labels/Notices" target="_blank"><div id="notices-info" class="material-icons mdl-badge mdl-badge--overlap mdl-color-text--amber-200" data-badge="'+
a.data.length+'">feedback</div></a><span for="notices-info" class="mdl-tooltip mdl-tooltip--top mdl-tooltip--large"><div class="notices-title">'+b.config().LANG[70]+"</div>"+a.data.map(function(a){return a.title}).join("<br>")+"</span>");void 0!==componentHandler&&componentHandler.upgradeDom()})}},k={state:{tab:{index:0,refresh:!0,route:""},itemId:0,update:function(a){var b=$("#content").find("[id^='tabs-'].is-active");0<b.length&&(k.state.tab.refresh=!a.data("item-dst"),k.state.tab.index=b.data("tab-index"),
k.state.tab.route=b.data("tab-route"),k.state.itemId=a.data("item-id"))}},save:function(a,c){e.info("tabs:save");k.state.update(a);var d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");d.method=a.data("action-method")||"post";d.data=a.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(d,function(d){b.msg.out(d);0===d.status&&("function"===typeof c&&c(),!0===k.state.tab.refresh?h({r:k.state.tab.route,tabIndex:k.state.tab.index}):void 0!==a.data("reload")&&
(e.info("reload"),setTimeout(function(){b.redirect("index.php")},2E3)))})}},v={show:function(a){e.info("appMgmt:show");k.state.update(a);var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(c){if(0!==c.status)b.msg.out(c);else{var d=a.data("item-dst");m(c.data.html,{open:function(){d&&(k.state.tab.refresh=!1)},close:function(){d&&r.update(a)}})}})},"delete":function(a){e.info("appMgmt:delete");
k.state.update(a);n["delete"](a,function(c){var d=a.data("item-id"),g=b.appRequests().getRequestOpts();g.url=f.entrypoint;g.method="get";g.data={r:a.data("action-route")+(d&&"/"+d),items:c,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(g,function(a){b.msg.out(a);h({r:k.state.tab.route,tabIndex:k.state.tab.index})})})},save:function(a){e.info("appMgmt:save");k.save(a,function(){$.magnificPopup.close()})},search:function(a){e.info("appMgmt:search");n.search(a)},nav:function(a){e.info("appMgmt:nav");
n.nav(a)}},n={search:function(a){e.info("grid:search");var c=$(a.data("target")),d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");d.method="get";d.data=a.serialize();b.appRequests().getActionCall(d,function(a){0===a.status?c.html(a.data.html):c.html(b.msg.html.error(a.description));b.sk.set(a.csrf)})},nav:function(a,c){e.info("grid:nav");var d=$("#"+a.data("action-form"));d.find("[name='start']").val(a.data("start"));d.find("[name='count']").val(a.data("count"));
d.find("[name='sk']").val(b.sk.get());"function"===typeof c?c(d):n.search(d)},"delete":function(a,c){var d='<div id="alert"><p id="alert-text">'+b.config().LANG[12]+"</p></div>",g=a.data("selection"),e=[];if(g&&($(g).find(".is-selected").each(function(){e.push($(this).data("item-id"))}),0===e.length))return;mdlDialog().show({text:d,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(a){a.preventDefault();
"function"===typeof c&&c(e)}}})}},t=function(a){var c=$("#taskStatus");c.empty().html(b.config().LANG[62]);var d=b.appRequests().getRequestOpts();d.method="get";d.url=f.entrypoint+"?r=task/runTask/"+a;return b.appRequests().getActionEvent(d,function(a){a=a.task+" - "+a.message+" - "+a.time+" - "+a.progress+"%";a+="<br>"+b.config().LANG[62];c.empty().html(a)})};return{doAction:function(a,c){var d={r:a.r+(void 0!==a.itemId?"/"+a.itemId:""),isAjax:1},e=b.appRequests().getRequestOpts();e.url=f.entrypoint;
e.method="get";e.type="html";e.addHistory=!0;e.data=d;b.appRequests().getActionCall(e,function(a){var d=$("#content");d.empty().html(a);a=b.triggers().views;a.common(d);if(void 0!==c&&"function"===typeof a[c])a[c]();d=$(".mdl-layout__content");0<d.scrollTop()&&d.animate({scrollTop:0},1E3)})},appMgmt:v,account:p,file:{view:function(a){e.info("file:view");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get()};b.appRequests().getActionCall(c,
function(c){if(0!==c.status)return b.msg.out(c);w(a,c.data.html)})},download:function(a){e.info("file:download");a={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get()};$.fileDownload(f.entrypoint,{httpMethod:"GET",data:a})},"delete":function(a){e.info("file:delete");var c='<div id="alert"><p id="alert-text">'+b.config().LANG[15]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],
onClick:function(c){c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get()};b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&p.listFiles($("#list-account-files"))})}}})}},checks:{wiki:function(a){e.info("checks:wiki");a=$(a.data("src"));a.find("[name='sk']").val(b.sk.get());var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);
0===a.status&&$("#dokuWikiResCheck").html(a.data)})}},config:{save:function(a){e.info("config:save");k.save(a)},masterpass:function(a){var c='<div id="alert"><p id="alert-text">'+b.config().LANG[59]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(c){c.preventDefault();b.msg.error(b.config().LANG[44]);a.find(":input[type=password]").val("")}},positive:{title:b.config().LANG[43],onClick:function(c){var d;(c=a.find("input[name='taskId']").val())&&(d=t(c));var e=
b.appRequests().getRequestOpts();e.url=f.entrypoint;e.useFullLoading=!!c;e.data=a.serialize();b.appRequests().getActionCall(e,function(c){b.msg.out(c);a.find(":input[type=password]").val("");void 0!==d&&d.close()})}}})},backup:function(a){e.info("config:backup");k.state.update(a);var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route");c.useFullLoading=!0;c.data=a.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&h({r:k.state.tab.route,
tabIndex:k.state.tab.index})})},"export":function(a){e.info("config:export");k.save(a)},"import":function(a){e.info("config:import");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route");c.data=a.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(c,function(a){b.msg.out(a)})},refreshMpass:function(a){e.info("config:import");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route");c.data={sk:a.data("sk"),isAjax:1};b.appRequests().getActionCall(c,
function(a){b.msg.out(a)})},mailCheck:function(a){e.info("config:mailCheck");var c=$(a.data("src")),d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");d.data=c.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(d,function(a){b.msg.out(a)})}},main:u,user:{showSettings:function(a){e.info("user:showSettings");h({r:a.data("action-route")},"userSettings")},saveSettings:function(a){e.info("user:saveSettings");k.save(a)},password:function(a){e.info("user:password");
var c=b.appRequests().getRequestOpts();c.type="html";c.method="get";c.url=f.entrypoint;c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(a){0===a.length?u.logout():m(a)})},passreset:function(a){e.info("user:passreset");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"/?r="+a.data("action-route");c.data=a.serialize();b.appRequests().getActionCall(c,function(a){b.msg.out(a);0===a.status&&setTimeout(function(){b.redirect("index.php")},
2E3)})}},link:{save:function(a){e.info("link:save");var c=function(c){var d=a.data("item-id"),e=b.appRequests().getRequestOpts();d?e.url=f.entrypoint+"?r="+a.data("action-route")+"/"+d+"/"+c:(e.url=f.entrypoint+"?r="+a.data("action-route"),e.data=a.serialize());b.appRequests().getActionCall(e,function(c){b.msg.out(c);0===c.status&&h({r:a.data("action-next")+"/"+d})})},d='<div id="alert"><p id="alert-text">'+b.config().LANG[48]+"</p></div>";mdlDialog().show({text:d,negative:{title:b.config().LANG[44],
onClick:function(a){a.preventDefault();c(0)}},positive:{title:b.config().LANG[43],onClick:function(a){a.preventDefault();c(1)}}})},refresh:function(a){e.info("link:refresh");k.state.update(a);var c=a.data("item-id"),d=b.appRequests().getRequestOpts();d.url=f.entrypoint;d.method="get";d.data={r:a.data("action-route")+"/"+c,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(d,function(d){b.msg.out(d);0===d.status&&((d=a.data("action-next"))?h({r:d+"/"+c}):h({r:k.state.tab.route,tabIndex:k.state.tab.index}))})}},
eventlog:{search:function(a){e.info("eventlog:search");n.search(a)},nav:function(a){e.info("eventlog:nav");n.nav(a)},clear:function(a){var c='<div id="alert"><p id="alert-text">'+b.config().LANG[20]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(c){c.preventDefault();c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("action-route");
c.method="get";c.data={sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(c){b.msg.out(c);0===c.status&&h({r:a.data("nextaction")});b.sk.set(c.csrf)})}}})}},ajaxUrl:f,plugin:{toggle:function(a){e.info("plugin:enable");k.save(a,function(){setTimeout(function(){b.redirect("index.php")},2E3)})},reset:function(a){e.info("plugin:reset");var c='<div id="alert"><p id="alert-text">'+b.config().LANG[58]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();
b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],onClick:function(b){b.preventDefault();k.save(a)}}})}},notification:{check:function(a){e.info("notification:check");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={r:a.data("action-route")+"/"+a.data("item-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(c){b.msg.out(c);0===c.status&&h({r:a.data("nextaction")});b.sk.set(c.csrf)})},search:function(a){e.info("notification:search");
n.search(a)},show:function(a){e.info("notification:show");v.show(a)},save:function(a){e.info("notification:save");var c=b.appRequests().getRequestOpts();c.url=f.entrypoint+"?r="+a.data("route");c.data=a.serialize();b.appRequests().getActionCall(c,function(c){b.msg.out(c);0===c.status&&(h({r:a.data("nextaction")}),$.magnificPopup.close())})},"delete":function(a){e.info("notification:delete");n["delete"](a,function(c){var d=a.data("item-id"),e=b.appRequests().getRequestOpts();e.url=f.entrypoint;e.method=
"get";e.data={r:a.data("action-route")+(d?"/"+d:""),items:c,sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(e,function(c){b.msg.out(c);h({r:a.data("nextaction")})})})},getActive:function(){e.info("notification:getActive");var a=b.appRequests().getRequestOpts();a.url=f.entrypoint;a.method="get";a.data={r:"items/notifications",sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(a,function(a){return a})},nav:function(a){e.info("eventlog:nav");n.nav(a)}},wiki:{show:function(a){e.info("wiki:show");
var c=b.appRequests().getRequestOpts();c.url=f.entrypoint;c.method="get";c.data={pageName:a.data("pagename"),actionId:a.data("action-id"),sk:b.sk.get(),isAjax:1};b.appRequests().getActionCall(c,function(a){0!==a.status?b.msg.out(a):m(a.data.html)})}},items:r,ldap:{check:function(a){e.info("ldap:check");var c=$(a.data("src")),d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");d.data=c.serialize()+"&sk="+b.sk.get();b.appRequests().getActionCall(d,function(a){b.msg.out(a);
0===a.status&&void 0!==a.data.template&&void 0!==a.data.items&&m(a.data.template,{open:function(){var c=$("#ldap-results").find(".list-wrap").empty();a.data.items.forEach(function(a){c.append(b.appTheme().html.getList(a.items,a.icon))})}})})},"import":function(a){e.info("ldap:import");var c='<div id="alert"><p id="alert-text">'+b.config().LANG[57]+"</p></div>";mdlDialog().show({text:c,negative:{title:b.config().LANG[44],onClick:function(a){a.preventDefault();b.msg.error(b.config().LANG[44])}},positive:{title:b.config().LANG[43],
onClick:function(c){c=$(a.data("src"));c.find("[name='sk']").val(b.sk.get());var d=b.appRequests().getRequestOpts();d.url=f.entrypoint+"?r="+a.data("action-route");d.data=c.serialize();b.appRequests().getActionCall(d,function(a){b.msg.out(a)})}}})}}}};