* [MOD] Improved requests handling.

* [MOD] Improved security on backup tab. App Admin role is needed for download files
This commit is contained in:
nuxsmin
2017-01-18 14:50:04 +01:00
parent e6a4400880
commit 5146c01fa2
14 changed files with 49 additions and 147 deletions

View File

@@ -32,7 +32,7 @@ define('APP_ROOT', '..');
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
if (!Init::isLoggedIn()) {
Response::printJson(__('La sesión no se ha iniciado o ha caducado'), 10);

View File

@@ -1,109 +0,0 @@
<?php
/**
* sysPass
*
* @author nuxsmin
* @link http://syspass.org
* @copyright 2012-2017, 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/>.
*/
use SP\Account\Account;
use SP\Core\Session;
use SP\Account\AccountHistory;
use SP\Core\Acl;
use SP\Core\Crypt;
use SP\Core\Init;
use SP\DataModel\AccountExtData;
use SP\Http\Request;
use SP\Http\Response;
use SP\Log\Log;
use SP\Mgmt\Users\UserPass;
use SP\Util\Checks;
define('APP_ROOT', '..');
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
if (!Init::isLoggedIn()) {
Response::printJson(__('La sesión no se ha iniciado o ha caducado'), 10);
}
$accountId = Request::analyze('itemId', false);
$isHistory = Request::analyze('isHistory', false);
$isFull = Request::analyze('isFull', false);
if (!$accountId) {
return;
}
$AccountData = new AccountExtData();
if (!$isHistory) {
$AccountData->setAccountId($accountId);
$Account = new Account($AccountData);
} else {
$Account = new AccountHistory($AccountData);
$Account->setId($accountId);
}
$Account->getAccountPassData();
if ($isHistory && !$Account->checkAccountMPass()) {
Response::printJson(__('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()) {
Response::printJson(__('No tiene permisos para acceder a esta cuenta'));
} elseif (!UserPass::getItem(Session::getUserData())->checkUserUpdateMPass()) {
Response::printJson(__('Clave maestra actualizada') . '<br>' . __('Reinicie la sesión para cambiarla'));
}
$accountClearPass = Crypt::getDecrypt($AccountData->getAccountPass(), $AccountData->getAccountIV());
if (!$isHistory) {
$Account->incrementDecryptCounter();
$Log = new Log();
$LogMessage = $Log->getLogMessage();
$LogMessage->setAction(__('Ver Clave', false));
$LogMessage->addDetails(__('ID', false), $accountId);
$LogMessage->addDetails(__('Cuenta', false), $AccountData->getCustomerName() . ' / ' . $AccountData->getAccountName());
$Log->writeLog();
}
$useImage = (int)Checks::accountPassToImageIsEnabled();
if (!$useImage) {
$pass = $isFull ? htmlentities(trim($accountClearPass)) : trim($accountClearPass);
} else {
$pass = \SP\Util\ImageUtil::convertText($accountClearPass);
}
$data = [
'title' => __('Clave de Cuenta'),
'acclogin' => $AccountData->getAccountLogin(),
'accpass' => $pass,
'useimage' => $useImage
];
Response::printJson($data, 0);

View File

@@ -29,7 +29,7 @@ define('APP_ROOT', '..');
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
if (!Request::analyze('login', false)) {
return;

View File

@@ -31,7 +31,7 @@ define('APP_ROOT', '..');
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
if (!Init::isLoggedIn()) {
\SP\Util\Util::logout();

View File

@@ -42,7 +42,7 @@ define('APP_ROOT', '..');
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
if (!Init::isLoggedIn()) {
Util::logout();

View File

@@ -29,7 +29,7 @@ use SP\Http\Request;
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
$ItemSearch = new ItemSearchController();
$ItemSearch->doAction();

View File

@@ -29,7 +29,7 @@ define('APP_ROOT', '..');
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
$ItemShow = new ItemShowController();
$ItemShow->doAction();

View File

@@ -29,7 +29,7 @@ use SP\Http\Request;
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
$NoticesSearch = new NoticesSearchController();
$NoticesSearch->doAction();

View File

@@ -29,7 +29,7 @@ use SP\Http\Request;
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
$NoticeShow = new NoticeShowController();
$NoticeShow->doAction();

View File

@@ -29,7 +29,7 @@ define('APP_ROOT', '..');
require_once APP_ROOT . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'Base.php';
Request::checkReferer('POST');
Request::checkReferer('GET');
$Controller = new WikiController();
$Controller->doAction();

View File

@@ -319,6 +319,7 @@ class ConfigController extends ControllerBase implements ActionsInterface
$this->view->assign('siteName', Util::getAppInfo('appname'));
$this->view->assign('backupDir', Init::$SERVERROOT . '/backup');
$this->view->assign('backupPath', Init::$WEBROOT . '/backup');
$this->view->assign('isAdminApp', $this->UserData->isUserIsAdminApp());
$backupHash = $this->Config->getBackupHash();
$exportHash = $this->Config->getExportHash();

View File

@@ -21,7 +21,7 @@
<?php echo __('Descargar Actual'); ?>
</td>
<td class="valField">
<?php if (file_exists($backupFile['absolute']) && file_exists($backupDbFile['absolute'])): ?>
<?php if ($isAdminApp && file_exists($backupFile['absolute']) && file_exists($backupDbFile['absolute'])): ?>
<a href="<?php echo $backupDbFile['relative']; ?>"
download="<?php echo $backupDbFile['filename']; ?>" class="download">
<button type="button" class="mdl-button mdl-js-button">
@@ -100,7 +100,7 @@
<?php echo __('Descargar Actual'); ?>
</td>
<td class="valField">
<?php if (file_exists($exportFile['absolute'])): ?>
<?php if ($isAdminApp && file_exists($exportFile['absolute'])): ?>
<a href="<?php echo $exportFile['relative']; ?>"
download="<?php echo $exportFile['filename']; ?>"
class="download">

View File

@@ -57,7 +57,6 @@ sysPass.Actions = function (Common) {
plugin: "/ajax/ajax_itemSave.php",
account: {
save: "/ajax/ajax_itemSave.php",
showPass: "/ajax/ajax_accViewPass.php",
saveFavorite: "/ajax/ajax_itemSave.php",
request: "/ajax/ajax_itemSave.php",
getFiles: "/ajax/ajax_accGetFiles.php",
@@ -88,6 +87,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.doAction;
opts.method = "get";
opts.type = "html";
opts.addHistory = true;
opts.data = data;
@@ -329,6 +329,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.main.login;
opts.method = "get";
opts.data = $obj.serialize();
Common.appRequests().getActionCall(opts, function (json) {
@@ -739,6 +740,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.appMgmt.show;
opts.method = "get";
opts.data = {
itemId: parentId == 0 ? $obj.data("item-id") : parentId,
actionId: $obj.data("action-id"),
@@ -776,6 +778,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.appMgmt.show;
opts.method = "get";
opts.async = false;
opts.data = {
itemId: parentId == 0 ? $obj.data("item-id") : parentId,
@@ -895,6 +898,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.account.search;
opts.method = "get";
opts.data = $frmSearch.serialize();
Common.appRequests().getActionCall(opts, function (json) {
@@ -939,6 +943,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.appMgmt.show;
opts.method = "get";
opts.data = {
itemId: $obj.data("item-id"),
actionId: $obj.data("action-id"),
@@ -1034,6 +1039,7 @@ sysPass.Actions = function (Common) {
var $target = $($obj.data("target"));
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.appMgmt.search;
opts.method = "get";
opts.data = $obj.serialize();
Common.appRequests().getActionCall(opts, function (json) {
@@ -1105,6 +1111,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.eventlog;
opts.method = "get";
opts.type = "html";
opts.data = {start: $obj.data("start"), current: $obj.data("current")};
@@ -1159,6 +1166,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.wiki.show;
opts.method = "get";
opts.data = {
pageName: $obj.data("pagename"),
actionId: $obj.data("action-id"),
@@ -1184,10 +1192,10 @@ sysPass.Actions = function (Common) {
log.info("plugin:enable");
var data = {
"itemId": $obj.data("item-id"),
"actionId": $obj.data("action-id"),
"sk": Common.sk.get(),
"activeTab": $obj.data("activetab")
itemId: $obj.data("item-id"),
actionId: $obj.data("action-id"),
sk: Common.sk.get(),
activeTab: $obj.data("activetab")
};
var opts = Common.appRequests().getRequestOpts();
@@ -1278,6 +1286,7 @@ sysPass.Actions = function (Common) {
var $target = $($obj.data("target"));
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.notice.search;
opts.method = "get";
opts.data = $obj.serialize();
Common.appRequests().getActionCall(opts, function (json) {
@@ -1295,6 +1304,7 @@ sysPass.Actions = function (Common) {
var opts = Common.appRequests().getRequestOpts();
opts.url = ajaxUrl.notice.show;
opts.method = "get";
opts.data = {
itemId: $obj.data("item-id"),
actionId: $obj.data("action-id"),

44
js/app-actions.min.js vendored
View File

@@ -2,38 +2,38 @@ var $jscomp={scope:{},findInternal:function(c,d,k){c instanceof String&&(c=Strin
$jscomp.getGlobal=function(c){return"undefined"!=typeof window&&window===c?c:"undefined"!=typeof global&&null!=global?global:c};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(c,d,k,e){if(d){k=$jscomp.global;c=c.split(".");for(e=0;e<c.length-1;e++){var g=c[e];g in k||(k[g]={});k=k[g]}c=c[c.length-1];e=k[c];d=d(e);d!=e&&null!=d&&$jscomp.defineProperty(k,c,{configurable:!0,writable:!0,value:d})}};
$jscomp.polyfill("Array.prototype.find",function(c){return c?c:function(c,k){return $jscomp.findInternal(this,c,k).v}},"es6-impl","es3");
sysPass.Actions=function(c){var d=c.log,k=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",getUpdates:"/ajax/ajax_checkUpds.php"},checks:"/ajax/ajax_checkConnection.php",config:{save:"/ajax/ajax_configSave.php","export":"/ajax/ajax_configSave.php","import":"/ajax/ajax_configSave.php"},
file:"/ajax/ajax_filesMgmt.php",link:"/ajax/ajax_itemSave.php",plugin:"/ajax/ajax_itemSave.php",account:{save:"/ajax/ajax_itemSave.php",showPass:"/ajax/ajax_accViewPass.php",saveFavorite:"/ajax/ajax_itemSave.php",request:"/ajax/ajax_itemSave.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"},notice:{show:"/ajax/ajax_noticeShow.php",
search:"/ajax/ajax_noticeSearch.php"}},g=function(a,b){var f={actionId:a.actionId,itemId:"undefined"!==a.itemId?a.itemId:0,isAjax:1},h=c.appRequests().getRequestOpts();h.url=e.doAction;h.type="html";h.addHistory=!0;h.data=f;c.appRequests().getActionCall(h,function(a){var c=$("#content");c.empty().html(a);a=sysPassApp.triggers().views;a.common(c);if(void 0!==b&&"function"===typeof a[b])a[b]();c=$(".mdl-layout__content");0<c.scrollTop()&&c.animate({scrollTop:0},1E3)})},l=function(a,b){$.magnificPopup.open({items:{src:b,
type:"inline"},callbacks:{open:function(){var a=$("#box-popup");c.appTriggers().views.common(a);a.find(":input:text:visible:first").focus()},close:function(){a.data("item-dst")&&p.update(a)}},showCloseBtn:!1})},r=function(a,b){var f=$('<div id="box-popup" class="image">'+b+"</div>"),h=f.find("img");if(0===h.length)return l(a,b);h.hide();$.magnificPopup.open({items:{src:f,type:"inline"},callbacks:{open:function(){var a=this;h.on("click",function(){a.close()});setTimeout(function(){var a=c.resizeImage(h);
f.css({backgroundColor:"#fff",width:a.width,height:"auto"});h.show("slow")},500)}}})},p={get:function(a){d.info("items:get");var b=a[0].selectize;b.clearOptions();b.load(function(f){var h=c.appRequests().getRequestOpts();h.url=e.updateItems;h.method="get";h.data={sk:a.data("sk"),itemType:a.data("item-type"),itemId:a.data("item-id")};c.appRequests().getActionCall(h,function(c){f(c.data);b.setValue(a.data("selected-id"),!0)})})},update:function(a){d.info("items:update");var b=$("#"+a.data("item-dst"))[0].selectize;
b.clearOptions();b.load(function(b){var f=c.appRequests().getRequestOpts();f.url=e.updateItems;f.method="get";f.data={sk:c.sk.get(),itemType:a.data("item-type")};c.appRequests().getActionCall(f,function(a){b(a.data)})})}},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);
file:"/ajax/ajax_filesMgmt.php",link:"/ajax/ajax_itemSave.php",plugin:"/ajax/ajax_itemSave.php",account:{save:"/ajax/ajax_itemSave.php",saveFavorite:"/ajax/ajax_itemSave.php",request:"/ajax/ajax_itemSave.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"},notice:{show:"/ajax/ajax_noticeShow.php",search:"/ajax/ajax_noticeSearch.php"}},
g=function(a,b){var f={actionId:a.actionId,itemId:"undefined"!==a.itemId?a.itemId:0,isAjax:1},h=c.appRequests().getRequestOpts();h.url=e.doAction;h.method="get";h.type="html";h.addHistory=!0;h.data=f;c.appRequests().getActionCall(h,function(a){var c=$("#content");c.empty().html(a);a=sysPassApp.triggers().views;a.common(c);if(void 0!==b&&"function"===typeof a[b])a[b]();c=$(".mdl-layout__content");0<c.scrollTop()&&c.animate({scrollTop:0},1E3)})},l=function(a,b){$.magnificPopup.open({items:{src:b,type:"inline"},
callbacks:{open:function(){var a=$("#box-popup");c.appTriggers().views.common(a);a.find(":input:text:visible:first").focus()},close:function(){a.data("item-dst")&&p.update(a)}},showCloseBtn:!1})},r=function(a,b){var f=$('<div id="box-popup" class="image">'+b+"</div>"),h=f.find("img");if(0===h.length)return l(a,b);h.hide();$.magnificPopup.open({items:{src:f,type:"inline"},callbacks:{open:function(){var a=this;h.on("click",function(){a.close()});setTimeout(function(){var a=c.resizeImage(h);f.css({backgroundColor:"#fff",
width:a.width,height:"auto"});h.show("slow")},500)}}})},p={get:function(a){d.info("items:get");var b=a[0].selectize;b.clearOptions();b.load(function(f){var h=c.appRequests().getRequestOpts();h.url=e.updateItems;h.method="get";h.data={sk:a.data("sk"),itemType:a.data("item-type"),itemId:a.data("item-id")};c.appRequests().getActionCall(h,function(c){f(c.data);b.setValue(a.data("selected-id"),!0)})})},update:function(a){d.info("items:update");var b=$("#"+a.data("item-dst"))[0].selectize;b.clearOptions();
b.load(function(b){var f=c.appRequests().getRequestOpts();f.url=e.updateItems;f.method="get";f.data={sk:c.sk.get(),itemType:a.data("item-type")};c.appRequests().getActionCall(f,function(a){b(a.data)})})}},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.method="get";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();b=$(".extra-hidden");0<b.length&&b.hide();$("#mpass").prop("disabled",!1).val("");$("#smpass").show();break;case 5:c.msg.out(b);a.find("input[type='text'],input[type='password']").val("");a.find("input:first").focus();b=$(".extra-hidden");0<b.length&&b.hide();$("#oldpass").prop("disabled",!1).val("");$("#soldpass").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)})},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("!")})}},m={show:function(a){d.info("account:show");g({actionId:a.data("action-id"),itemId:a.data("item-id")},"account")},showHistory:function(a){d.info("account:showHistory");g({actionId:a.data("action-id"),itemId:a.val()},"account")},edit:function(a){d.info("account:edit");g({actionId:a.data("action-id"),itemId:a.data("item-id")},"account")},"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);m.search()})}}})},showpass:function(a){d.info("account:showpass");var b=a.data("parent-id"),f=
c.appRequests().getRequestOpts();f.url=e.appMgmt.show;f.data={itemId:0==b?a.data("item-id"):b,actionId:a.data("action-id"),isHistory:a.data("history"),isFull:1,sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(f,function(b){0!==b.status?c.msg.out(b):(b=$(b.data.html),l(a,b),b.on("mouseleave",function(){clearTimeout(k);k=setTimeout(function(){$.magnificPopup.close()},3E4)}).on("mouseenter",function(){0!==k&&clearTimeout(k)}))})},copypass:function(a){d.info("account:copypass");var b=a.data("parent-id"),
f=c.appRequests().getRequestOpts();f.url=e.appMgmt.show;f.async=!1;f.data={itemId:0==b?a.data("item-id"):b,actionId:a.data("action-id"),isHistory:a.data("history"),isFull:0,sk:c.sk.get(),isAjax:1};a=c.appRequests().getActionCall(f);void 0!==a.responseJSON.csrf&&c.sk.set(a.responseJSON.csrf);return a},copy:function(a){d.info("account:copy");g({actionId:a.data("action-id"),itemId:a.data("item-id")},"account")},savefavorite:function(a,b){d.info("account:saveFavorite");var f="on"===a.data("status"),h=
{actionId:f?a.data("action-id-off"):a.data("action-id-on"),itemId:a.data("item-id"),sk:c.sk.get(),isAjax:1},g=c.appRequests().getRequestOpts();g.url=e.account.saveFavorite;g.data=h;c.appRequests().getActionCall(g,function(d){c.msg.out(d);0===d.status&&(a.data("status",f?"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"));m.search()},editpass:function(a){d.info("account:editpass");var c=a.data("parent-id");g({actionId:a.data("action-id"),itemId:0==c?a.data("item-id"):c},"account")},restore:function(a){d.info("account:restore");m.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")||void 0===a.data("activetab"))d.info(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):l(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>",f=a.data("selection"),h=[];if(f&&($(f).find(".is-selected").each(function(a,c){var b=$(this);h.push(b.data("item-id"))}),
0===h.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:f?h: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")&&g({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&&g({actionId:a.data("nextaction-id"),itemId:a.data("activetab")}),$.magnificPopup.close())})},search:function(a){d.info("appMgmt:search");var b=$(a.data("target")),f=c.appRequests().getRequestOpts();f.url=e.appMgmt.search;f.data=a.serialize();c.appRequests().getActionCall(f,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:g,appMgmt:n,account:m,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){void 0!==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"),m.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");
c.appRequests().getRequestOpts();f.url=e.appMgmt.show;f.method="get";f.data={itemId:0==b?a.data("item-id"):b,actionId:a.data("action-id"),isHistory:a.data("history"),isFull:1,sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(f,function(b){0!==b.status?c.msg.out(b):(b=$(b.data.html),l(a,b),b.on("mouseleave",function(){clearTimeout(k);k=setTimeout(function(){$.magnificPopup.close()},3E4)}).on("mouseenter",function(){0!==k&&clearTimeout(k)}))})},copypass:function(a){d.info("account:copypass");var b=
a.data("parent-id"),f=c.appRequests().getRequestOpts();f.url=e.appMgmt.show;f.method="get";f.async=!1;f.data={itemId:0==b?a.data("item-id"):b,actionId:a.data("action-id"),isHistory:a.data("history"),isFull:0,sk:c.sk.get(),isAjax:1};a=c.appRequests().getActionCall(f);void 0!==a.responseJSON.csrf&&c.sk.set(a.responseJSON.csrf);return a},copy:function(a){d.info("account:copy");g({actionId:a.data("action-id"),itemId:a.data("item-id")},"account")},savefavorite:function(a,b){d.info("account:saveFavorite");
var f="on"===a.data("status"),h={actionId:f?a.data("action-id-off"):a.data("action-id-on"),itemId:a.data("item-id"),sk:c.sk.get(),isAjax:1},g=c.appRequests().getRequestOpts();g.url=e.account.saveFavorite;g.data=h;c.appRequests().getActionCall(g,function(h){c.msg.out(h);0===h.status&&(a.data("status",f?"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"));m.search()},editpass:function(a){d.info("account:editpass");var c=a.data("parent-id");g({actionId:a.data("action-id"),itemId:0==c?a.data("item-id"):c},"account")},restore:function(a){d.info("account:restore");
m.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.method="get";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")||void 0===a.data("activetab"))d.info(a.data("activetab")),
n.refreshTab=!1;var b=c.appRequests().getRequestOpts();b.url=e.appMgmt.show;b.method="get";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):l(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>",f=a.data("selection"),h=[];if(f&&($(f).find(".is-selected").each(function(a,c){var b=
$(this);h.push(b.data("item-id"))}),0===h.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:f?h: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")&&g({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&&g({actionId:a.data("nextaction-id"),itemId:a.data("activetab")}),$.magnificPopup.close())})},search:function(a){d.info("appMgmt:search");var b=$(a.data("target")),f=c.appRequests().getRequestOpts();f.url=e.appMgmt.search;f.method="get";f.data=a.serialize();
c.appRequests().getActionCall(f,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:g,appMgmt:n,account:m,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){void 0!==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"),m.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&&(void 0!==a.data("nextaction-id")?g({actionId:a.data("nextaction-id"),itemId:a.data("activetab")}):void 0!==a.data("reload")&&setTimeout(function(){c.redirect("index.php")},2E3))})},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&&void 0!==a.data("nextaction-id")&&g({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&&void 0!==a.data("nextaction-id")&&g({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&&void 0!==a.data("nextaction-id")&&g({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(){c.redirect("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);g({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(c){0===c.length?q.logout():
l(a,c)})},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")},f=c.appRequests().getRequestOpts();f.url=e.link;f.data=b;c.appRequests().getActionCall(f,function(b){c.msg.out(b);
0===b.status&&g({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})}},eventlog:{nav:function(a){if(void 0===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],
0===b.status&&g({actionId:a.data("nextaction-id"),itemId:a.data("activetab")})})}},eventlog:{nav:function(a){if(void 0===a.data("start"))return!1;var b=c.appRequests().getRequestOpts();b.url=e.eventlog;b.method="get";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&&g({actionId:a.data("nextaction-id")})})}}})}},ajaxUrl:e,plugin:{toggle:function(a){d.info("plugin:enable");a={itemId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get(),activeTab:a.data("activetab")};
var b=c.appRequests().getRequestOpts();b.url=e.appMgmt.save;b.data=a;c.appRequests().getActionCall(b,function(a){c.msg.out(a);0===a.status&&setTimeout(function(){c.redirect("index.php")},2E3)})},reset:function(a){d.info("plugin:reset");var b='<div id="alert"><p id="alert-text">'+c.config().LANG[58]+"</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={itemId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get(),activeTab:a.data("activetab")};var d=c.appRequests().getRequestOpts();d.url=e.appMgmt.save;d.data=b;c.appRequests().getActionCall(d,function(a){c.msg.out(a)})}}})}},notice:{check:function(a){d.info("notice:check");var b={itemId:a.data("item-id"),actionId:a.data("action-id"),sk:c.sk.get()},f=c.appRequests().getRequestOpts();f.url=e.appMgmt.save;f.data=b;c.appRequests().getActionCall(f,function(b){c.msg.out(b);0===b.status&&g({actionId:a.data("nextaction-id"),
itemId:a.data("activetab")})})},search:function(a){d.info("notice:search");var b=$(a.data("target")),f=c.appRequests().getRequestOpts();f.url=e.notice.search;f.data=a.serialize();c.appRequests().getActionCall(f,function(a){0===a.status?b.html(a.data.html):b.html(c.msg.html.error(a.description));c.sk.set(a.csrf)})},show:function(a){d.info("notice:show");var b=c.appRequests().getRequestOpts();b.url=e.notice.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):l(a,b.data.html)})}},wiki:{show:function(a){d.info("wiki:show");var b=c.appRequests().getRequestOpts();b.url=e.wiki.show;b.data={pageName:a.data("pagename"),actionId:a.data("action-id"),sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,function(b){0!==b.status?c.msg.out(b):l(a,b.data.html)})}},items:p}};
itemId:a.data("activetab")})})},search:function(a){d.info("notice:search");var b=$(a.data("target")),f=c.appRequests().getRequestOpts();f.url=e.notice.search;f.method="get";f.data=a.serialize();c.appRequests().getActionCall(f,function(a){0===a.status?b.html(a.data.html):b.html(c.msg.html.error(a.description));c.sk.set(a.csrf)})},show:function(a){d.info("notice:show");var b=c.appRequests().getRequestOpts();b.url=e.notice.show;b.method="get";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):l(a,b.data.html)})}},wiki:{show:function(a){d.info("wiki:show");var b=c.appRequests().getRequestOpts();b.url=e.wiki.show;b.method="get";b.data={pageName:a.data("pagename"),actionId:a.data("action-id"),sk:c.sk.get(),isAjax:1};c.appRequests().getActionCall(b,function(b){0!==b.status?c.msg.out(b):l(a,b.data.html)})}},items:p}};