mirror of
https://github.com/nuxsmin/sysPass.git
synced 2026-03-04 23:54:08 +01:00
Merge branch 'UI' into auth
Conflicts: inc/themes/material-blue/css/styles.min.css js/app-main.min.js
This commit is contained in:
BIN
css/fonts/NotoSans-Regular-webfont.ttf
Normal file
BIN
css/fonts/NotoSans-Regular-webfont.ttf
Normal file
Binary file not shown.
@@ -27,12 +27,18 @@ namespace SP\Controller;
|
||||
|
||||
defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo'));
|
||||
|
||||
use SP\Account\Account;
|
||||
use SP\Account\AccountHistory;
|
||||
use SP\Api\ApiTokensUtil;
|
||||
use SP\Core\Acl;
|
||||
use SP\Core\ActionsInterface;
|
||||
use SP\Core\Crypt;
|
||||
use SP\Core\Exceptions\ItemException;
|
||||
use SP\Core\Init;
|
||||
use SP\Core\Session;
|
||||
use SP\Core\SessionUtil;
|
||||
use SP\Core\Template;
|
||||
use SP\DataModel\AccountExtData;
|
||||
use SP\DataModel\CategoryData;
|
||||
use SP\DataModel\CustomerData;
|
||||
use SP\DataModel\CustomFieldData;
|
||||
@@ -41,7 +47,6 @@ use SP\DataModel\GroupData;
|
||||
use SP\DataModel\ProfileData;
|
||||
use SP\DataModel\TagData;
|
||||
use SP\DataModel\UserData;
|
||||
use SP\Http\JsonResponse;
|
||||
use SP\Http\Request;
|
||||
use SP\Log\Log;
|
||||
use SP\Mgmt\Categories\Category;
|
||||
@@ -51,14 +56,15 @@ use SP\Mgmt\CustomFields\CustomFieldDef;
|
||||
use SP\Mgmt\CustomFields\CustomFieldTypes;
|
||||
use SP\Mgmt\Files\FileUtil;
|
||||
use SP\Mgmt\Groups\GroupUsers;
|
||||
use SP\Mgmt\ItemSelectInterface;
|
||||
use SP\Mgmt\PublicLinks\PublicLink;
|
||||
use SP\Mgmt\Groups\Group;
|
||||
use SP\Mgmt\Profiles\Profile;
|
||||
use SP\Mgmt\Profiles\ProfileUtil;
|
||||
use SP\Mgmt\Tags\Tag;
|
||||
use SP\Mgmt\Users\User;
|
||||
use SP\Mgmt\Users\UserPass;
|
||||
use SP\Util\Checks;
|
||||
use SP\Util\ImageUtil;
|
||||
use SP\Util\Json;
|
||||
use SP\Util\Util;
|
||||
|
||||
@@ -224,11 +230,17 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
$this->view->assign('header', _('Editar Etiqueta'));
|
||||
$this->getTag();
|
||||
break;
|
||||
case self::ACTION_ACC_VIEW_PASS:
|
||||
$this->view->assign('header', _('Clave de Cuenta'));
|
||||
$this->getAccountPass();
|
||||
break;
|
||||
default:
|
||||
$this->invalidAction();
|
||||
}
|
||||
|
||||
$this->jsonResponse->setData(['html' => $this->render()]);
|
||||
if (count($this->jsonResponse->getData()) === 0) {
|
||||
$this->jsonResponse->setData(['html' => $this->render()]);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$this->jsonResponse->setDescription($e->getMessage());
|
||||
}
|
||||
@@ -241,7 +253,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
*
|
||||
* @throws \SP\Core\Exceptions\SPException
|
||||
*/
|
||||
public function getUser()
|
||||
protected function getUser()
|
||||
{
|
||||
$this->module = self::ACTION_USR_USERS;
|
||||
$this->view->addTemplate('users');
|
||||
@@ -260,7 +272,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Obtener la lista de campos personalizados y sus valores
|
||||
*/
|
||||
private function getCustomFieldsForItem()
|
||||
protected function getCustomFieldsForItem()
|
||||
{
|
||||
$this->view->assign('customFields', CustomField::getItem(new CustomFieldData($this->module))->getById($this->itemId));
|
||||
}
|
||||
@@ -268,7 +280,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Inicializar la vista de cambio de clave de usuario
|
||||
*/
|
||||
public function getUserPass()
|
||||
protected function getUserPass()
|
||||
{
|
||||
$this->module = self::ACTION_USR_USERS;
|
||||
$this->setAction(self::ACTION_USR_USERS_EDITPASS);
|
||||
@@ -287,7 +299,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Obtener los datos para la ficha de grupo
|
||||
*/
|
||||
public function getGroup()
|
||||
protected function getGroup()
|
||||
{
|
||||
$this->module = self::ACTION_USR_GROUPS;
|
||||
$this->view->addTemplate('groups');
|
||||
@@ -304,7 +316,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Obtener los datos para la ficha de perfil
|
||||
*/
|
||||
public function getProfile()
|
||||
protected function getProfile()
|
||||
{
|
||||
$this->module = self::ACTION_USR_PROFILES;
|
||||
$this->view->addTemplate('profiles');
|
||||
@@ -325,7 +337,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Obtener los datos para la ficha de cliente
|
||||
*/
|
||||
public function getCustomer()
|
||||
protected function getCustomer()
|
||||
{
|
||||
$this->module = self::ACTION_MGM_CUSTOMERS;
|
||||
$this->view->addTemplate('customers');
|
||||
@@ -339,7 +351,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Obtener los datos para la ficha de categoría
|
||||
*/
|
||||
public function getCategory()
|
||||
protected function getCategory()
|
||||
{
|
||||
$this->module = self::ACTION_MGM_CATEGORIES;
|
||||
$this->view->addTemplate('categories');
|
||||
@@ -353,7 +365,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Obtener los datos para la ficha de tokens de API
|
||||
*/
|
||||
public function getToken()
|
||||
protected function getToken()
|
||||
{
|
||||
$this->module = self::ACTION_MGM_APITOKENS;
|
||||
$this->view->addTemplate('tokens');
|
||||
@@ -376,7 +388,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Obtener los datos para la ficha de campo personalizado
|
||||
*/
|
||||
public function getCustomField()
|
||||
protected function getCustomField()
|
||||
{
|
||||
$this->module = self::ACTION_MGM_CUSTOMFIELDS;
|
||||
$this->view->addTemplate('customfields');
|
||||
@@ -396,7 +408,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
*
|
||||
* @throws \SP\Core\Exceptions\SPException
|
||||
*/
|
||||
public function getPublicLink()
|
||||
protected function getPublicLink()
|
||||
{
|
||||
$this->module = self::ACTION_MGM_PUBLICLINKS;
|
||||
$this->view->addTemplate('publiclinks');
|
||||
@@ -413,7 +425,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
*
|
||||
* @throws \SP\Core\Exceptions\SPException
|
||||
*/
|
||||
public function getTag()
|
||||
protected function getTag()
|
||||
{
|
||||
$this->module = self::ACTION_MGM_TAGS;
|
||||
$this->view->addTemplate('tags');
|
||||
@@ -426,7 +438,7 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
/**
|
||||
* Obtener los datos para la vista de archivos de una cuenta
|
||||
*/
|
||||
public function getAccountFiles()
|
||||
protected function getAccountFiles()
|
||||
{
|
||||
$this->setAction(self::ACTION_ACC_FILES);
|
||||
|
||||
@@ -442,4 +454,82 @@ class ItemShowController extends ControllerBase implements ActionsInterface, Ite
|
||||
|
||||
$this->jsonResponse->setStatus(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mostrar la clave de una cuenta
|
||||
*
|
||||
* @throws ItemException
|
||||
*/
|
||||
public function getAccountPass()
|
||||
{
|
||||
$this->setAction(self::ACTION_ACC_VIEW_PASS);
|
||||
|
||||
$isHistory = Request::analyze('isHistory', false);
|
||||
$isFull = Request::analyze('isFull', false);
|
||||
|
||||
$AccountData = new AccountExtData();
|
||||
|
||||
if (!$isHistory) {
|
||||
$AccountData->setAccountId($this->itemId);
|
||||
$Account = new Account($AccountData);
|
||||
} else {
|
||||
$Account = new AccountHistory($AccountData);
|
||||
$Account->setId($this->itemId);
|
||||
}
|
||||
|
||||
$Account->getAccountPassData();
|
||||
|
||||
if ($isHistory && !$Account->checkAccountMPass()) {
|
||||
throw new ItemException(_('La clave maestra no coincide'));
|
||||
}
|
||||
|
||||
$Acl = new Acl(Acl::ACTION_ACC_VIEW_PASS);
|
||||
$Acl->setAccountData($Account->getAccountDataForACL());
|
||||
|
||||
if (!Acl::checkUserAccess(Acl::ACTION_ACC_VIEW_PASS) || !$Acl->checkAccountAccess()) {
|
||||
throw new ItemException(_('No tiene permisos para acceder a esta cuenta'));
|
||||
} elseif (!UserPass::checkUserUpdateMPass(Session::getUserData()->getUserId())) {
|
||||
throw new ItemException(_('Clave maestra actualizada') . '<br>' . _('Reinicie la sesión para cambiarla'));
|
||||
}
|
||||
|
||||
$accountClearPass = Crypt::getDecrypt($AccountData->getAccountPass(), $AccountData->getAccountIV());
|
||||
|
||||
if (!$isHistory) {
|
||||
$Account->incrementDecryptCounter();
|
||||
|
||||
$log = new Log(_('Ver Clave'));
|
||||
$log->addDetails(_('ID'), $this->itemId);
|
||||
$log->addDetails(_('Cuenta'), $AccountData->getCustomerName() . ' / ' . $AccountData->getAccountName());
|
||||
$log->writeLog();
|
||||
}
|
||||
|
||||
$useImage = (int)Checks::accountPassToImageIsEnabled();
|
||||
|
||||
if (!$useImage) {
|
||||
$pass = $isFull ? htmlentities(trim($accountClearPass)) : trim($accountClearPass);
|
||||
} else {
|
||||
$pass = ImageUtil::convertText($accountClearPass);
|
||||
}
|
||||
|
||||
$this->jsonResponse->setStatus(0);
|
||||
|
||||
if ($isFull) {
|
||||
$this->view->addTemplate('viewpass', 'account');
|
||||
|
||||
$this->view->assign('login', $AccountData->getAccountLogin());
|
||||
$this->view->assign('pass', $pass);
|
||||
$this->view->assign('isImage', $useImage);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$data = [
|
||||
'acclogin' => $AccountData->getAccountLogin(),
|
||||
'accpass' => $pass,
|
||||
'useimage' => $useImage
|
||||
];
|
||||
|
||||
$this->jsonResponse->setCsrf($this->view->sk);
|
||||
$this->jsonResponse->setData($data);
|
||||
}
|
||||
}
|
||||
36
inc/SP/Core/Exceptions/ItemException.class.php
Normal file
36
inc/SP/Core/Exceptions/ItemException.class.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* sysPass
|
||||
*
|
||||
* @author nuxsmin
|
||||
* @link http://syspass.org
|
||||
* @copyright 2012-2016, Rubén Domínguez nuxsmin@$syspass.org
|
||||
*
|
||||
* This file is part of sysPass.
|
||||
*
|
||||
* sysPass is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* sysPass is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with sysPass. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace SP\Core\Exceptions;
|
||||
|
||||
|
||||
/**
|
||||
* Class ItemException
|
||||
*
|
||||
* @package SP\Core\Exceptions
|
||||
*/
|
||||
class ItemException extends \Exception
|
||||
{
|
||||
|
||||
}
|
||||
@@ -65,7 +65,7 @@ class ImageUtil
|
||||
imagefilledrectangle($im, 0, 0, strlen($text) * 20, 29, $bgColor);
|
||||
|
||||
// Ruta de la fuente
|
||||
$font = Init::$SERVERROOT . '/imgs/NotoSansUI-Regular.ttf';
|
||||
$font = Init::$SERVERROOT . '/css/fonts/NotoSans-Regular-webfont.ttf';
|
||||
|
||||
// Sombra
|
||||
// imagettftext($im, 14, 0, 13, 23, $shadowColor, $font, $text);
|
||||
|
||||
@@ -263,7 +263,8 @@ pre, code, samp, kbd {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
#content td.descField, #fancyContainer td.descField {
|
||||
#content td.descField,
|
||||
#fancyContainer td.descField {
|
||||
text-align: right;
|
||||
padding-right: 20px;
|
||||
width: 25%;
|
||||
@@ -921,12 +922,41 @@ pre, code, samp, kbd {
|
||||
}
|
||||
|
||||
#fancyContainer {
|
||||
width: auto;
|
||||
min-width: 25em;
|
||||
max-width: 50em;
|
||||
margin: 5em auto;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#fancyContainer > h2 {
|
||||
width: 100%;
|
||||
font-size: 18px;
|
||||
color: white;
|
||||
background-color: #607d8b;
|
||||
margin: 0 0 1em 0;
|
||||
padding: .5em 0;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
#fancyContainer > table {
|
||||
width: 100%;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
#fancyContainer select {
|
||||
width: 220px
|
||||
}
|
||||
|
||||
#fancyContainer #resFancyAccion {
|
||||
display: none
|
||||
}
|
||||
|
||||
#fancyContainer #resCheck {
|
||||
display: inline-block;
|
||||
width: 80%;
|
||||
height: 4em;
|
||||
padding: 1em 0
|
||||
}
|
||||
|
||||
#fancyContainer.image {
|
||||
@@ -947,20 +977,6 @@ pre, code, samp, kbd {
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
#fancyContainer > h2 {
|
||||
width: 100%;
|
||||
font-size: 18px;
|
||||
color: white;
|
||||
background-color: #607d8b;
|
||||
margin: 0 0 1em 0;
|
||||
padding: .5em 0;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
#fancyContainer select {
|
||||
width: 220px
|
||||
}
|
||||
|
||||
#fancyContainer.help {
|
||||
min-height: 100px;
|
||||
background-color: #f5f5f5
|
||||
@@ -972,17 +988,6 @@ pre, code, samp, kbd {
|
||||
line-height: 2em
|
||||
}
|
||||
|
||||
#fancyContainer #resFancyAccion {
|
||||
display: none
|
||||
}
|
||||
|
||||
#fancyContainer #resCheck {
|
||||
display: inline-block;
|
||||
width: 80%;
|
||||
height: 4em;
|
||||
padding: 1em 0
|
||||
}
|
||||
|
||||
#debug {
|
||||
float: left;
|
||||
text-align: left
|
||||
@@ -1365,10 +1370,9 @@ footer img {
|
||||
line-height: 2.5em
|
||||
}
|
||||
|
||||
.dialog-clip-pass-copy {
|
||||
.dialog-clip-copy {
|
||||
background-color: #ecfde4;
|
||||
color: green;
|
||||
border: #dbfdcb 1px solid
|
||||
}
|
||||
|
||||
.help-box {
|
||||
@@ -1665,6 +1669,18 @@ fieldset.warning a {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.center {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
.right {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.left {
|
||||
text-align: left !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
#content #searchbox {
|
||||
position: relative;
|
||||
|
||||
2
inc/themes/material-blue/css/styles.min.css
vendored
2
inc/themes/material-blue/css/styles.min.css
vendored
File diff suppressed because one or more lines are too long
@@ -1,113 +1,119 @@
|
||||
<?php /** @var $icons \Theme\Icons */ ?>
|
||||
|
||||
<div id="title" class="midroundup titleNormal">
|
||||
<?php echo $title['name']; ?>
|
||||
<i id="history-icon" class="material-icons"><?php echo $title['icon']; ?></i>
|
||||
</div>
|
||||
|
||||
<form method="post" name="editpass" id="frmEditPass" class="form-action" data-onsubmit="account/save" data-hash="">
|
||||
<table class="data round">
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Nombre'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="name" name="name" type="text"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
value="<?php echo $accountData->getAccountName(); ?>" readonly>
|
||||
<label class="mdl-textfield__label" for="name"><?php echo _('Nombre de cuenta'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Cliente'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="customer" name="customer" type="text"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
value="<?php echo $accountData->getCustomerName(); ?>" readonly>
|
||||
<label class="mdl-textfield__label" for="customer"><?php echo _('Cliente'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('URL / IP'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="url" name="url" type="text"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
value="<?php echo $accountData->getAccountUrl(); ?>" readonly>
|
||||
<label class="mdl-textfield__label" for="url"><?php echo _('URL / IP'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Usuario'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="user" name="user" type="text"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
value="<?php echo $accountData->getAccountLogin(); ?>" readonly>
|
||||
<label class="mdl-textfield__label" for="user"><?php echo _('Usuario'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Clave'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="accountpass" name="pass" type="password" required
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400 passwordfield__input"
|
||||
maxlength="255" autocomplete="off">
|
||||
<label class="mdl-textfield__label" for="accountpass"><?php echo _('Clave'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Clave (repetir)'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="accountpassR" name="passR" type="password" required
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
maxlength="255" autocomplete="off">
|
||||
<label class="mdl-textfield__label" for="accountpassR"><?php echo _('Clave'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Fecha Caducidad Clave'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="accountpassdatechange" name="accountpassdatechange" type="date"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400 password-datefield__input"
|
||||
value="<?php echo $accountPassDateChange; ?>">
|
||||
<label class="mdl-textfield__label"
|
||||
for="accountpassdatechange"><?php echo _('Fecha'); ?></label>
|
||||
</div>
|
||||
<i class="material-icons btn-action"
|
||||
title="<?php echo _('Seleccionar Fecha'); ?>">date_range</i>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="actionId" value="<?php echo $actionId; ?>"/>
|
||||
<input type="hidden" name="itemId" value="<?php echo $accountId; ?>"/>
|
||||
<input type="hidden" name="sk" value="">
|
||||
<input type="hidden" name="isAjax" value="1">
|
||||
|
||||
<div class="action">
|
||||
<button id="btnBack" type="button"
|
||||
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
|
||||
title="<?php echo _('Atrás'); ?>">
|
||||
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
|
||||
</button>
|
||||
|
||||
<button id="btnSave" name="btnSave" type="submit" form="frmEditPass"
|
||||
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
|
||||
title="<?php echo _('Guardar'); ?>">
|
||||
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
|
||||
</button>
|
||||
<div class="data-container">
|
||||
<div id="title" class="midroundup titleNormal">
|
||||
<?php echo $title['name']; ?>
|
||||
<i id="history-icon" class="material-icons"><?php echo $title['icon']; ?></i>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<form method="post" name="editpass" id="frmEditPass" class="form-action" data-onsubmit="account/save" data-hash="">
|
||||
<table class="data round">
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Nombre'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="name" name="name" type="text"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
value="<?php echo $accountData->getAccountName(); ?>" readonly>
|
||||
<label class="mdl-textfield__label" for="name"><?php echo _('Nombre de cuenta'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Cliente'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="customer" name="customer" type="text"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
value="<?php echo $accountData->getCustomerName(); ?>" readonly>
|
||||
<label class="mdl-textfield__label" for="customer"><?php echo _('Cliente'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('URL / IP'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="url" name="url" type="text"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
value="<?php echo $accountData->getAccountUrl(); ?>" readonly>
|
||||
<label class="mdl-textfield__label" for="url"><?php echo _('URL / IP'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Usuario'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="user" name="user" type="text"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
value="<?php echo $accountData->getAccountLogin(); ?>" readonly>
|
||||
<label class="mdl-textfield__label" for="user"><?php echo _('Usuario'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Clave'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="accountpass" name="pass" type="password" required
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400 passwordfield__input"
|
||||
maxlength="255" autocomplete="off">
|
||||
<label class="mdl-textfield__label" for="accountpass"><?php echo _('Clave'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Clave (repetir)'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="accountpassR" name="passR" type="password" required
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400"
|
||||
maxlength="255" autocomplete="off">
|
||||
<label class="mdl-textfield__label" for="accountpassR"><?php echo _('Clave'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Fecha Caducidad Clave'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<input id="accountpassdatechange" name="accountpassdatechange" type="date"
|
||||
class="mdl-textfield__input mdl-color-text--indigo-400 password-datefield__input"
|
||||
value="<?php echo $accountPassDateChange; ?>">
|
||||
<label class="mdl-textfield__label"
|
||||
for="accountpassdatechange"><?php echo _('Fecha'); ?></label>
|
||||
</div>
|
||||
<i class="material-icons btn-action"
|
||||
title="<?php echo _('Seleccionar Fecha'); ?>">date_range</i>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="actionId" value="<?php echo $actionId; ?>"/>
|
||||
<input type="hidden" name="itemId" value="<?php echo $accountId; ?>"/>
|
||||
<input type="hidden" name="sk" value="">
|
||||
<input type="hidden" name="isAjax" value="1">
|
||||
|
||||
<div class="item-actions">
|
||||
<ul>
|
||||
<li>
|
||||
<button id="btnBack" type="button"
|
||||
class="btn-back mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
|
||||
title="<?php echo _('Atrás'); ?>">
|
||||
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button id="btnSave" name="btnSave" type="submit" form="frmEditPass"
|
||||
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
|
||||
title="<?php echo _('Guardar'); ?>">
|
||||
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
sysPassApp.sk.set("<?php echo $sk; ?>");
|
||||
|
||||
@@ -51,19 +51,23 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="action">
|
||||
<?php if (!$useImage): ?>
|
||||
<button id="btnClipPass"
|
||||
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored mdl-color--indigo-A200"
|
||||
data-clipboard-target="#account-pass"
|
||||
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_VIEW_PASS; ?>"
|
||||
data-item-id="<?php echo $accountId; ?>"
|
||||
data-sk="<?php echo $sk; ?>"
|
||||
data-history="0"
|
||||
data-onclick="account/copypass">
|
||||
<i class="material-icons">content_paste</i>
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
<div class="item-actions">
|
||||
<ul>
|
||||
<?php if (!$useImage): ?>
|
||||
<li>
|
||||
<button id="btnClipPass"
|
||||
class="btn-action mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored mdl-color--indigo-A200"
|
||||
data-clipboard-target="#account-pass"
|
||||
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_ACC_VIEW_PASS; ?>"
|
||||
data-item-id="<?php echo $accountId; ?>"
|
||||
data-sk="<?php echo $sk; ?>"
|
||||
data-history="0"
|
||||
data-onclick="account/copypass">
|
||||
<i class="material-icons">content_paste</i>
|
||||
</button>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,63 +1,65 @@
|
||||
<?php /** @var $icons \Theme\Icons */ ?>
|
||||
|
||||
<div id="title" class="midroundup titleNormal"><?php echo _('Solicitar Modificación de Cuenta'); ?></div>
|
||||
<div class="data-container">
|
||||
<div id="title" class="midroundup titleNormal"><?php echo _('Solicitar Modificación de Cuenta'); ?></div>
|
||||
|
||||
<form method="post" name="requestmodify" id="frmRequestModify"
|
||||
class="form-action"
|
||||
data-hash=""
|
||||
data-onsubmit="account/request">
|
||||
<table class="data round">
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Nombre'); ?></td>
|
||||
<td class="valField"><?php echo $accountData->getAccountName(); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Cliente'); ?></td>
|
||||
<td class="valField"><?php echo $accountData->customer_name; ?></td>
|
||||
</tr>
|
||||
<?php if ($lastAction === \SP\Core\ActionsInterface::ACTION_ACC_SEARCH): ?>
|
||||
<form method="post" name="requestmodify" id="frmRequestModify"
|
||||
class="form-action"
|
||||
data-hash=""
|
||||
data-onsubmit="account/request">
|
||||
<table class="data round">
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('URL / IP'); ?></td>
|
||||
<td class="valField"><A href="<?php echo $accountData->getAccountUrl(); ?>"
|
||||
target="_blank"><?php echo $accountData->getAccountUrl(); ?></td>
|
||||
<td class="descField"><?php echo _('Nombre'); ?></td>
|
||||
<td class="valField"><?php echo $accountData->getAccountName(); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Usuario'); ?></td>
|
||||
<td class="valField"><?php echo $accountData->getAccountLogin(); ?></td>
|
||||
<td class="descField"><?php echo _('Cliente'); ?></td>
|
||||
<td class="valField"><?php echo $accountData->customer_name; ?></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Petición'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<?php if ($lastAction === \SP\Core\ActionsInterface::ACTION_ACC_SEARCH): ?>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('URL / IP'); ?></td>
|
||||
<td class="valField"><A href="<?php echo $accountData->getAccountUrl(); ?>"
|
||||
target="_blank"><?php echo $accountData->getAccountUrl(); ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Usuario'); ?></td>
|
||||
<td class="valField"><?php echo $accountData->getAccountLogin(); ?></td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<tr>
|
||||
<td class="descField"><?php echo _('Petición'); ?></td>
|
||||
<td class="valField">
|
||||
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
||||
<textarea class="mdl-textfield__input mdl-color-text--indigo-400" rows="3" id="description"
|
||||
name="description" maxlength="1000"></textarea>
|
||||
<label class="mdl-textfield__label"
|
||||
for="description"><?php echo _('Descripción de la petición'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="accountid" value="<?php echo $accountId; ?>"/>
|
||||
<input type="hidden" name="sk" value="<?php echo $sk; ?>">
|
||||
<input type="hidden" name="isAjax" value="1">
|
||||
</form>
|
||||
<label class="mdl-textfield__label"
|
||||
for="description"><?php echo _('Descripción de la petición'); ?></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="accountid" value="<?php echo $accountId; ?>"/>
|
||||
<input type="hidden" name="sk" value="<?php echo $sk; ?>">
|
||||
<input type="hidden" name="isAjax" value="1">
|
||||
</form>
|
||||
|
||||
<div class="item-actions">
|
||||
<ul>
|
||||
<li>
|
||||
<button id="btnBack" type="button"
|
||||
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
|
||||
title="<?php echo $icons->getIconBack()->getTitle(); ?>">
|
||||
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button id="btnSave" form="frmRequestModify"
|
||||
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
|
||||
title="<?php echo _('Enviar'); ?>">
|
||||
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="item-actions">
|
||||
<ul>
|
||||
<li>
|
||||
<button id="btnBack" type="button"
|
||||
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconBack()->getClassButton(); ?>"
|
||||
title="<?php echo $icons->getIconBack()->getTitle(); ?>">
|
||||
<i class="material-icons"><?php echo $icons->getIconBack()->getIcon(); ?></i>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button id="btnSave" form="frmRequestModify"
|
||||
class="mdl-button mdl-js-button mdl-button--fab mdl-button--mini-fab mdl-button--colored <?php echo $icons->getIconSave()->getClassButton(); ?>"
|
||||
title="<?php echo _('Enviar'); ?>">
|
||||
<i class="material-icons"><?php echo $icons->getIconSave()->getIcon(); ?></i>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
41
inc/themes/material-blue/views/account/viewpass.inc
Normal file
41
inc/themes/material-blue/views/account/viewpass.inc
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/** @var \SP\DataModel\CategoryData $category */
|
||||
/** @var \SP\Core\UI\ThemeIconsBase $icons */
|
||||
?>
|
||||
<div id="fancyContainer" align="center">
|
||||
<h2><?php echo $header; ?></h2>
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="dialog-user-text"><?php echo $login; ?></td>
|
||||
<td class="right">
|
||||
<button class="dialog-clip-user-button mdl-button mdl-js-button mdl-js-ripple-effect"
|
||||
title="<?php echo _('Copiar Usuario'); ?>" data-clipboard-target=".dialog-user-text">
|
||||
<?php echo _('Usuario'); ?>
|
||||
<i class="material-icons"><?php echo $icons->getIconClipboard()->getIcon(); ?></i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<?php if (!$isImage): ?>
|
||||
<td class="dialog-pass-text"><?php echo $pass; ?></td>
|
||||
<td class="right">
|
||||
<button class="dialog-clip-pass-button mdl-button mdl-js-button mdl-js-ripple-effect"
|
||||
title="<?php echo _('Copiar Clave'); ?>" data-clipboard-target=".dialog-pass-text">
|
||||
<?php echo _('Clave'); ?>
|
||||
<i class="material-icons"><?php echo $icons->getIconClipboard()->getIcon(); ?></i>
|
||||
</button>
|
||||
</td>
|
||||
<?php else: ?>
|
||||
<td class="dialog-pass-text">
|
||||
<img src="data:image/png;base64,<?php echo $pass; ?>"/>
|
||||
</td>
|
||||
<td> </td>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
sysPassApp.sk.set("<?php echo $sk; ?>");
|
||||
</script>
|
||||
@@ -3,12 +3,11 @@
|
||||
<div id="footer-left" class="footer-parts">
|
||||
<?php if ($loggedIn === true): ?>
|
||||
<div id="session">
|
||||
<i id="btnLogout" class="material-icons" title="<?php echo _('Salir'); ?>">exit_to_app</i>
|
||||
<i id="btnLogout" class="material-icons">exit_to_app</i>
|
||||
<span for="btnLogout"
|
||||
class="mdl-tooltip mdl-tooltip--top"><?php echo _('Salir'); ?></span>
|
||||
<?php if ($showPassIcon): ?>
|
||||
<i id="btnUserPass" class="btn-action material-icons"
|
||||
title=""
|
||||
<i id="btnUserPass" class="btn-action material-icons">
|
||||
data-onclick="appMgmt/show"
|
||||
data-action-id="<?php echo \SP\Core\ActionsInterface::ACTION_USR_USERS_EDITPASS; ?>"
|
||||
data-item-id="<?php echo $userId; ?>"
|
||||
|
||||
@@ -27,7 +27,7 @@ sysPass.Actions = function (Common) {
|
||||
var log = Common.log;
|
||||
|
||||
// Variable para almacenar la llamada a setTimeout()
|
||||
var timeout;
|
||||
var timeout = 0;
|
||||
|
||||
// Atributos de la ordenación de búsquedas
|
||||
var order = {key: 0, dir: 0};
|
||||
@@ -186,6 +186,13 @@ sysPass.Actions = function (Common) {
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Cerrar los diálogos
|
||||
*/
|
||||
var closeFloatingBox = function () {
|
||||
$.magnificPopup.close();
|
||||
};
|
||||
|
||||
/**
|
||||
* Objeto con las acciones de usuario
|
||||
*
|
||||
@@ -675,101 +682,59 @@ sysPass.Actions = function (Common) {
|
||||
log.info("account:showpass");
|
||||
|
||||
var opts = Common.appRequests().getRequestOpts();
|
||||
opts.url = ajaxUrl.account.showPass;
|
||||
opts.url = ajaxUrl.appMgmt.show;
|
||||
opts.data = {
|
||||
itemId: $obj.data("item-id"),
|
||||
actionId: $obj.data("action-id"),
|
||||
isHistory: $obj.data("history"),
|
||||
isFull: $obj.data("full"),
|
||||
isFull: 1,
|
||||
sk: Common.sk.get(),
|
||||
isAjax: 1
|
||||
};
|
||||
|
||||
Common.appRequests().getActionCall(opts, function (json) {
|
||||
if (json.status === 10) {
|
||||
main.logout();
|
||||
return;
|
||||
}
|
||||
if (json.status !== 0) {
|
||||
Common.msg.out(json);
|
||||
} else {
|
||||
var $container = $(json.data.html);
|
||||
|
||||
var $dialog;
|
||||
showFloatingBox($obj, $container);
|
||||
|
||||
$("<div></div>").dialog({
|
||||
modal: true,
|
||||
title: Common.config().LANG[47],
|
||||
width: "auto",
|
||||
open: function () {
|
||||
$dialog = $(this);
|
||||
|
||||
var content;
|
||||
var pass = "";
|
||||
var clipboardUserButton =
|
||||
"<button class=\"dialog-clip-user-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary\" data-clipboard-target=\".dialog-user-text\">" +
|
||||
"<span class=\"ui-button-icon-primary ui-icon ui-icon-clipboard\"></span>" +
|
||||
"<span class=\"ui-button-text\">" + Common.config().LANG[33] + "</span>" +
|
||||
"</button>";
|
||||
var clipboardPassButton =
|
||||
"<button class=\"dialog-clip-pass-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary\" data-clipboard-target=\".dialog-pass-text\">" +
|
||||
"<span class=\"ui-button-icon-primary ui-icon ui-icon-clipboard\"></span>" +
|
||||
"<span class=\"ui-button-text\">" + Common.config().LANG[34] + "</span>" +
|
||||
"</button>";
|
||||
var useImage = json.useimage;
|
||||
var user = "<p class=\"dialog-user-text\">" + json.acclogin + "</p>";
|
||||
|
||||
if (json.status === 0) {
|
||||
if (useImage === 0) {
|
||||
pass = "<p class=\"dialog-pass-text\">" + json.accpass + "</p>";
|
||||
} else {
|
||||
pass = "<img class=\"dialog-pass-text\" src=\"data:image/png;base64," + json.accpass + "\" />";
|
||||
clipboardPassButton = "";
|
||||
}
|
||||
|
||||
content = user + pass + "<div class=\"dialog-buttons\">" + clipboardUserButton + clipboardPassButton + "</div>";
|
||||
} else {
|
||||
content = "<span class=\"altTxtRed\">" + json.description + "</span>";
|
||||
|
||||
$dialog.dialog("option", "buttons",
|
||||
[{
|
||||
text: "Ok",
|
||||
icons: {primary: "ui-icon-close"},
|
||||
click: function () {
|
||||
$dialog.dialog("close");
|
||||
}
|
||||
}]
|
||||
);
|
||||
}
|
||||
|
||||
$dialog.html(content);
|
||||
|
||||
// Recentrar después de insertar el contenido
|
||||
$dialog.dialog("option", "position", "center");
|
||||
|
||||
// Cerrar Dialog a los 30s
|
||||
$dialog.parent().on("mouseleave", function () {
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(function () {
|
||||
$dialog.dialog("close");
|
||||
}, 30000);
|
||||
});
|
||||
},
|
||||
// Forzar la eliminación del objeto para que siga copiando al protapapeles al abrirlo de nuevo
|
||||
close: function () {
|
||||
$container.on("mouseleave", function () {
|
||||
clearTimeout(timeout);
|
||||
$dialog.dialog("destroy");
|
||||
}
|
||||
});
|
||||
timeout = setTimeout(function () {
|
||||
closeFloatingBox();
|
||||
}, 30000);
|
||||
}).on("mouseenter", function () {
|
||||
if (timeout !== 0) {
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
copypass: function ($obj) {
|
||||
log.info("account:copypass");
|
||||
|
||||
var opts = Common.appRequests().getRequestOpts();
|
||||
opts.url = ajaxUrl.account.showPass;
|
||||
opts.url = ajaxUrl.appMgmt.show;
|
||||
opts.async = false;
|
||||
opts.data = {
|
||||
itemId: $obj.data("item-id"),
|
||||
actionId: $obj.data("action-id"),
|
||||
isHistory: $obj.data("history"),
|
||||
isFull: 0,
|
||||
sk: Common.sk.get(),
|
||||
isAjax: 1
|
||||
};
|
||||
|
||||
return Common.appRequests().getActionCall(opts);
|
||||
var response = Common.appRequests().getActionCall(opts);
|
||||
|
||||
if (typeof response.responseJSON.csrf !== "undefined") {
|
||||
Common.sk.set(response.responseJSON.csrf);
|
||||
}
|
||||
|
||||
return response;
|
||||
},
|
||||
copy: function ($obj) {
|
||||
log.info("account:copy");
|
||||
|
||||
48
js/app-actions.min.js
vendored
48
js/app-actions.min.js
vendored
@@ -1,36 +1,34 @@
|
||||
var $jscomp={scope:{},findInternal:function(c,d,h){c instanceof String&&(c=String(c));for(var e=c.length,f=0;f<e;f++){var m=c[f];if(d.call(h,m,f,c))return{i:f,v:m}}return{i:-1,v:void 0}}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(c,d,h){if(h.get||h.set)throw new TypeError("ES3 does not support getters and setters.");c!=Array.prototype&&c!=Object.prototype&&(c[d]=h.value)};
|
||||
$jscomp.getGlobal=function(c){return"undefined"!=typeof window&&window===c?c:"undefined"!=typeof global?global:c};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(c,d,h,e){if(d){h=$jscomp.global;c=c.split(".");for(e=0;e<c.length-1;e++){var f=c[e];f in h||(h[f]={});h=h[f]}c=c[c.length-1];e=h[c];d=d(e);d!=e&&null!=d&&$jscomp.defineProperty(h,c,{configurable:!0,writable:!0,value:d})}};
|
||||
$jscomp.polyfill("Array.prototype.find",function(c){return c?c:function(c,h){return $jscomp.findInternal(this,c,h).v}},"es6-impl","es3");
|
||||
sysPass.Actions=function(c){var d=c.log,h,e={doAction:"/ajax/ajax_getContent.php",updateItems:"/ajax/ajax_getItems.php",user:{savePreferences:"/ajax/ajax_userPrefsSave.php",password:"/ajax/ajax_usrpass.php",passreset:"/ajax/ajax_passReset.php"},main:{login:"/ajax/ajax_doLogin.php",install:"/ajax/ajax_install.php",twofa:"/ajax/ajax_2fa.php",getUpdates:"/ajax/ajax_checkUpds.php"},checks:"/ajax/ajax_checkConnection.php",config:{save:"/ajax/ajax_configSave.php","export":"/ajax/ajax_export.php","import":"/ajax/ajax_import.php"},
|
||||
sysPass.Actions=function(c){var d=c.log,h=0,e={doAction:"/ajax/ajax_getContent.php",updateItems:"/ajax/ajax_getItems.php",user:{savePreferences:"/ajax/ajax_userPrefsSave.php",password:"/ajax/ajax_usrpass.php",passreset:"/ajax/ajax_passReset.php"},main:{login:"/ajax/ajax_doLogin.php",install:"/ajax/ajax_install.php",twofa:"/ajax/ajax_2fa.php",getUpdates:"/ajax/ajax_checkUpds.php"},checks:"/ajax/ajax_checkConnection.php",config:{save:"/ajax/ajax_configSave.php","export":"/ajax/ajax_export.php","import":"/ajax/ajax_import.php"},
|
||||
file:"/ajax/ajax_filesMgmt.php",link:"/ajax/ajax_itemSave.php",account:{save:"/ajax/ajax_itemSave.php",showPass:"/ajax/ajax_accViewPass.php",saveFavorite:"/ajax/ajax_itemSave.php",request:"/ajax/ajax_sendRequest.php",getFiles:"/ajax/ajax_accGetFiles.php",search:"/ajax/ajax_accSearch.php"},appMgmt:{show:"/ajax/ajax_itemShow.php",save:"/ajax/ajax_itemSave.php",search:"/ajax/ajax_itemSearch.php"},eventlog:"/ajax/ajax_eventlog.php",wiki:{show:"/ajax/ajax_wiki.php"}},f=function(a){a={actionId:a.actionId,
|
||||
itemId:"undefined"!==typeof a.itemId?a.itemId:0,isAjax:1};var b=c.appRequests().getRequestOpts();b.url=e.doAction;b.type="html";b.addHistory=!0;b.data=a;c.appRequests().getActionCall(b,function(c){$("#content").empty().html(c)})},m=function(a){d.info("updateItems");var b=$("#"+a.data("item-dst"))[0].selectize;b.clearOptions();b.load(function(b){var g=c.appRequests().getRequestOpts();g.url=e.updateItems;g.method="get";g.data={sk:c.sk.get(),itemType:a.data("item-type")};c.appRequests().getActionCall(g,
|
||||
function(c){b(c.items)})})},q=function(a,b){$.magnificPopup.open({items:{src:b,type:"inline"},callbacks:{open:function(){c.appTriggers().views.common("#fancyContainer")},close:function(){a.data("item-dst")&&m(a)}},showCloseBtn:!1})},r=function(a,b){var g=$('<div id="fancyContainer" class="image">'+b+"</div>"),d=g.find("img");d.hide();$.magnificPopup.open({items:{src:g,type:"inline"},callbacks:{open:function(){var a=this;d.on("click",function(){a.close()});setTimeout(function(){var a=c.resizeImage(d);
|
||||
g.css({backgroundColor:"#fff",width:a.width,height:"auto"});d.show("slow")},500)}}})},p={logout:function(){var a=window.location.search;c.redirect(0<a.length?"index.php"+a+"&logout=1":"index.php?logout=1")},login:function(a){d.info("main:login");var b=c.appRequests().getRequestOpts();b.url=e.main.login;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){switch(b.status){case 0:c.redirect(b.data.url);break;case 2:c.msg.out(b);a.find("input[type='text'],input[type='password']").val("");
|
||||
function(c){b(c.items)})})},p=function(a,b){$.magnificPopup.open({items:{src:b,type:"inline"},callbacks:{open:function(){c.appTriggers().views.common("#fancyContainer")},close:function(){a.data("item-dst")&&m(a)}},showCloseBtn:!1})},r=function(a,b){var g=$('<div id="fancyContainer" class="image">'+b+"</div>"),d=g.find("img");d.hide();$.magnificPopup.open({items:{src:g,type:"inline"},callbacks:{open:function(){var a=this;d.on("click",function(){a.close()});setTimeout(function(){var a=c.resizeImage(d);
|
||||
g.css({backgroundColor:"#fff",width:a.width,height:"auto"});d.show("slow")},500)}}})},q={logout:function(){var a=window.location.search;c.redirect(0<a.length?"index.php"+a+"&logout=1":"index.php?logout=1")},login:function(a){d.info("main:login");var b=c.appRequests().getRequestOpts();b.url=e.main.login;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){switch(b.status){case 0:c.redirect(b.data.url);break;case 2:c.msg.out(b);a.find("input[type='text'],input[type='password']").val("");
|
||||
a.find("input:first").focus();$("#mpass").prop("disabled",!1).val("");$("#smpass").show();break;default:c.msg.out(b),a.find("input[type='text'],input[type='password']").val(""),a.find("input:first").focus()}})},install:function(a){d.info("main:install");var b=c.appRequests().getRequestOpts();b.url=e.main.install;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a);0==a.status&&setTimeout(function(){c.redirect("index.php")},1E3)})},twofa:function(a){d.info("main:twofa");var b=
|
||||
c.appRequests().getRequestOpts();b.url=e.main.twofa;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a);0==a.status&&setTimeout(function(){c.redirect("index.php")},1E3)})},getUpdates:function(a){d.info("main:getUpdates");a=c.appRequests().getRequestOpts();a.url=e.main.getUpdates;a.type="html";a.method="get";a.timeout=1E4;a.useLoading=!1;a.data={isAjax:1};c.appRequests().getActionCall(a,function(a){$("#updates").html(a);"undefined"!==typeof componentHandler&&componentHandler.upgradeDom()},
|
||||
function(){$("#updates").html("!")})}},l={show:function(a){d.info("account:show");f({actionId:a.data("action-id"),itemId:a.data("item-id")})},showHistory:function(a){d.info("account:showHistory");f({actionId:a.data("action-id"),itemId:a.val()})},edit:function(a){d.info("account:edit");f({actionId:a.data("action-id"),itemId:a.data("item-id")})},"delete":function(a){d.info("account:delete");var b='<div id="alert"><p id="alert-text">'+c.config().LANG[3]+"</p></div>";showDialog({text:b,negative:{title:c.config().LANG[44],
|
||||
onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b=c.appRequests().getRequestOpts();b.url=e.account.save;b.data={itemId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get()};c.appRequests().getActionCall(b,function(a){c.msg.out(a);l.search()})}}})},showpass:function(a){d.info("account:showpass");var b=c.appRequests().getRequestOpts();b.url=e.account.showPass;b.data={itemId:a.data("item-id"),isHistory:a.data("history"),
|
||||
isFull:a.data("full"),isAjax:1};c.appRequests().getActionCall(b,function(a){if(10===a.status)p.logout();else{var b;$("<div></div>").dialog({modal:!0,title:c.config().LANG[47],width:"auto",open:function(){b=$(this);var g,d="";g='<button class="dialog-clip-user-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" data-clipboard-target=".dialog-user-text"><span class="ui-button-icon-primary ui-icon ui-icon-clipboard"></span><span class="ui-button-text">'+c.config().LANG[33]+
|
||||
"</span></button>";var e='<button class="dialog-clip-pass-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" data-clipboard-target=".dialog-pass-text"><span class="ui-button-icon-primary ui-icon ui-icon-clipboard"></span><span class="ui-button-text">'+c.config().LANG[34]+"</span></button>",d=a.useimage,k='<p class="dialog-user-text">'+a.acclogin+"</p>";0===a.status?(0===d?d='<p class="dialog-pass-text">'+a.accpass+"</p>":(d='<img class="dialog-pass-text" src="data:image/png;base64,'+
|
||||
a.accpass+'" />',e=""),g=k+d+'<div class="dialog-buttons">'+g+e+"</div>"):(g='<span class="altTxtRed">'+a.description+"</span>",b.dialog("option","buttons",[{text:"Ok",icons:{primary:"ui-icon-close"},click:function(){b.dialog("close")}}]));b.html(g);b.dialog("option","position","center");b.parent().on("mouseleave",function(){clearTimeout(h);h=setTimeout(function(){b.dialog("close")},3E4)})},close:function(){clearTimeout(h);b.dialog("destroy")}})}})},copypass:function(a){d.info("account:copypass");
|
||||
var b=c.appRequests().getRequestOpts();b.url=e.account.showPass;b.async=!1;b.data={itemId:a.data("item-id"),isHistory:a.data("history"),isAjax:1};return c.appRequests().getActionCall(b)},copy:function(a){d.info("account:copy");f({actionId:a.data("action-id"),itemId:a.data("item-id")})},savefavorite:function(a,b){d.info("account:saveFavorite");var g="on"===a.data("status"),k={actionId:g?a.data("action-id-off"):a.data("action-id-on"),itemId:a.data("item-id"),sk:c.sk.get(),isAjax:1},f=c.appRequests().getRequestOpts();
|
||||
f.url=e.account.saveFavorite;f.data=k;c.appRequests().getActionCall(f,function(d){c.msg.out(d);0===d.status&&(a.data("status",g?"off":"on"),"function"===typeof b&&b())})},request:function(a){d.info("account:request");var b=c.appRequests().getRequestOpts();b.url=e.account.request;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a)})},menu:function(a){a.hide();a.parent().children(".actions-optional").show(250)},sort:function(a){d.info("account:sort");var c=$("#frmSearch");
|
||||
c.find('input[name="skey"]').val(a.data("key"));c.find('input[name="sorder"]').val(a.data("dir"));c.find('input[name="start"]').val(a.data("start"));l.search()},editpass:function(a){d.info("account:editpass");f({actionId:a.data("action-id"),itemId:a.data("item-id")})},restore:function(a){d.info("account:restore");l.save(a)},getfiles:function(a){d.info("account:getfiles");var b=c.appRequests().getRequestOpts();b.method="get";b.type="html";b.url=e.account.getFiles;b.data={id:a.data("item-id"),del:a.data("delete"),
|
||||
sk:c.sk.get()};c.appRequests().getActionCall(b,function(c){a.html(c)})},search:function(){d.info("account:search");var a=$("#frmSearch");a.find("input[name='sk']").val(c.sk.get());a.find("input[name='skey']").val();a.find("input[name='sorder']").val();var b=c.appRequests().getRequestOpts();b.url=e.account.search;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){10===b.status&&c.msg.out(b);c.sk.set(b.sk);$("#res-content").empty().html(b.html);a.find("input:first").focus()})},save:function(a){d.info("account:save");
|
||||
var b=c.appRequests().getRequestOpts();b.url=e.account.save;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}},n={refreshTab:!0,show:function(a){d.info("appMgmt:show");if(a.data("item-dst")||!a.data("activetab"))n.refreshTab=!1;var b=c.appRequests().getRequestOpts();b.url=e.appMgmt.show;b.data={itemId:a.data("item-id"),actionId:a.data("action-id"),activeTab:a.data("activetab"),sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,function(b){0!==b.status?c.msg.out(b):
|
||||
q(a,b.data.html)})},"delete":function(a){d.info("appMgmt:delete");var b='<div id="alert"><p id="alert-text">'+c.config().LANG[12]+"</p></div>",g=a.data("selection"),k=[];if(g&&($(g).find(".is-selected").each(function(a,c){var b=$(this);k.push(b.data("item-id"))}),0===k.length))return;showDialog({text:b,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b.preventDefault();b=c.appRequests().getRequestOpts();
|
||||
b.url=e.appMgmt.save;b.data={itemId:g?k:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,function(b){c.msg.out(b);a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})}}})},save:function(a){d.info("appMgmt:save");var b=c.appRequests().getRequestOpts();b.url=e.appMgmt.save;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&(!0===n.refreshTab&&f({actionId:a.data("nextaction-id"),
|
||||
itemId:a.data("activetab")}),$.magnificPopup.close())})},search:function(a){d.info("appMgmt:search");var b=$(a.data("target")),g=c.appRequests().getRequestOpts();g.url=e.appMgmt.search;g.data=a.serialize();c.appRequests().getActionCall(g,function(a){0===a.status?b.html(a.data.html):b.html(c.msg.html.error(a.description));c.sk.set(a.csrf)})},nav:function(a){d.info("appMgmt:nav");var b=$("#"+a.data("action-form"));b.find("[name='start']").val(a.data("start"));b.find("[name='count']").val(a.data("count"));
|
||||
b.find("[name='sk']").val(c.sk.get());n.search(b)},ldapSync:function(a){d.info("appMgmt:ldapSync");var b='<div id="alert"><p id="alert-text">'+c.config().LANG[57]+"</p></div>";showDialog({text:b,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b=c.appRequests().getRequestOpts();b.url=e.appMgmt.save;b.data={actionId:a.data("action-id"),sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,
|
||||
function(a){c.msg.out(a)})}}})}};return{doAction:f,appMgmt:n,account:l,file:{view:function(a){d.info("file:view");var b=c.appRequests().getRequestOpts();b.url=e.file;b.type="html";b.data={fileId:a.data("item-id"),sk:c.sk.get(),actionId:a.data("action-id")};c.appRequests().getActionCall(b,function(b){"undefined"!==typeof b.status&&1===b.status?c.msg.out(b):b?r(a,b):c.msg.error(c.config().LANG[14])})},download:function(a){d.info("file:download");a={fileId:a.data("item-id"),sk:c.sk.get(),actionId:a.data("action-id")};
|
||||
$.fileDownload(c.config().APP_ROOT+e.file,{httpMethod:"POST",data:a})},"delete":function(a){d.info("file:delete");var b='<div id="alert"><p id="alert-text">'+c.config().LANG[15]+"</p></div>";showDialog({text:b,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b=c.appRequests().getRequestOpts();b.url=e.file;b.data={fileId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get()};
|
||||
c.appRequests().getActionCall(b,function(a){c.msg.out(a);0===a.status&&(a=$("#list-account-files"),l.getfiles(a))})}}})}},checks:{ldap:function(a){d.info("checks:ldap");a=$(a.data("src"));a.find("[name='sk']").val(c.sk.get());var b=c.appRequests().getRequestOpts();b.url=e.checks;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a);var b=$("#ldap-results");b.find(".list-wrap").html(c.appTheme().html.getList(a.data));b.show("slow")})},wiki:function(a){d.info("checks:wiki");
|
||||
a=$(a.data("src"));a.find("[name='sk']").val(c.sk.get());var b=c.appRequests().getRequestOpts();b.url=e.checks;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a);0===a.status&&$("#dokuWikiResCheck").html(a.data)})}},config:{save:function(a){d.info("config:save");var b=c.appRequests().getRequestOpts();b.url=e.config.save;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&"undefined"!==typeof a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),
|
||||
itemId:a.data("activetab")})})},backup:function(a){d.info("config:backup");var b=c.appRequests().getRequestOpts();b.url=e.config["export"];b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&"undefined"!==typeof a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})},"export":function(a){d.info("config:export");var b=c.appRequests().getRequestOpts();b.url=e.config["export"];b.data=a.serialize();c.appRequests().getActionCall(b,
|
||||
function(b){c.msg.out(b);0===b.status&&"undefined"!==typeof a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})},"import":function(a){d.info("config:import");var b=c.appRequests().getRequestOpts();b.url=e.config["import"];b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&"undefined"!==typeof a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})}},main:p,user:{savePreferences:function(a){d.info("user:savePreferences");
|
||||
var b=c.appRequests().getRequestOpts();b.url=e.user.savePreferences;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a);setTimeout(function(){window.location.replace("index.php")},2E3)})},saveSecurity:function(a){d.info("user:saveSecurity");var b=c.appRequests().getRequestOpts();b.url=e.user.savePreferences;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})},password:function(a){d.info("user:password");
|
||||
var b=c.appRequests().getRequestOpts();b.type="html";b.method="get";b.url=e.user.password;b.data={actionId:a.data("action-id"),itemId:a.data("item-id"),sk:a.data("sk"),isAjax:1};c.appRequests().getActionCall(b,function(b){0===b.length?p.logout():q(a,b)})},passreset:function(a){d.info("user:passreset");var b=c.appRequests().getRequestOpts();b.url=e.user.passreset;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}},link:{save:function(a){d.info("link:save");var b=c.appRequests().getRequestOpts();
|
||||
b.url=e.link;b.data={itemId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get(),isAjax:1};a='<div id="alert"><p id="alert-text">'+c.config().LANG[48]+"</p></div>";showDialog({text:a,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}},positive:{title:c.config().LANG[43],onClick:function(a){a.preventDefault();b.data.notify=1;c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}}})},refresh:function(a){d.info("link:refresh");
|
||||
onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b=c.appRequests().getRequestOpts();b.url=e.account.save;b.data={itemId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get()};c.appRequests().getActionCall(b,function(a){c.msg.out(a);l.search()})}}})},showpass:function(a){d.info("account:showpass");var b=c.appRequests().getRequestOpts();b.url=e.appMgmt.show;b.data={itemId:a.data("item-id"),actionId:a.data("action-id"),
|
||||
isHistory:a.data("history"),isFull:1,sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,function(b){0!==b.status?c.msg.out(b):(b=$(b.data.html),p(a,b),b.on("mouseleave",function(){clearTimeout(h);h=setTimeout(function(){$.magnificPopup.close()},3E4)}).on("mouseenter",function(){0!==h&&clearTimeout(h)}))})},copypass:function(a){d.info("account:copypass");var b=c.appRequests().getRequestOpts();b.url=e.appMgmt.show;b.async=!1;b.data={itemId:a.data("item-id"),actionId:a.data("action-id"),isHistory:a.data("history"),
|
||||
isFull:0,sk:c.sk.get(),isAjax:1};a=c.appRequests().getActionCall(b);"undefined"!==typeof a.responseJSON.csrf&&c.sk.set(a.responseJSON.csrf);return a},copy:function(a){d.info("account:copy");f({actionId:a.data("action-id"),itemId:a.data("item-id")})},savefavorite:function(a,b){d.info("account:saveFavorite");var g="on"===a.data("status"),k={actionId:g?a.data("action-id-off"):a.data("action-id-on"),itemId:a.data("item-id"),sk:c.sk.get(),isAjax:1},f=c.appRequests().getRequestOpts();f.url=e.account.saveFavorite;
|
||||
f.data=k;c.appRequests().getActionCall(f,function(d){c.msg.out(d);0===d.status&&(a.data("status",g?"off":"on"),"function"===typeof b&&b())})},request:function(a){d.info("account:request");var b=c.appRequests().getRequestOpts();b.url=e.account.request;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a)})},menu:function(a){a.hide();a.parent().children(".actions-optional").show(250)},sort:function(a){d.info("account:sort");var c=$("#frmSearch");c.find('input[name="skey"]').val(a.data("key"));
|
||||
c.find('input[name="sorder"]').val(a.data("dir"));c.find('input[name="start"]').val(a.data("start"));l.search()},editpass:function(a){d.info("account:editpass");f({actionId:a.data("action-id"),itemId:a.data("item-id")})},restore:function(a){d.info("account:restore");l.save(a)},getfiles:function(a){d.info("account:getfiles");var b=c.appRequests().getRequestOpts();b.method="get";b.type="html";b.url=e.account.getFiles;b.data={id:a.data("item-id"),del:a.data("delete"),sk:c.sk.get()};c.appRequests().getActionCall(b,
|
||||
function(c){a.html(c)})},search:function(){d.info("account:search");var a=$("#frmSearch");a.find("input[name='sk']").val(c.sk.get());a.find("input[name='skey']").val();a.find("input[name='sorder']").val();var b=c.appRequests().getRequestOpts();b.url=e.account.search;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){10===b.status&&c.msg.out(b);c.sk.set(b.sk);$("#res-content").empty().html(b.html);a.find("input:first").focus()})},save:function(a){d.info("account:save");var b=c.appRequests().getRequestOpts();
|
||||
b.url=e.account.save;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}},n={refreshTab:!0,show:function(a){d.info("appMgmt:show");if(a.data("item-dst")||!a.data("activetab"))n.refreshTab=!1;var b=c.appRequests().getRequestOpts();b.url=e.appMgmt.show;b.data={itemId:a.data("item-id"),actionId:a.data("action-id"),activeTab:a.data("activetab"),sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,function(b){0!==b.status?c.msg.out(b):p(a,b.data.html)})},"delete":function(a){d.info("appMgmt:delete");
|
||||
var b='<div id="alert"><p id="alert-text">'+c.config().LANG[12]+"</p></div>",g=a.data("selection"),k=[];if(g&&($(g).find(".is-selected").each(function(a,c){var b=$(this);k.push(b.data("item-id"))}),0===k.length))return;showDialog({text:b,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b.preventDefault();b=c.appRequests().getRequestOpts();b.url=e.appMgmt.save;b.data={itemId:g?k:a.data("item-id"),
|
||||
actionId:a.data("action-id"),sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,function(b){c.msg.out(b);a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})}}})},save:function(a){d.info("appMgmt:save");var b=c.appRequests().getRequestOpts();b.url=e.appMgmt.save;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&(!0===n.refreshTab&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")}),$.magnificPopup.close())})},
|
||||
search:function(a){d.info("appMgmt:search");var b=$(a.data("target")),g=c.appRequests().getRequestOpts();g.url=e.appMgmt.search;g.data=a.serialize();c.appRequests().getActionCall(g,function(a){0===a.status?b.html(a.data.html):b.html(c.msg.html.error(a.description));c.sk.set(a.csrf)})},nav:function(a){d.info("appMgmt:nav");var b=$("#"+a.data("action-form"));b.find("[name='start']").val(a.data("start"));b.find("[name='count']").val(a.data("count"));b.find("[name='sk']").val(c.sk.get());n.search(b)},
|
||||
ldapSync:function(a){d.info("appMgmt:ldapSync");var b='<div id="alert"><p id="alert-text">'+c.config().LANG[57]+"</p></div>";showDialog({text:b,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b=c.appRequests().getRequestOpts();b.url=e.appMgmt.save;b.data={actionId:a.data("action-id"),sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}}})}};return{doAction:f,
|
||||
appMgmt:n,account:l,file:{view:function(a){d.info("file:view");var b=c.appRequests().getRequestOpts();b.url=e.file;b.type="html";b.data={fileId:a.data("item-id"),sk:c.sk.get(),actionId:a.data("action-id")};c.appRequests().getActionCall(b,function(b){"undefined"!==typeof b.status&&1===b.status?c.msg.out(b):b?r(a,b):c.msg.error(c.config().LANG[14])})},download:function(a){d.info("file:download");a={fileId:a.data("item-id"),sk:c.sk.get(),actionId:a.data("action-id")};$.fileDownload(c.config().APP_ROOT+
|
||||
e.file,{httpMethod:"POST",data:a})},"delete":function(a){d.info("file:delete");var b='<div id="alert"><p id="alert-text">'+c.config().LANG[15]+"</p></div>";showDialog({text:b,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b=c.appRequests().getRequestOpts();b.url=e.file;b.data={fileId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get()};c.appRequests().getActionCall(b,function(a){c.msg.out(a);
|
||||
0===a.status&&(a=$("#list-account-files"),l.getfiles(a))})}}})}},checks:{ldap:function(a){d.info("checks:ldap");a=$(a.data("src"));a.find("[name='sk']").val(c.sk.get());var b=c.appRequests().getRequestOpts();b.url=e.checks;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a);var b=$("#ldap-results");b.find(".list-wrap").html(c.appTheme().html.getList(a.data));b.show("slow")})},wiki:function(a){d.info("checks:wiki");a=$(a.data("src"));a.find("[name='sk']").val(c.sk.get());
|
||||
var b=c.appRequests().getRequestOpts();b.url=e.checks;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a);0===a.status&&$("#dokuWikiResCheck").html(a.data)})}},config:{save:function(a){d.info("config:save");var b=c.appRequests().getRequestOpts();b.url=e.config.save;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&"undefined"!==typeof a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})},backup:function(a){d.info("config:backup");
|
||||
var b=c.appRequests().getRequestOpts();b.url=e.config["export"];b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&"undefined"!==typeof a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})},"export":function(a){d.info("config:export");var b=c.appRequests().getRequestOpts();b.url=e.config["export"];b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&"undefined"!==typeof a.data("nextaction-id")&&
|
||||
f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})},"import":function(a){d.info("config:import");var b=c.appRequests().getRequestOpts();b.url=e.config["import"];b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);0===b.status&&"undefined"!==typeof a.data("nextaction-id")&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})}},main:q,user:{savePreferences:function(a){d.info("user:savePreferences");var b=c.appRequests().getRequestOpts();b.url=
|
||||
e.user.savePreferences;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a);setTimeout(function(){window.location.replace("index.php")},2E3)})},saveSecurity:function(a){d.info("user:saveSecurity");var b=c.appRequests().getRequestOpts();b.url=e.user.savePreferences;b.data=a.serialize();c.appRequests().getActionCall(b,function(b){c.msg.out(b);f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})},password:function(a){d.info("user:password");var b=c.appRequests().getRequestOpts();
|
||||
b.type="html";b.method="get";b.url=e.user.password;b.data={actionId:a.data("action-id"),itemId:a.data("item-id"),sk:a.data("sk"),isAjax:1};c.appRequests().getActionCall(b,function(b){0===b.length?q.logout():p(a,b)})},passreset:function(a){d.info("user:passreset");var b=c.appRequests().getRequestOpts();b.url=e.user.passreset;b.data=a.serialize();c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}},link:{save:function(a){d.info("link:save");var b=c.appRequests().getRequestOpts();b.url=e.link;
|
||||
b.data={itemId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get(),isAjax:1};a='<div id="alert"><p id="alert-text">'+c.config().LANG[48]+"</p></div>";showDialog({text:a,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}},positive:{title:c.config().LANG[43],onClick:function(a){a.preventDefault();b.data.notify=1;c.appRequests().getActionCall(b,function(a){c.msg.out(a)})}}})},refresh:function(a){d.info("link:refresh");
|
||||
var b={itemId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get(),activeTab:a.data("activetab")},g=c.appRequests().getRequestOpts();g.url=e.link;g.data=b;c.appRequests().getActionCall(g,function(b){c.msg.out(b);0===b.status&&f({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})}},eventlog:{nav:function(a){if("undefined"===typeof a.data("start"))return!1;var b=c.appRequests().getRequestOpts();b.url=e.eventlog;b.type="html";b.data={start:a.data("start"),current:a.data("current")};
|
||||
c.appRequests().getActionCall(b,function(a){$("#content").html(a);c.scrollUp()})},clear:function(a){var b='<div id="alert"><p id="alert-text">'+c.config().LANG[20]+"</p></div>";showDialog({text:b,negative:{title:c.config().LANG[44],onClick:function(a){a.preventDefault();c.msg.error(c.config().LANG[44])}},positive:{title:c.config().LANG[43],onClick:function(b){b.preventDefault();b=c.appRequests().getRequestOpts();b.url=e.eventlog;b.data={clear:1,sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,
|
||||
function(b){c.msg.out(b);0==b.status&&f({actionId:a.data("nextaction-id")})})}}})}},ajaxUrl:e}};
|
||||
|
||||
@@ -571,7 +571,7 @@ sysPass.Main = function () {
|
||||
text: function (trigger) {
|
||||
var pass = appActions.account.copypass($(trigger));
|
||||
|
||||
return pass.responseJSON.accpass;
|
||||
return pass.responseJSON.data.accpass;
|
||||
}
|
||||
});
|
||||
|
||||
@@ -590,11 +590,14 @@ sysPass.Main = function () {
|
||||
var clipboardUser = new Clipboard(".dialog-clip-user-button");
|
||||
|
||||
clipboardPass.on("success", function (e) {
|
||||
$(".dialog-pass-text").addClass("dialog-clip-pass-copy round");
|
||||
$(".dialog-user-text").removeClass("dialog-clip-copy");
|
||||
$(".dialog-pass-text").addClass("dialog-clip-copy");
|
||||
e.clearSelection();
|
||||
});
|
||||
|
||||
clipboardUser.on("success", function (e) {
|
||||
$(".dialog-pass-text").removeClass("dialog-clip-copy");
|
||||
$(".dialog-user-text").addClass("dialog-clip-copy");
|
||||
e.clearSelection();
|
||||
});
|
||||
};
|
||||
|
||||
32
js/app-main.min.js
vendored
32
js/app-main.min.js
vendored
@@ -3,19 +3,19 @@ $jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Sym
|
||||
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(a){var f=0;return $jscomp.iteratorPrototype(function(){return f<a.length?{done:!1,value:a[f++]}:{done:!0}})};
|
||||
$jscomp.iteratorPrototype=function(a){$jscomp.initSymbolIterator();a={next:a};a[$jscomp.global.Symbol.iterator]=function(){return this};return a};$jscomp.array=$jscomp.array||{};$jscomp.iteratorFromArray=function(a,f){$jscomp.initSymbolIterator();a instanceof String&&(a+="");var e=0,c={next:function(){if(e<a.length){var g=e++;return{value:f(g,a[g]),done:!1}}c.next=function(){return{done:!0,value:void 0}};return c.next()}};c[Symbol.iterator]=function(){return c};return c};
|
||||
$jscomp.polyfill=function(a,f,e,c){if(f){e=$jscomp.global;a=a.split(".");for(c=0;c<a.length-1;c++){var g=a[c];g in e||(e[g]={});e=e[g]}a=a[a.length-1];c=e[a];f=f(c);f!=c&&null!=f&&$jscomp.defineProperty(e,a,{configurable:!0,writable:!0,value:f})}};$jscomp.polyfill("Array.prototype.keys",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(a){return a})}},"es6-impl","es3");
|
||||
$jscomp.findInternal=function(a,f,e){a instanceof String&&(a=String(a));for(var c=a.length,g=0;g<c;g++){var m=a[g];if(f.call(e,m,g,a))return{i:g,v:m}}return{i:-1,v:void 0}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,e){return $jscomp.findInternal(this,a,e).v}},"es6-impl","es3");
|
||||
sysPass.Main=function(){var a={APP_ROOT:"",LANG:[],PK:"",MAX_FILE_SIZE:1024,CRYPT:new JSEncrypt,CHECK_UPDATES:!1,TIMEZONE:"",LOCALE:"",DEBUG:""},f={passLength:0,minPasswordLength:8,complexity:{numbers:!0,symbols:!0,uppercase:!0,numlength:12}},e={},c={},g={},m={},r={},q={},h={log:function(b){!0===a.DEBUG&&console.log(b)},info:function(b){!0===a.DEBUG&&console.info(b)},error:function(a){console.error(a)},warn:function(a){console.warn(a)}};toastr.options={closeButton:!1,debug:!1,newestOnTop:!1,progressBar:!1,
|
||||
positionClass:"toast-top-center",preventDuplicates:!1,onclick:null,showDuration:"300",hideDuration:"1000",timeOut:"5000",extendedTimeOut:"1000",showEasing:"swing",hideEasing:"linear",showMethod:"fadeIn",hideMethod:"fadeOut"};var l={ok:function(a){toastr.success(a)},error:function(a){toastr.error(a)},warn:function(a){toastr.warning(a)},info:function(a){toastr.info(a)},out:function(a){if("object"===typeof a){var b=a.status,d=a.description;"undefined"!==typeof a.messages&&0<a.messages.length&&(d=d+"<br>"+
|
||||
a.messages.join("<br>"));switch(b){case 0:l.ok(d);break;case 1:case 2:l.error(d);break;case 3:l.warn(d);break;case 10:g.main.logout()}}},html:{error:function(b){return'<p class="error round">Oops...<br>'+a.LANG[1]+"<br>"+b+"</p>"}}},w=function(b){h.info("getEnvironment");var k=window.location.pathname.split("/"),d=window.location.protocol+"//"+window.location.host+function(){for(var a="",b=1;b<=k.length-2;b++)a+="/"+k[b];return a}(),n=m.getRequestOpts();n.url=d+"/ajax/ajax_getEnvironment.php";n.method=
|
||||
"get";n.async=!1;n.useLoading=!1;n.data={isAjax:1};m.getActionCall(n,function(d){a.APP_ROOT=d.app_root;a.LANG=d.lang;a.PK=d.pk;a.CHECK_UPDATES=d.check_updates;a.CRYPT.setPublicKey(d.pk);a.TIMEZONE=d.timezone;a.LOCALE=d.locale;a.DEBUG=d.debug;"function"===typeof b&&b()})},u={get:function(){h.info("sk:get");return $("#container").attr("data-sk")},set:function(a){h.info("sk:set");$("#container").attr("data-sk",a)}},x=function(){var a=$("#container");if(!a.hasClass("content-no-auto-resize")){var k=$("#content").height()+
|
||||
200;a.css("height",k)}},y=function(){$("html, body").animate({scrollTop:0},"slow")},z=function(a){window.location.replace(a)},A=function(b){var k=function(){return{actionId:b.data("action-id"),itemId:b.data("item-id"),sk:u.get()}},d={requestDoneAction:"",requestData:function(a){k=function(){return a}},beforeSendAction:"",url:""},n=function(a){if("undefined"===typeof d.url||""===d.url)return!1;var b=new FormData;b.append("inFile",a);b.append("isAjax",1);var p=k();Object.keys(p).forEach(function(a){h.info(a);
|
||||
b.append(a,p[a])});a=m.getRequestOpts();a.url=d.url;a.processData=!1;a.contentType=!1;a.data=b;m.getActionCall(a,function(a){var b=a.status;a=a.description;0===b?("function"===typeof d.requestDoneAction&&d.requestDoneAction(),l.ok(a)):10===b?g.main.logout():l.error(a)})},c=function(d){if(5<d.length)l.error(a.LANG[17]+" (Max: 5)");else for(var k=0;k<d.length;k++){var p=d[k];if(p.size/1E3>a.MAX_FILE_SIZE)l.error(a.LANG[18]+"<br>"+p.name+" (Max: "+a.MAX_FILE_SIZE+")");else{var c;a:{c=p.name;for(var e=
|
||||
b.data("files-ext").toLowerCase().split(","),f=0;f<=e.length;f++)if(-1!==c.indexOf(e[f])){c=!0;break a}c=!1}c?n(d[k]):l.error(a.LANG[19]+"<br>"+p.name)}}},e=function(a){var b=$("#fileUploadForm");!1===a&&b.hide();a=b.find("input[type='file']");a.on("change",function(){"function"===typeof d.beforeSendAction&&d.beforeSendAction();c(this.files)});return a};window.File&&window.FileList&&window.FileReader?function(){h.info("fileUpload:init");var a=e(!1);b.on("dragover dragenter",function(a){h.info("fileUpload:drag");
|
||||
a.stopPropagation();a.preventDefault()});b.on("drop",function(a){h.info("fileUpload:drop");a.stopPropagation();a.preventDefault();"function"===typeof d.beforeSendAction&&d.beforeSendAction();c(a.dataTransfer.files)});b.on("click",function(){a.click()})}():e(!0);return d},B=function(a){h.info("checkPassLevel");f.passLength=a.val().length;v(zxcvbn(a.val()),a)},v=function(b,k){h.info("outputResult");var d=$(".passLevel-"+k.attr("id")),c=b.score;d.show();d.removeClass("weak good strong strongest");0===
|
||||
f.passLength?d.attr("title","").empty():f.passLength<f.minPasswordLength?d.attr("title",a.LANG[11]).addClass("weak"):0===c?d.attr("title",a.LANG[9]+" - "+b.feedback.warning).addClass("weak"):1===c||2===c?d.attr("title",a.LANG[8]+" - "+b.feedback.warning).addClass("good"):3===c?d.attr("title",a.LANG[7]).addClass("strong"):4===c&&d.attr("title",a.LANG[10]).addClass("strongest")},C=function(b){$(b).find(".checkbox").button({icons:{primary:"ui-icon-transferthick-e-w"}}).click(function(){var b=$(this);
|
||||
!0===b.prop("checked")?b.button("option","label",a.LANG[40]):b.button("option","label",a.LANG[41])})},t=function(b){h.info("encryptFormValue");var c=b.val();""!==c&&parseInt(b.attr("data-length"))!==c.length&&(c=a.CRYPT.encrypt(c),b.val(c),b.attr("data-length",c.length))},D=function(){h.info("initializeClipboard");var b=new Clipboard(".clip-pass-button",{text:function(a){return g.account.copypass($(a)).responseJSON.accpass}});b.on("success",function(b){l.ok(a.LANG[45])});b.on("error",function(b){l.error(a.LANG[46])});
|
||||
var b=new Clipboard(".dialog-clip-pass-button"),c=new Clipboard(".dialog-clip-user-button");b.on("success",function(a){$(".dialog-pass-text").addClass("dialog-clip-pass-copy round");a.clearSelection()});c.on("success",function(a){a.clearSelection()})},E=function(){h.info("bindPassEncrypt");$("body").on("blur",":input[type=password]",function(a){a=$(this);a.hasClass("passwordfield__no-pki")||t(a)}).on("keypress",":input[type=password]",function(a){13===a.keyCode&&(a.preventDefault(),a=$(this),t(a),
|
||||
a.closest("form").submit())})},F=function(a,c){console.info("Eval: "+a);if("function"===typeof a)a(c);else throw Error("Function not found: "+a);},G=function(a){h.info("resizeImage");var b=.9*$(window).width(),c=.9*$(window).height(),e={width:a.width(),height:a.height()},f={calc:0,main:0,secondary:0,factor:.9,rel:e.width/e.height},g=function(a){a.main>a.secondary?a.calc=a.main/a.rel:a.main<a.secondary&&(a.calc=a.main*a.rel);a.calc>a.secondary&&(a.main*=a.factor,g(a));return a},l=function(){f.main=
|
||||
b;f.secondary=c;var d=g(f);a.css({width:d.main,height:d.calc});e.width=d.main;e.height=d.calc},m=function(){f.main=c;f.secondary=b;var d=g(f);a.css({width:d.calc,height:d.main});e.width=d.calc;e.height=d.main};e.width>b?l():e.height>c&&(h.info("height"),m());return e},H=function(){return $.extend({log:h,config:function(){return a},appTheme:function(){return e},appActions:function(){return g},appTriggers:function(){return c},appRequests:function(){return m},evalAction:F,resizeImage:G},r)},I=function(){return{actions:function(){return g},
|
||||
triggers:function(){return c},theme:function(){return e},sk:u,msg:l,log:h,passToClip:0,passwordData:f,outputResult:v,checkboxDetect:C,checkPassLevel:B,encryptFormValue:t,fileUpload:A,redirect:z,scrollUp:y,setContentSize:x}};(function(){h.info("init");r=I();q=H();c=sysPass.Triggers(q);g=sysPass.Actions(q);m=sysPass.Requests(q);w(function(){""!==a.PK&&E();"function"===typeof sysPass.Theme&&(e=sysPass.Theme(q));!0===a.CHECK_UPDATES&&g.main.getUpdates();D();h.info("setupCallbacks");switch($("#container").data("page")){case "login":c.views.login();
|
||||
break;case "2fa":c.views.twofa();break;case "passreset":c.views.passreset()}0<$("footer").length&&c.views.footer()})})();return r};
|
||||
$jscomp.findInternal=function(a,f,e){a instanceof String&&(a=String(a));for(var c=a.length,g=0;g<c;g++){var l=a[g];if(f.call(e,l,g,a))return{i:g,v:l}}return{i:-1,v:void 0}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,e){return $jscomp.findInternal(this,a,e).v}},"es6-impl","es3");
|
||||
sysPass.Main=function(){var a={APP_ROOT:"",LANG:[],PK:"",MAX_FILE_SIZE:1024,CRYPT:new JSEncrypt,CHECK_UPDATES:!1,TIMEZONE:"",LOCALE:"",DEBUG:""},f={passLength:0,minPasswordLength:8,complexity:{numbers:!0,symbols:!0,uppercase:!0,numlength:12}},e={},c={},g={},l={},q={},n={},h={log:function(b){!0===a.DEBUG&&console.log(b)},info:function(b){!0===a.DEBUG&&console.info(b)},error:function(a){console.error(a)},warn:function(a){console.warn(a)}};toastr.options={closeButton:!1,debug:!1,newestOnTop:!1,progressBar:!1,
|
||||
positionClass:"toast-top-center",preventDuplicates:!1,onclick:null,showDuration:"300",hideDuration:"1000",timeOut:"5000",extendedTimeOut:"1000",showEasing:"swing",hideEasing:"linear",showMethod:"fadeIn",hideMethod:"fadeOut"};var k={ok:function(a){toastr.success(a)},error:function(a){toastr.error(a)},warn:function(a){toastr.warning(a)},info:function(a){toastr.info(a)},out:function(a){if("object"===typeof a){var b=a.status,d=a.description;"undefined"!==typeof a.messages&&0<a.messages.length&&(d=d+"<br>"+
|
||||
a.messages.join("<br>"));switch(b){case 0:k.ok(d);break;case 1:case 2:k.error(d);break;case 3:k.warn(d);break;case 10:g.main.logout()}}},html:{error:function(b){return'<p class="error round">Oops...<br>'+a.LANG[1]+"<br>"+b+"</p>"}}},w=function(b){h.info("getEnvironment");var p=window.location.pathname.split("/"),d=window.location.protocol+"//"+window.location.host+function(){for(var a="",b=1;b<=p.length-2;b++)a+="/"+p[b];return a}(),c=l.getRequestOpts();c.url=d+"/ajax/ajax_getEnvironment.php";c.method=
|
||||
"get";c.async=!1;c.useLoading=!1;c.data={isAjax:1};l.getActionCall(c,function(d){a.APP_ROOT=d.app_root;a.LANG=d.lang;a.PK=d.pk;a.CHECK_UPDATES=d.check_updates;a.CRYPT.setPublicKey(d.pk);a.TIMEZONE=d.timezone;a.LOCALE=d.locale;a.DEBUG=d.debug;"function"===typeof b&&b()})},u={get:function(){h.info("sk:get");return $("#container").attr("data-sk")},set:function(a){h.info("sk:set");$("#container").attr("data-sk",a)}},x=function(){var a=$("#container");if(!a.hasClass("content-no-auto-resize")){var c=$("#content").height()+
|
||||
200;a.css("height",c)}},y=function(){$("html, body").animate({scrollTop:0},"slow")},z=function(a){window.location.replace(a)},A=function(b){var c=function(){return{actionId:b.data("action-id"),itemId:b.data("item-id"),sk:u.get()}},d={requestDoneAction:"",requestData:function(a){c=function(){return a}},beforeSendAction:"",url:""},e=function(a){if("undefined"===typeof d.url||""===d.url)return!1;var b=new FormData;b.append("inFile",a);b.append("isAjax",1);var m=c();Object.keys(m).forEach(function(a){h.info(a);
|
||||
b.append(a,m[a])});a=l.getRequestOpts();a.url=d.url;a.processData=!1;a.contentType=!1;a.data=b;l.getActionCall(a,function(a){var b=a.status;a=a.description;0===b?("function"===typeof d.requestDoneAction&&d.requestDoneAction(),k.ok(a)):10===b?g.main.logout():k.error(a)})},f=function(d){if(5<d.length)k.error(a.LANG[17]+" (Max: 5)");else for(var c=0;c<d.length;c++){var m=d[c];if(m.size/1E3>a.MAX_FILE_SIZE)k.error(a.LANG[18]+"<br>"+m.name+" (Max: "+a.MAX_FILE_SIZE+")");else{var f;a:{f=m.name;for(var p=
|
||||
b.data("files-ext").toLowerCase().split(","),g=0;g<=p.length;g++)if(-1!==f.indexOf(p[g])){f=!0;break a}f=!1}f?e(d[c]):k.error(a.LANG[19]+"<br>"+m.name)}}},t=function(a){var b=$("#fileUploadForm");!1===a&&b.hide();a=b.find("input[type='file']");a.on("change",function(){"function"===typeof d.beforeSendAction&&d.beforeSendAction();f(this.files)});return a};window.File&&window.FileList&&window.FileReader?function(){h.info("fileUpload:init");var a=t(!1);b.on("dragover dragenter",function(a){h.info("fileUpload:drag");
|
||||
a.stopPropagation();a.preventDefault()});b.on("drop",function(a){h.info("fileUpload:drop");a.stopPropagation();a.preventDefault();"function"===typeof d.beforeSendAction&&d.beforeSendAction();f(a.dataTransfer.files)});b.on("click",function(){a.click()})}():t(!0);return d},B=function(a){h.info("checkPassLevel");f.passLength=a.val().length;v(zxcvbn(a.val()),a)},v=function(b,c){h.info("outputResult");var d=$(".passLevel-"+c.attr("id")),e=b.score;d.show();d.removeClass("weak good strong strongest");0===
|
||||
f.passLength?d.attr("title","").empty():f.passLength<f.minPasswordLength?d.attr("title",a.LANG[11]).addClass("weak"):0===e?d.attr("title",a.LANG[9]+" - "+b.feedback.warning).addClass("weak"):1===e||2===e?d.attr("title",a.LANG[8]+" - "+b.feedback.warning).addClass("good"):3===e?d.attr("title",a.LANG[7]).addClass("strong"):4===e&&d.attr("title",a.LANG[10]).addClass("strongest")},C=function(b){$(b).find(".checkbox").button({icons:{primary:"ui-icon-transferthick-e-w"}}).click(function(){var b=$(this);
|
||||
!0===b.prop("checked")?b.button("option","label",a.LANG[40]):b.button("option","label",a.LANG[41])})},r=function(b){h.info("encryptFormValue");var c=b.val();""!==c&&parseInt(b.attr("data-length"))!==c.length&&(c=a.CRYPT.encrypt(c),b.val(c),b.attr("data-length",c.length))},D=function(){h.info("initializeClipboard");var b=new Clipboard(".clip-pass-button",{text:function(a){return g.account.copypass($(a)).responseJSON.data.accpass}});b.on("success",function(b){k.ok(a.LANG[45])});b.on("error",function(b){k.error(a.LANG[46])});
|
||||
var b=new Clipboard(".dialog-clip-pass-button"),c=new Clipboard(".dialog-clip-user-button");b.on("success",function(a){$(".dialog-user-text").removeClass("dialog-clip-copy");$(".dialog-pass-text").addClass("dialog-clip-copy");a.clearSelection()});c.on("success",function(a){$(".dialog-pass-text").removeClass("dialog-clip-copy");$(".dialog-user-text").addClass("dialog-clip-copy");a.clearSelection()})},E=function(){h.info("bindPassEncrypt");$("body").on("blur",":input[type=password]",function(a){a=$(this);
|
||||
a.hasClass("passwordfield__no-pki")||r(a)}).on("keypress",":input[type=password]",function(a){13===a.keyCode&&(a.preventDefault(),a=$(this),r(a),a.closest("form").submit())})},F=function(a,c){console.info("Eval: "+a);if("function"===typeof a)a(c);else throw Error("Function not found: "+a);},G=function(a){h.info("resizeImage");var b=.9*$(window).width(),c=.9*$(window).height(),f={calc:0,main:0,secondary:0,factor:.9},e={width:a.width(),height:a.height()},g=e.width/e.height,k=function(a){1<g?a.calc=
|
||||
a.main/g:1>g&&(a.calc=a.main*g);a.calc>a.secondary&&(a.main*=a.factor,k(a));return a},l=function(){f.main=c;f.secondary=b;var d=k(f);a.css({width:d.calc,height:d.main});e.width=d.calc;e.height=d.main};e.width>b?function(){f.main=b;f.secondary=c;var d=k(f);a.css({width:d.main,height:d.calc});e.width=d.main;e.height=d.calc}():e.height>c&&l();return e},H=function(){return $.extend({log:h,config:function(){return a},appTheme:function(){return e},appActions:function(){return g},appTriggers:function(){return c},
|
||||
appRequests:function(){return l},evalAction:F,resizeImage:G},q)},I=function(){return{actions:function(){return g},triggers:function(){return c},theme:function(){return e},sk:u,msg:k,log:h,passToClip:0,passwordData:f,outputResult:v,checkboxDetect:C,checkPassLevel:B,encryptFormValue:r,fileUpload:A,redirect:z,scrollUp:y,setContentSize:x}};(function(){h.info("init");q=I();n=H();c=sysPass.Triggers(n);g=sysPass.Actions(n);l=sysPass.Requests(n);w(function(){""!==a.PK&&E();"function"===typeof sysPass.Theme&&
|
||||
(e=sysPass.Theme(n));!0===a.CHECK_UPDATES&&g.main.getUpdates();D();h.info("setupCallbacks");switch($("#container").data("page")){case "login":c.views.login();break;case "2fa":c.views.twofa();break;case "passreset":c.views.passreset()}0<$("footer").length&&c.views.footer()})})();return q};
|
||||
|
||||
Reference in New Issue
Block a user