From da663b933f88d578eea25db3df7b326ce3333bea Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Sat, 14 Nov 2015 14:04:51 +0100 Subject: [PATCH 1/2] * [MOD] Modified search bahaviour to avoid some "INVALID QUERY" responses because the security token was not set quickly enough by the client. JSON is now used for search response. * [FIX] Fixed integer parsing when an ip address was given as search text. --- ajax/ajax_search.php | 11 ++- inc/SP/Account/AccountSearch.class.php | 2 +- inc/SP/Controller/Controller.class.php | 10 ++- inc/SP/Http/Request.class.php | 110 +++++++++++++------------ inc/themes/material-blue/search.inc | 3 - inc/themes/material-blue/searchbox.inc | 7 +- js/functions.js | 14 +++- js/functions.min.js | 2 +- 8 files changed, 91 insertions(+), 68 deletions(-) diff --git a/ajax/ajax_search.php b/ajax/ajax_search.php index 9ae2d766..04057756 100644 --- a/ajax/ajax_search.php +++ b/ajax/ajax_search.php @@ -27,6 +27,7 @@ use SP\Controller\SearchC; use SP\Core\Init; use SP\Http\Request; use SP\Core\SessionUtil; +use SP\Http\Response; use SP\Util\Util; define('APP_ROOT', '..'); @@ -42,9 +43,15 @@ if (!Init::isLoggedIn()) { $sk = \SP\Http\Request::analyze('sk', false); if (!$sk || !SessionUtil::checkSessionKey($sk)) { - die('
' . _('CONSULTA INVÁLIDA') . '
'); + Response::printJSON(_('CONSULTA INVÁLIDA')); } $Controller = new SearchC(); $Controller->getSearch(); -$Controller->view(); \ No newline at end of file + +$data = array( + 'sk' => SessionUtil::getSessionKey(), + 'html' => $Controller->render() +); + +Response::printJSON($data, 0); \ No newline at end of file diff --git a/inc/SP/Account/AccountSearch.class.php b/inc/SP/Account/AccountSearch.class.php index 73576e4a..694a6881 100644 --- a/inc/SP/Account/AccountSearch.class.php +++ b/inc/SP/Account/AccountSearch.class.php @@ -133,7 +133,7 @@ class AccountSearch */ public function setTxtSearch($txtSearch) { - $this->_txtSearch = $txtSearch; + $this->_txtSearch = (string) $txtSearch; } /** diff --git a/inc/SP/Controller/Controller.class.php b/inc/SP/Controller/Controller.class.php index e1c11585..c2dbddb2 100644 --- a/inc/SP/Controller/Controller.class.php +++ b/inc/SP/Controller/Controller.class.php @@ -104,13 +104,21 @@ abstract class Controller } /** - * Renderizar los datos de la plantilla + * Renderizar los datos de la plantilla y mostrarlos */ public function view() { echo $this->view->render(); } + /** + * Renderizar los datos de la plantilla y devolverlos + */ + public function render() + { + return $this->view->render(); + } + /** * Obtener los datos para la vista de depuración */ diff --git a/inc/SP/Http/Request.class.php b/inc/SP/Http/Request.class.php index 7f28ff84..e7c4d1bb 100644 --- a/inc/SP/Http/Request.class.php +++ b/inc/SP/Http/Request.class.php @@ -36,20 +36,61 @@ use SP\Core\Init; */ class Request { + /** + * Comprobar el método utilizado para enviar un formulario. + * + * @param string $method con el método utilizado. + */ + public static function checkReferer($method) + { + if ($_SERVER['REQUEST_METHOD'] !== strtoupper($method) + || !isset($_SERVER['HTTP_REFERER']) + || !preg_match('#' . Init::$WEBROOT . '/.*$#', $_SERVER['HTTP_REFERER']) + ) { + Init::initError(_('No es posible acceder directamente a este archivo')); + exit(); + } + } + + /** + * Analizar un valor encriptado y devolverlo desencriptado + * + * @param $param + * @return string + */ + public static function analyzeEncrypted($param) + { + $encryptedData = self::analyze($param, '', false, false, false); + + if ($encryptedData === '') { + return ''; + } + + try { + // Desencriptar con la clave RSA + $CryptPKI = new CryptPKI(); + $clearData = $CryptPKI->decryptRSA(base64_decode($encryptedData)); + } catch (\Exception $e) { + return $encryptedData; + } + + return $clearData; + } + /** * Obtener los valores de variables $_GET y $_POST * y devolverlos limpios con el tipo correcto o esperado. * - * @param string $param con el parámetro a consultar - * @param mixed $default valor por defecto a devolver - * @param bool $check comprobar si el parámetro está presente - * @param mixed $force valor devuelto si el parámeto está definido - * @param bool $sanitize escapar/eliminar carácteres especiales + * @param string $param con el parámetro a consultar + * @param mixed $default valor por defecto a devolver + * @param bool $check comprobar si el parámetro está presente + * @param mixed $force valor devuelto si el parámeto está definido + * @param bool $sanitize escapar/eliminar carácteres especiales * @return mixed si está presente el parámeto en la petición devuelve bool. Si lo está, devuelve el valor. */ public static function analyze($param, $default = '', $check = false, $force = false, $sanitize = true) { - switch($_SERVER['REQUEST_METHOD']){ + switch ($_SERVER['REQUEST_METHOD']) { case 'GET': if (!isset($_GET[$param])) { return ($force) ? !$force : $default; @@ -83,15 +124,17 @@ class Request */ private static function parse($value, $default, $sanitize) { - if (is_array($value)){ - foreach($value as &$data){ + if (is_array($value)) { + foreach ($value as &$data) { self::parse($data, $default, $sanitize); } return $value; } - if ((is_numeric($value) && !is_string($default)) || is_numeric($default)) { + if ((is_numeric($value) || is_numeric($default)) + && !is_string($default) + ) { return intval($value); } @@ -101,44 +144,13 @@ class Request } /** - * Comprobar el método utilizado para enviar un formulario. + * Comprobar si se realiza una recarga de la página * - * @param string $method con el método utilizado. + * @return bool */ - public static function checkReferer($method) + public static function checkReload() { - if ($_SERVER['REQUEST_METHOD'] !== strtoupper($method) - || !isset($_SERVER['HTTP_REFERER']) - || !preg_match('#' . Init::$WEBROOT . '/.*$#', $_SERVER['HTTP_REFERER']) - ) { - Init::initError(_('No es posible acceder directamente a este archivo')); - exit(); - } - } - - /** - * Analizar un valor encriptado y devolverlo desencriptado - * - * @param $param - * @return string - */ - public static function analyzeEncrypted($param) - { - $encryptedData = self::analyze($param, '', false, false, false); - - if ($encryptedData === ''){ - return ''; - } - - try { - // Desencriptar con la clave RSA - $CryptPKI = new CryptPKI(); - $clearData = $CryptPKI->decryptRSA(base64_decode($encryptedData)); - } catch (\Exception $e) { - return $encryptedData; - } - - return $clearData; + return (self::getRequestHeaders('Cache-Control') == 'max-age=0'); } /** @@ -174,16 +186,6 @@ class Request return $headers; } - /** - * Comprobar si se realiza una recarga de la página - * - * @return bool - */ - public static function checkReload() - { - return (self::getRequestHeaders('Cache-Control') == 'max-age=0'); - } - /** * Comprobar si existen parámetros pasados por POST para enviarlos por GET */ diff --git a/inc/themes/material-blue/search.inc b/inc/themes/material-blue/search.inc index 80c2d48e..9537c2a3 100644 --- a/inc/themes/material-blue/search.inc +++ b/inc/themes/material-blue/search.inc @@ -229,9 +229,6 @@ + + + + + user_editName): ?> + + + user_editName): ?> + account_dateEdit; ?>user_editName; ?> + + + + + + + + + $field): ?> + + + + + + + +
+ text; ?> + help): ?> +
+ help_outline +
+
+

help; ?>

+
+ +
+ +
+ required) ? 'required' : ''; ?>> + +
+ + type === \SP\Mgmt\CustomFields::TYPE_PASSWORD && !$showViewPass): ?> + **** + type === \SP\Mgmt\CustomFields::TYPE_COLOR): ?> + + + value; ?> + + +
- - - + + +> - + - - - -
- - - - + + + + - - - - 0): ?> - - - - - - -user_editName): ?> - - - user_editName): ?> - - - - - -
+
+ + + +
+ data-files-ext="" + title="
' . _('Tamaño máximo de archivo') . ' ' . $maxFileSize . ' MB'; ?>"> cloud_upload
- -
- - -
account_dateEdit; ?> user_editName; ?>
- - - - - - - - - -
- text; ?> - help): ?> -
help_outline
-
-

help; ?>

-
- -
- -
- required) ? 'required' : ''; ?>> - -
- - type === \SP\Mgmt\CustomFields::TYPE_PASSWORD && !$showViewPass):?> - **** - type === \SP\Mgmt\CustomFields::TYPE_COLOR):?> - - - value; ?> - - -
+ + + + @@ -399,19 +425,20 @@ user_editName) ? $accountData->user_editName : $accountData->user_editLogin; ?> - publicLink_hash): ?> - - - - - - + publicLink_hash): ?> + + + + + + -
+ @@ -422,71 +449,103 @@
- - - + + + - - - + + + - - - - + + - + + - - - + + + - - - - - + + + + + - - - - - + + + + + - - - + + + - - - + + +
+
    - getDataActions() as $action): ?> - isNew()): ?> -
  • - -
  • - -
  • -
-
- -
-
    - getHeader()->getHeaders() as $header): ?> -
  • + getDataActions() as $action): ?> + getType() === \SP\Html\DataGrid\DataGridActionType::NEW_ITEM): ?> +
  • + +
  • + getType() === \SP\Html\DataGrid\DataGridActionType::SEARCH_ITEM): ?> + + +
-
- getData()->getData() as $item): ?> -
    - getData()->getDataRowSources() as $rowSrc): ?> -
  • - $rowSrc)) ? $item->$rowSrc : ' '; // Fix height ?> -
  • - - - getData()->getDataRowSourcesWithIcon()) > 0): ?> -
  • - getData()->getDataRowSourcesWithIcon() as $rowSrcIcon): ?> - $rowSrcIcon[0] == 1): ?> - - getIcon(); ?> - - - -
  • - - -
  • - getDataActions() as $action): ?> - isSkip()): ?> - getFilterRowSource() && $item->{$action->getFilterRowSource()} == 1): continue; endif; ?> - getIcon()->getIcon(); ?> - - -
  • -
- +
+
    + getHeader()->getHeaders() as $header): ?> +
  • + +
- @@ -103,12 +78,6 @@ diff --git a/inc/themes/material-blue/search.inc b/inc/themes/material-blue/search.inc index 9537c2a3..a4770478 100644 --- a/inc/themes/material-blue/search.inc +++ b/inc/themes/material-blue/search.inc @@ -131,7 +131,10 @@ - library_books + + library_books + + library_books library_books diff --git a/js/functions.js b/js/functions.js index 6a745771..0ba5b3bd 100644 --- a/js/functions.js +++ b/js/functions.js @@ -899,6 +899,35 @@ sysPass.Util.Common = function () { sendAjax(data, url); }; + var appMgmtSearch = function (form, sk) { + var data = $(form).serialize(); + var target = form.elements.target.value; + + data = data + '&sk=' + sk; + + $.ajax({ + type: 'POST', + dataType: 'json', + url: APP_ROOT + '/ajax/ajax_appMgmtSearch.php', + data: data, + success: function (json) { + if (json.status === 0) { + $('#' + target).html(json.html); + } else { + $('#' + target).html(resMsg('nofancyerror', json.description)); + } + }, + error: function () { + $('#' + target).html(resMsg('nofancyerror', 'error')); + }, + complete: function () { + sysPassUtil.hideLoading(); + } + }); + + return false; + }; + // Función para crear un enlace público var linksMgmtSave = function (itemId, actionId, sk) { var url = '/ajax/ajax_appMgmtSave.php'; @@ -1326,6 +1355,7 @@ sysPass.Util.Common = function () { accSearch: accSearch, appMgmtData: appMgmtData, appMgmtSave: appMgmtSave, + appMgmtSearch: appMgmtSearch, appMgmtDelete: appMgmtDelete, checkboxDetect: checkboxDetect, checkDokuWikiConn: checkDokuWikiConn, diff --git a/js/functions.min.js b/js/functions.min.js index d827f4cc..ec7f0c20 100644 --- a/js/functions.min.js +++ b/js/functions.min.js @@ -1 +1 @@ -var sysPass=sysPass||{};sysPass.createNS=function(d){var e=d.split(".");var c=sysPass;if(e[0]==="sysPass"){e=e.slice(1)}for(var a=0;a105&&event.keyCode<123))){return}if(lenTxtSearch<3&&continous===1&&lenTxtSearch>window.lastlen&&event.keyCode!==13){return}window.lastlen=lenTxtSearch;$("#frmSearch").find('input[name="start"]').val(0);doSearch()};var searchSort=function(skey,start,dir){if(typeof skey==="undefined"||typeof start==="undefined"){return false}$("#frmSearch").find('input[name="skey"]').val(skey);$("#frmSearch").find('input[name="sorder"]').val(dir);$("#frmSearch").find('input[name="start"]').val(start);doSearch()};var doSearch=function(){var frmData=$("#frmSearch").serialize();$.ajax({type:"POST",dataType:"json",url:APP_ROOT+"/ajax/ajax_search.php",data:frmData,success:function(json){$("#resBuscar").html(json.html);$("#resBuscar").css("max-height",$("html").height()-windowAdjustSize);if(typeof json.sk!=="undefined"){$("#frmSearch").find(":input[name='sk']").val(json.sk)}},error:function(){$("#resBuscar").html(resMsg("nofancyerror"))},complete:function(){sysPassUtil.hideLoading();scrollUp()}})};var showSearchOrder=function(){if(order.key){$("#search-sort-"+order.key).addClass("filterOn");if(order.dir===0){$("#search-sort-"+order.key).append('')}else{$("#search-sort-"+order.key).append('')}}};var navLog=function(start,current){if(typeof start==="undefined"){return false}$.ajax({type:"POST",dataType:"html",url:APP_ROOT+"/ajax/ajax_eventlog.php",data:{start:start,current:current},success:function(response){$("#content").html(response)},error:function(){$("#content").html(resMsg("nofancyerror"))},complete:function(){sysPassUtil.hideLoading();scrollUp()}})};var viewPass=function(id,full,history){if(passToClip===1&&full===0){return}$.ajax({type:"POST",url:APP_ROOT+"/ajax/ajax_viewpass.php",dataType:"json",async:false,data:{accountid:id,full:full,isHistory:history,isAjax:1},success:function(json){if(json.status===10){doLogout();return}if(full===false){$("#clip-pass-text").html(json.accpass);passToClip=1;return}$("
").dialog({modal:true,title:LANG[47],width:"auto",open:function(){var thisDialog=$(this);var content;var pass="";var clipboardUserButton='";var clipboardPassButton='";var useImage=json.useimage;var user='

'+json.acclogin+"

";if(json.status===0){if(useImage===0){pass='

'+json.accpass+"

"}else{pass='';clipboardPassButton=""}content=user+pass+'
'+clipboardUserButton+clipboardPassButton+"
"}else{content=''+json.description+"";thisDialog.dialog("option","buttons",[{text:"Ok",icons:{primary:"ui-icon-close"},click:function(){thisDialog.dialog("close")}}])}thisDialog.html(content);thisDialog.dialog("option","position","center");thisDialog.parent().on("mouseleave",function(){clearTimeout(timeout);timeout=setTimeout(function(){thisDialog.dialog("close")},30000)})},close:function(){clearTimeout(timeout);$(this).dialog("destroy")}})}})};var getUrlVars=function(){var vars=[],hash;var hashes=window.location.href.slice(window.location.href.indexOf("?")+1).split("&");for(var i=0;i"+LANG[13]+"

";resMsg("error",txt)}}});return false};var doLogout=function(){var url=window.location.search;if(url.length>0){location.href="index.php"+url+"&logout=1"}else{location.href="index.php?logout=1"}};var checkLogout=function(){var session=getUrlVars()["session"];if(session===0){resMsg("warn",LANG[2],"","location.search = ''")}};var redirect=function(url){location.href=url};var saveAccount=function(frm){var data=$("#"+frm).serialize();var id=$('input[name="accountid"]').val();var action=$('input[name="next"]').val();$.ajax({type:"POST",dataType:"json",url:APP_ROOT+"/ajax/ajax_accountSave.php",data:data,success:function(json){var status=json.status;var description=json.description;if(status===0){resMsg("ok",description);if(action&&id){doAction(action,1,id)}else{if(action){doAction(action,1)}}}else{if(status===10){doLogout()}else{resMsg("error",description)}}},error:function(jqXHR,textStatus,errorThrown){var txt=LANG[1]+"

"+errorThrown+textStatus+"

";resMsg("error",txt)}})};var delAccount=function(id,action,sk){var data={accountid:id,actionId:action,sk:sk};var atext='

'+LANG[3]+"

";var url="/ajax/ajax_accountSave.php";alertify.okBtn(LANG[43]).cancelBtn(LANG[44]).confirm(atext,function(e){sendAjax(data,url)},function(e){e.preventDefault();alertify.error(LANG[44])})};var sendRequest=function(){var url="/ajax/ajax_sendRequest.php";var data=$("#frmRequestModify").serialize();sendAjax(data,url)};var configMgmt=function(action,obj){var url;switch(action){case"config":url="/ajax/ajax_configSave.php";break;case"export":url="/ajax/ajax_backup.php";break;case"import":url="/ajax/ajax_migrate.php";break;case"preferences":url="/ajax/ajax_userPrefsSave.php";break;default:return}var data=$(obj).serialize();sendAjax(data,url)};var downFile=function(id,sk,actionId,download){var data={fileId:id,sk:sk,actionId:actionId};if(typeof download==="undefined"){$.ajax({type:"POST",cache:false,url:APP_ROOT+"/ajax/ajax_files.php",data:data,success:function(response){if(typeof response.status!=="undefined"&&response.status===1){resMsg("error",response.description);return}if(response){$.fancybox(response,{padding:[10,10,10,10]});setTimeout(function(){$.fancybox.update()},1000)}else{resMsg("error",LANG[14])}}})}else{if(download===true){$.fileDownload(APP_ROOT+"/ajax/ajax_files.php",{httpMethod:"POST",data:data})}}};var viewFile=function(obj,actionId,sk){var itemId=$(obj).attr("data-itemid");var data={fileId:itemId,sk:sk,actionId:actionId};$.ajax({type:"POST",cache:false,url:APP_ROOT+"/ajax/ajax_files.php",data:data,success:function(response){if(typeof response.status!=="undefined"&&response.status===1){resMsg("error",response.description);return}if(response){$.fancybox(response,{padding:[10,10,10,10]});setTimeout(function(){$.fancybox.update()},1000)}else{resMsg("error",LANG[14])}}})};var getFiles=function(id,isDel,sk){var data={id:id,del:isDel,sk:sk};$.ajax({type:"GET",cache:false,url:APP_ROOT+"/ajax/ajax_getFiles.php",data:data,success:function(response){$("#downFiles").html(response)}})};var delFile=function(id,sk,accountId,actionId){var atext='

'+LANG[15]+"

";alertify.okBtn(LANG[43]).cancelBtn(LANG[44]).confirm(atext,function(e){var data={fileId:id,actionId:actionId,sk:sk};$.post(APP_ROOT+"/ajax/ajax_files.php",data,function(data){if(data.status===0){var url=APP_ROOT+"/ajax/ajax_getFiles.php?id="+accountId+"&del=1&isAjax=1&sk="+sk;$("#downFiles").load(url);resMsg("ok",data.description)}else{resMsg("error",data.description)}})},function(e){e.preventDefault();alertify.error(LANG[44])})};var dropFile=function(accountId,sk,maxsize,actionId){var dropfiles=$("#dropzone");var file_exts_ok=dropfiles.attr("data-files-ext").toLowerCase().split(",");dropfiles.filedrop({fallback_id:"inFile",paramname:"inFile",maxfiles:5,maxfilesize:maxsize,allowedfileextensions:file_exts_ok,url:APP_ROOT+"/ajax/ajax_files.php",data:{sk:sk,accountId:accountId,actionId:actionId,isAjax:1},uploadFinished:function(i,file,response){sysPassUtil.hideLoading();if(response.status===0){var sk=$('input[name="sk"]').val();var url=APP_ROOT+"/ajax/ajax_getFiles.php?id="+accountId+"&del=1&isAjax=1&sk="+sk;$("#downFiles").load(url);resMsg("ok",response.description)}else{resMsg("error",response.description)}},error:function(err,file){switch(err){case"BrowserNotSupported":resMsg("error",LANG[16]);break;case"TooManyFiles":resMsg("error",LANG[17]+" (max. "+this.maxfiles+")");break;case"FileTooLarge":resMsg("error",LANG[18]+" "+maxsize+" MB
"+file.name);break;case"FileExtensionNotAllowed":resMsg("error",LANG[19]);break;default:break}},uploadStarted:function(i,file,len){sysPassUtil.showLoading()}})};var importFile=function(sk){var dropfiles=$("#dropzone");var file_exts_ok=["csv","xml"];dropfiles.filedrop({fallback_id:"inFile",paramname:"inFile",maxfiles:1,maxfilesize:1,allowedfileextensions:file_exts_ok,url:APP_ROOT+"/ajax/ajax_import.php",data:{sk:sk,action:"import",isAjax:1,importPwd:function(){return $('input[name="importPwd"]').val()},defUser:function(){return $("#import_defaultuser").chosen().val()},defGroup:function(){return $("#import_defaultgroup").chosen().val()},csvDelimiter:function(){return $('input[name="csvDelimiter"]').val()}},uploadFinished:function(i,file,json){sysPassUtil.hideLoading();var status=json.status;var description=json.description;if(status===0){resMsg("ok",description)}else{if(status===10){resMsg("error",description);doLogout()}else{resMsg("error",description)}}},error:function(err,file){switch(err){case"BrowserNotSupported":resMsg("error",LANG[16]);break;case"TooManyFiles":resMsg("error",LANG[17]+" (max. "+this.maxfiles+")");break;case"FileTooLarge":resMsg("error",LANG[18]+"
"+file.name);break;case"FileExtensionNotAllowed":resMsg("error",LANG[19]);break;default:break}},uploadStarted:function(i,file,len){sysPassUtil.showLoading()}})};var sendAjax=function(data,url){$.ajax({type:"POST",dataType:"json",url:APP_ROOT+url,data:data,success:function(json){var status=json.status;var description=json.description;var action=json.action;switch(status){case 0:$.fancybox.close();resMsg("ok",description,undefined,action);break;case 1:$.fancybox.close();$(":input[type=password]").val("");resMsg("error",description,undefined,action);break;case 2:$("#resFancyAccion").html(''+description+"").show();break;case 3:$.fancybox.close();resMsg("warn",description,undefined,action);break;case 10:doLogout();break;default:return}},error:function(jqXHR,textStatus,errorThrown){var txt=LANG[1]+"

"+errorThrown+textStatus+"

";resMsg("error",txt)}})};var usrUpdPass=function(object,actionId,sk){var userId=$(object).attr("data-itemid");var data={userId:userId,actionId:actionId,sk:sk,isAjax:1};$.ajax({type:"GET",cache:false,url:APP_ROOT+"/ajax/ajax_usrpass.php",data:data,success:function(data){if(data.length===0){doLogout()}else{$.fancybox(data,{padding:0})}}})};var appMgmtData=function(obj,actionId,sk){var itemId=$(obj).attr("data-itemid");var activeTab=$(obj).attr("data-activetab");var data={itemId:itemId,actionId:actionId,sk:sk,activeTab:activeTab,isAjax:1};var url=APP_ROOT+"/ajax/ajax_appMgmtData.php";$.ajax({type:"POST",dataType:"html",url:url,data:data,success:function(response){$.fancybox(response,{padding:[0,10,10,10]})},error:function(jqXHR,textStatus,errorThrown){var txt=LANG[1]+"

"+errorThrown+textStatus+"

";resMsg("error",txt)}})};var appMgmtDelete=function(obj,actionId,sk){var itemId=$(obj).attr("data-itemid");var activeTab=$(obj).attr("data-activetab");var nextActionId=$(obj).attr("data-nextactionid");var atext='

'+LANG[12]+"

";var url="/ajax/ajax_appMgmtSave.php";var data={itemId:itemId,actionId:actionId,sk:sk,activeTab:activeTab,onCloseAction:nextActionId};alertify.okBtn(LANG[43]).cancelBtn(LANG[44]).confirm(atext,function(e){sendAjax(data,url)},function(e){e.preventDefault();alertify.error(LANG[44])})};var appMgmtSave=function(frmId){var url="/ajax/ajax_appMgmtSave.php";var data=$("#"+frmId).serialize();sendAjax(data,url)};var linksMgmtSave=function(itemId,actionId,sk){var url="/ajax/ajax_appMgmtSave.php";var data={itemId:itemId,actionId:actionId,sk:sk,isAjax:1};alertify.okBtn(LANG[40]).cancelBtn(LANG[41]).confirm(LANG[48],function(e){$.extend(data,{notify:1});sendAjax(data,url)},function(e){e.preventDefault();sendAjax(data,url)})};var linksMgmtRefresh=function(obj,actionId,sk){var itemId=$(obj).attr("data-itemid");var activeTab=$(obj).attr("data-activetab");var nextActionId=$(obj).attr("data-nextactionid");var url="/ajax/ajax_appMgmtSave.php";var data={itemId:itemId,actionId:actionId,sk:sk,activeTab:activeTab,onCloseAction:nextActionId};sendAjax(data,url)};var checkUpds=function(){$.ajax({type:"GET",dataType:"html",url:APP_ROOT+"/ajax/ajax_checkUpds.php",timeout:10000,success:function(response){$("#updates").html(response);if(typeof componentHandler!=="undefined"){componentHandler.upgradeDom()}},error:function(jqXHR,textStatus,errorThrown){$("#updates").html("!")}})};var clearEventlog=function(sk){var atext='

'+LANG[20]+"

";alertify.okBtn(LANG[43]).cancelBtn(LANG[44]).confirm(atext,function(e){var data={clear:1,sk:sk,isAjax:1};var url="/ajax/ajax_eventlog.php";sendAjax(data,url)},function(e){e.preventDefault();alertify.error(LANG[44])})};var showOptional=function(me){$(me).hide();var actions=$(me).parent().children(".actions-optional");actions.show(250)};var getTime=function(){var t=new Date();return t.getTime()};var checkPassLevel=function(password,dst){var level=zxcvbn(password);outputResult(level.score,dst)};var outputResult=function(level,dstId){var complexity,selector=".passLevel-"+dstId;complexity=$(selector);complexity.removeClass("weak good strong strongest");if(passwordData.passLength===0){complexity.attr("title","").empty()}else{if(passwordData.passLength");switch(type){case"ok":alertify.closeLogOnClick(true).delay(15000).success(txt);break;case"error":alertify.closeLogOnClick(true).delay(15000).error(txt);break;case"warn":alertify.delay(30000).log(txt);break;case"nofancyerror":html='

Oops...
'+LANG[1]+"
"+txt+"

";return html;default:alertify.error(txt);break}if(typeof action!=="undefined"){eval(action)}};var checkLdapConn=function(formId){var form="#"+formId;var ldapBindPass=$(form).find("[name=ldap_bindpass]").val();var data={type:"ldap",ldap_server:$(form).find("[name=ldap_server]").val(),ldap_base:$(form).find("[name=ldap_base]").val(),ldap_group:$(form).find("[name=ldap_group]").val(),ldap_binduser:$(form).find("[name=ldap_binduser]").val(),ldap_bindpass:(PK!=="")?encrypt.encrypt(ldapBindPass):ldapBindPass,isAjax:1,sk:$(form).find("[name=sk]").val()};sendAjax(data,"/ajax/ajax_checkConnection.php")};var checkDokuWikiConn=function(formId){var form="#"+formId;var data={type:"dokuwiki",dokuwiki_url:$(form).find("[name=dokuwiki_url]").val(),dokuwiki_user:$(form).find("[name=dokuwiki_user]").val(),dokuwiki_pass:$(form).find("[name=dokuwiki_pass]").val(),isAjax:1,sk:$(form).find("[name=sk]").val()};$.ajax({type:"POST",url:APP_ROOT+"/ajax/ajax_checkConnection.php",data:data,success:function(response){if(response.status===1){resMsg("error",response.description)}else{if(response.status===0){resMsg("ok",response.description);$("#dokuWikiResCheck").html(response.data)}}}})};var goLogin=function(){setTimeout(function(){location.href="index.php"},2000)};var getBrowser=function(){var browser;var ua=navigator.userAgent;var re=new RegExp("(MSIE|Firefox)[ /]?([0-9]{1,}[.0-9]{0,})","i");if(re.exec(ua)!==null){browser=RegExp.$1}return browser};var chosenDetect=function(){var selectWidth="250px";var searchTreshold=10;$(".sel-chosen-usergroup").chosen({placeholder_text_single:LANG[21],placeholder_text_multiple:LANG[21],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth});$(".sel-chosen-user").chosen({placeholder_text_single:LANG[22],placeholder_text_multiple:LANG[22],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth});$(".sel-chosen-profile").chosen({placeholder_text_single:LANG[23],placeholder_text_multiple:LANG[23],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth});$(".sel-chosen-customer").each(function(){var deselect=$(this).hasClass("sel-chosen-deselect");$(this).chosen({allow_single_deselect:deselect,placeholder_text_single:LANG[24],placeholder_text_multiple:LANG[24],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth})});$(".sel-chosen-category").each(function(){var deselect=$(this).hasClass("sel-chosen-deselect");$(this).chosen({allow_single_deselect:deselect,placeholder_text_single:LANG[25],placeholder_text_multiple:LANG[25],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth})});$(".sel-chosen-action").each(function(){var deselect=$(this).hasClass("sel-chosen-deselect");$(this).chosen({allow_single_deselect:deselect,placeholder_text_single:LANG[39],placeholder_text_multiple:LANG[39],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth})});$(".sel-chosen-ns").chosen({disable_search:true,width:selectWidth})};var checkboxDetect=function(container){$(container).find(".checkbox").button({icons:{primary:"ui-icon-transferthick-e-w"}}).click(function(){if($(this).prop("checked")===true){$(this).button("option","label",LANG[40])}else{$(this).button("option","label",LANG[41])}})};var encryptFormValue=function(inputId){var input=$(inputId);var curValue=input.val();var nextName=inputId+"-encrypted";var nextInput=input.next(':input[name="'+nextName+'"]');if((curValue!==""&&nextInput.attr("name")!==nextName)||(curValue!==""&&nextInput.attr("name")===nextName&&parseInt(input.next().val())!==curValue.length)){var passEncrypted=encrypt.encrypt(curValue);input.val(passEncrypted);if(nextInput.length>0){nextInput.val(passEncrypted.length)}else{input.after('')}}};var initializeClipboard=function(){var clipboard=new Clipboard(".clip-pass-button",{text:function(trigger){sysPassUtil.Common.viewPass(trigger.getAttribute("data-account-id"),false);return $("#clip-pass-text").html()}});clipboard.on("success",function(e){sysPassUtil.Common.resMsg("ok",LANG[45])});clipboard.on("error",function(e){sysPassUtil.Common.resMsg("error",LANG[46])});var clipboardPass=new Clipboard(".dialog-clip-pass-button");var clipboardUser=new Clipboard(".dialog-clip-user-button");clipboardPass.on("success",function(e){$(".dialog-pass-text").addClass("dialog-clip-pass-copy round");e.clearSelection()});clipboardUser.on("success",function(e){e.clearSelection()})};var bindPassEncrypt=function(){$("body").delegate(":input[type=password]","blur",function(e){var id=$(this).attr("id");encryptFormValue("#"+id)});$("body").delegate(":input[type=password]","keypress",function(e){if(e.keyCode===13){e.preventDefault();var form=$(this).closest("form");var id=$(this).attr("id");encryptFormValue("#"+id);form.submit()}})};var viewWiki=function(pageName,actionId,sk){var data={pageName:pageName,actionId:actionId,sk:sk,isAjax:1};var url=APP_ROOT+"/ajax/ajax_wiki.php";$.ajax({type:"POST",dataType:"html",url:url,data:data,success:function(response){$.fancybox(response,{padding:[0,10,10,10]})},error:function(jqXHR,textStatus,errorThrown){var txt=LANG[1]+"

"+errorThrown+textStatus+"

";resMsg("error",txt)}})};return{accSearch:accSearch,appMgmtData:appMgmtData,appMgmtSave:appMgmtSave,appMgmtDelete:appMgmtDelete,checkboxDetect:checkboxDetect,checkDokuWikiConn:checkDokuWikiConn,checkLdapConn:checkLdapConn,checkPassLevel:checkPassLevel,checkUpds:checkUpds,clearEventlog:clearEventlog,clearSearch:clearSearch,chosenDetect:chosenDetect,configMgmt:configMgmt,delAccount:delAccount,delFile:delFile,doAction:doAction,doLogin:doLogin,doLogout:doLogout,downFile:downFile,dropFile:dropFile,encryptFormValue:encryptFormValue,getFiles:getFiles,importFile:importFile,linksMgmtSave:linksMgmtSave,linksMgmtRefresh:linksMgmtRefresh,navLog:navLog,outputResult:outputResult,redirect:redirect,resMsg:resMsg,searchSort:searchSort,saveAccount:saveAccount,sendAjax:sendAjax,sendRequest:sendRequest,setContentSize:setContentSize,showOptional:showOptional,showSearchOrder:showSearchOrder,usrUpdPass:usrUpdPass,viewFile:viewFile,viewPass:viewPass,viewWiki:viewWiki,passwordData:passwordData,passToClip:passToClip,APP_ROOT:APP_ROOT,LANG:LANG,PK:PK}}; \ No newline at end of file +var sysPass=sysPass||{};sysPass.createNS=function(d){var e=d.split(".");var c=sysPass;if(e[0]==="sysPass"){e=e.slice(1)}for(var a=0;a105&&event.keyCode<123))){return}if(lenTxtSearch<3&&continous===1&&lenTxtSearch>window.lastlen&&event.keyCode!==13){return}window.lastlen=lenTxtSearch;$("#frmSearch").find('input[name="start"]').val(0);doSearch()};var searchSort=function(skey,start,dir){if(typeof skey==="undefined"||typeof start==="undefined"){return false}$("#frmSearch").find('input[name="skey"]').val(skey);$("#frmSearch").find('input[name="sorder"]').val(dir);$("#frmSearch").find('input[name="start"]').val(start);doSearch()};var doSearch=function(){var frmData=$("#frmSearch").serialize();$.ajax({type:"POST",dataType:"json",url:APP_ROOT+"/ajax/ajax_search.php",data:frmData,success:function(json){$("#resBuscar").html(json.html);$("#resBuscar").css("max-height",$("html").height()-windowAdjustSize);if(typeof json.sk!=="undefined"){$("#frmSearch").find(":input[name='sk']").val(json.sk)}},error:function(){$("#resBuscar").html(resMsg("nofancyerror"))},complete:function(){sysPassUtil.hideLoading();scrollUp()}})};var showSearchOrder=function(){if(order.key){$("#search-sort-"+order.key).addClass("filterOn");if(order.dir===0){$("#search-sort-"+order.key).append('')}else{$("#search-sort-"+order.key).append('')}}};var navLog=function(start,current){if(typeof start==="undefined"){return false}$.ajax({type:"POST",dataType:"html",url:APP_ROOT+"/ajax/ajax_eventlog.php",data:{start:start,current:current},success:function(response){$("#content").html(response)},error:function(){$("#content").html(resMsg("nofancyerror"))},complete:function(){sysPassUtil.hideLoading();scrollUp()}})};var viewPass=function(id,full,history){if(passToClip===1&&full===0){return}$.ajax({type:"POST",url:APP_ROOT+"/ajax/ajax_viewpass.php",dataType:"json",async:false,data:{accountid:id,full:full,isHistory:history,isAjax:1},success:function(json){if(json.status===10){doLogout();return}if(full===false){$("#clip-pass-text").html(json.accpass);passToClip=1;return}$("
").dialog({modal:true,title:LANG[47],width:"auto",open:function(){var thisDialog=$(this);var content;var pass="";var clipboardUserButton='";var clipboardPassButton='";var useImage=json.useimage;var user='

'+json.acclogin+"

";if(json.status===0){if(useImage===0){pass='

'+json.accpass+"

"}else{pass='';clipboardPassButton=""}content=user+pass+'
'+clipboardUserButton+clipboardPassButton+"
"}else{content=''+json.description+"";thisDialog.dialog("option","buttons",[{text:"Ok",icons:{primary:"ui-icon-close"},click:function(){thisDialog.dialog("close")}}])}thisDialog.html(content);thisDialog.dialog("option","position","center");thisDialog.parent().on("mouseleave",function(){clearTimeout(timeout);timeout=setTimeout(function(){thisDialog.dialog("close")},30000)})},close:function(){clearTimeout(timeout);$(this).dialog("destroy")}})}})};var getUrlVars=function(){var vars=[],hash;var hashes=window.location.href.slice(window.location.href.indexOf("?")+1).split("&");for(var i=0;i"+LANG[13]+"

";resMsg("error",txt)}}});return false};var doLogout=function(){var url=window.location.search;if(url.length>0){location.href="index.php"+url+"&logout=1"}else{location.href="index.php?logout=1"}};var checkLogout=function(){var session=getUrlVars()["session"];if(session===0){resMsg("warn",LANG[2],"","location.search = ''")}};var redirect=function(url){location.href=url};var saveAccount=function(frm){var data=$("#"+frm).serialize();var id=$('input[name="accountid"]').val();var action=$('input[name="next"]').val();$.ajax({type:"POST",dataType:"json",url:APP_ROOT+"/ajax/ajax_accountSave.php",data:data,success:function(json){var status=json.status;var description=json.description;if(status===0){resMsg("ok",description);if(action&&id){doAction(action,1,id)}else{if(action){doAction(action,1)}}}else{if(status===10){doLogout()}else{resMsg("error",description)}}},error:function(jqXHR,textStatus,errorThrown){var txt=LANG[1]+"

"+errorThrown+textStatus+"

";resMsg("error",txt)}})};var delAccount=function(id,action,sk){var data={accountid:id,actionId:action,sk:sk};var atext='

'+LANG[3]+"

";var url="/ajax/ajax_accountSave.php";alertify.okBtn(LANG[43]).cancelBtn(LANG[44]).confirm(atext,function(e){sendAjax(data,url)},function(e){e.preventDefault();alertify.error(LANG[44])})};var sendRequest=function(){var url="/ajax/ajax_sendRequest.php";var data=$("#frmRequestModify").serialize();sendAjax(data,url)};var configMgmt=function(action,obj){var url;switch(action){case"config":url="/ajax/ajax_configSave.php";break;case"export":url="/ajax/ajax_backup.php";break;case"import":url="/ajax/ajax_migrate.php";break;case"preferences":url="/ajax/ajax_userPrefsSave.php";break;default:return}var data=$(obj).serialize();sendAjax(data,url)};var downFile=function(id,sk,actionId,download){var data={fileId:id,sk:sk,actionId:actionId};if(typeof download==="undefined"){$.ajax({type:"POST",cache:false,url:APP_ROOT+"/ajax/ajax_files.php",data:data,success:function(response){if(typeof response.status!=="undefined"&&response.status===1){resMsg("error",response.description);return}if(response){$.fancybox(response,{padding:[10,10,10,10]});setTimeout(function(){$.fancybox.update()},1000)}else{resMsg("error",LANG[14])}}})}else{if(download===true){$.fileDownload(APP_ROOT+"/ajax/ajax_files.php",{httpMethod:"POST",data:data})}}};var viewFile=function(obj,actionId,sk){var itemId=$(obj).attr("data-itemid");var data={fileId:itemId,sk:sk,actionId:actionId};$.ajax({type:"POST",cache:false,url:APP_ROOT+"/ajax/ajax_files.php",data:data,success:function(response){if(typeof response.status!=="undefined"&&response.status===1){resMsg("error",response.description);return}if(response){$.fancybox(response,{padding:[10,10,10,10]});setTimeout(function(){$.fancybox.update()},1000)}else{resMsg("error",LANG[14])}}})};var getFiles=function(id,isDel,sk){var data={id:id,del:isDel,sk:sk};$.ajax({type:"GET",cache:false,url:APP_ROOT+"/ajax/ajax_getFiles.php",data:data,success:function(response){$("#downFiles").html(response)}})};var delFile=function(id,sk,accountId,actionId){var atext='

'+LANG[15]+"

";alertify.okBtn(LANG[43]).cancelBtn(LANG[44]).confirm(atext,function(e){var data={fileId:id,actionId:actionId,sk:sk};$.post(APP_ROOT+"/ajax/ajax_files.php",data,function(data){if(data.status===0){var url=APP_ROOT+"/ajax/ajax_getFiles.php?id="+accountId+"&del=1&isAjax=1&sk="+sk;$("#downFiles").load(url);resMsg("ok",data.description)}else{resMsg("error",data.description)}})},function(e){e.preventDefault();alertify.error(LANG[44])})};var dropFile=function(accountId,sk,maxsize,actionId){var dropfiles=$("#dropzone");var file_exts_ok=dropfiles.attr("data-files-ext").toLowerCase().split(",");dropfiles.filedrop({fallback_id:"inFile",paramname:"inFile",maxfiles:5,maxfilesize:maxsize,allowedfileextensions:file_exts_ok,url:APP_ROOT+"/ajax/ajax_files.php",data:{sk:sk,accountId:accountId,actionId:actionId,isAjax:1},uploadFinished:function(i,file,response){sysPassUtil.hideLoading();if(response.status===0){var sk=$('input[name="sk"]').val();var url=APP_ROOT+"/ajax/ajax_getFiles.php?id="+accountId+"&del=1&isAjax=1&sk="+sk;$("#downFiles").load(url);resMsg("ok",response.description)}else{resMsg("error",response.description)}},error:function(err,file){switch(err){case"BrowserNotSupported":resMsg("error",LANG[16]);break;case"TooManyFiles":resMsg("error",LANG[17]+" (max. "+this.maxfiles+")");break;case"FileTooLarge":resMsg("error",LANG[18]+" "+maxsize+" MB
"+file.name);break;case"FileExtensionNotAllowed":resMsg("error",LANG[19]);break;default:break}},uploadStarted:function(i,file,len){sysPassUtil.showLoading()}})};var importFile=function(sk){var dropfiles=$("#dropzone");var file_exts_ok=["csv","xml"];dropfiles.filedrop({fallback_id:"inFile",paramname:"inFile",maxfiles:1,maxfilesize:1,allowedfileextensions:file_exts_ok,url:APP_ROOT+"/ajax/ajax_import.php",data:{sk:sk,action:"import",isAjax:1,importPwd:function(){return $('input[name="importPwd"]').val()},defUser:function(){return $("#import_defaultuser").chosen().val()},defGroup:function(){return $("#import_defaultgroup").chosen().val()},csvDelimiter:function(){return $('input[name="csvDelimiter"]').val()}},uploadFinished:function(i,file,json){sysPassUtil.hideLoading();var status=json.status;var description=json.description;if(status===0){resMsg("ok",description)}else{if(status===10){resMsg("error",description);doLogout()}else{resMsg("error",description)}}},error:function(err,file){switch(err){case"BrowserNotSupported":resMsg("error",LANG[16]);break;case"TooManyFiles":resMsg("error",LANG[17]+" (max. "+this.maxfiles+")");break;case"FileTooLarge":resMsg("error",LANG[18]+"
"+file.name);break;case"FileExtensionNotAllowed":resMsg("error",LANG[19]);break;default:break}},uploadStarted:function(i,file,len){sysPassUtil.showLoading()}})};var sendAjax=function(data,url){$.ajax({type:"POST",dataType:"json",url:APP_ROOT+url,data:data,success:function(json){var status=json.status;var description=json.description;var action=json.action;switch(status){case 0:$.fancybox.close();resMsg("ok",description,undefined,action);break;case 1:$.fancybox.close();$(":input[type=password]").val("");resMsg("error",description,undefined,action);break;case 2:$("#resFancyAccion").html(''+description+"").show();break;case 3:$.fancybox.close();resMsg("warn",description,undefined,action);break;case 10:doLogout();break;default:return}},error:function(jqXHR,textStatus,errorThrown){var txt=LANG[1]+"

"+errorThrown+textStatus+"

";resMsg("error",txt)}})};var usrUpdPass=function(object,actionId,sk){var userId=$(object).attr("data-itemid");var data={userId:userId,actionId:actionId,sk:sk,isAjax:1};$.ajax({type:"GET",cache:false,url:APP_ROOT+"/ajax/ajax_usrpass.php",data:data,success:function(data){if(data.length===0){doLogout()}else{$.fancybox(data,{padding:0})}}})};var appMgmtData=function(obj,actionId,sk){var itemId=$(obj).attr("data-itemid");var activeTab=$(obj).attr("data-activetab");var data={itemId:itemId,actionId:actionId,sk:sk,activeTab:activeTab,isAjax:1};var url=APP_ROOT+"/ajax/ajax_appMgmtData.php";$.ajax({type:"POST",dataType:"html",url:url,data:data,success:function(response){$.fancybox(response,{padding:[0,10,10,10]})},error:function(jqXHR,textStatus,errorThrown){var txt=LANG[1]+"

"+errorThrown+textStatus+"

";resMsg("error",txt)}})};var appMgmtDelete=function(obj,actionId,sk){var itemId=$(obj).attr("data-itemid");var activeTab=$(obj).attr("data-activetab");var nextActionId=$(obj).attr("data-nextactionid");var atext='

'+LANG[12]+"

";var url="/ajax/ajax_appMgmtSave.php";var data={itemId:itemId,actionId:actionId,sk:sk,activeTab:activeTab,onCloseAction:nextActionId};alertify.okBtn(LANG[43]).cancelBtn(LANG[44]).confirm(atext,function(e){sendAjax(data,url)},function(e){e.preventDefault();alertify.error(LANG[44])})};var appMgmtSave=function(frmId){var url="/ajax/ajax_appMgmtSave.php";var data=$("#"+frmId).serialize();sendAjax(data,url)};var appMgmtSearch=function(form,sk){var data=$(form).serialize();var target=form.elements.target.value;data=data+"&sk="+sk;$.ajax({type:"POST",dataType:"json",url:APP_ROOT+"/ajax/ajax_appMgmtSearch.php",data:data,success:function(json){if(json.status===0){$("#"+target).html(json.html)}else{$("#"+target).html(resMsg("nofancyerror",json.description))}},error:function(){$("#"+target).html(resMsg("nofancyerror","error"))},complete:function(){sysPassUtil.hideLoading()}});return false};var linksMgmtSave=function(itemId,actionId,sk){var url="/ajax/ajax_appMgmtSave.php";var data={itemId:itemId,actionId:actionId,sk:sk,isAjax:1};alertify.okBtn(LANG[40]).cancelBtn(LANG[41]).confirm(LANG[48],function(e){$.extend(data,{notify:1});sendAjax(data,url)},function(e){e.preventDefault();sendAjax(data,url)})};var linksMgmtRefresh=function(obj,actionId,sk){var itemId=$(obj).attr("data-itemid");var activeTab=$(obj).attr("data-activetab");var nextActionId=$(obj).attr("data-nextactionid");var url="/ajax/ajax_appMgmtSave.php";var data={itemId:itemId,actionId:actionId,sk:sk,activeTab:activeTab,onCloseAction:nextActionId};sendAjax(data,url)};var checkUpds=function(){$.ajax({type:"GET",dataType:"html",url:APP_ROOT+"/ajax/ajax_checkUpds.php",timeout:10000,success:function(response){$("#updates").html(response);if(typeof componentHandler!=="undefined"){componentHandler.upgradeDom()}},error:function(jqXHR,textStatus,errorThrown){$("#updates").html("!")}})};var clearEventlog=function(sk){var atext='

'+LANG[20]+"

";alertify.okBtn(LANG[43]).cancelBtn(LANG[44]).confirm(atext,function(e){var data={clear:1,sk:sk,isAjax:1};var url="/ajax/ajax_eventlog.php";sendAjax(data,url)},function(e){e.preventDefault();alertify.error(LANG[44])})};var showOptional=function(me){$(me).hide();var actions=$(me).parent().children(".actions-optional");actions.show(250)};var getTime=function(){var t=new Date();return t.getTime()};var checkPassLevel=function(password,dst){var level=zxcvbn(password);outputResult(level.score,dst)};var outputResult=function(level,dstId){var complexity,selector=".passLevel-"+dstId;complexity=$(selector);complexity.removeClass("weak good strong strongest");if(passwordData.passLength===0){complexity.attr("title","").empty()}else{if(passwordData.passLength");switch(type){case"ok":alertify.closeLogOnClick(true).delay(15000).success(txt);break;case"error":alertify.closeLogOnClick(true).delay(15000).error(txt);break;case"warn":alertify.delay(30000).log(txt);break;case"nofancyerror":html='

Oops...
'+LANG[1]+"
"+txt+"

";return html;default:alertify.error(txt);break}if(typeof action!=="undefined"){eval(action)}};var checkLdapConn=function(formId){var form="#"+formId;var ldapBindPass=$(form).find("[name=ldap_bindpass]").val();var data={type:"ldap",ldap_server:$(form).find("[name=ldap_server]").val(),ldap_base:$(form).find("[name=ldap_base]").val(),ldap_group:$(form).find("[name=ldap_group]").val(),ldap_binduser:$(form).find("[name=ldap_binduser]").val(),ldap_bindpass:(PK!=="")?encrypt.encrypt(ldapBindPass):ldapBindPass,isAjax:1,sk:$(form).find("[name=sk]").val()};sendAjax(data,"/ajax/ajax_checkConnection.php")};var checkDokuWikiConn=function(formId){var form="#"+formId;var data={type:"dokuwiki",dokuwiki_url:$(form).find("[name=dokuwiki_url]").val(),dokuwiki_user:$(form).find("[name=dokuwiki_user]").val(),dokuwiki_pass:$(form).find("[name=dokuwiki_pass]").val(),isAjax:1,sk:$(form).find("[name=sk]").val()};$.ajax({type:"POST",url:APP_ROOT+"/ajax/ajax_checkConnection.php",data:data,success:function(response){if(response.status===1){resMsg("error",response.description)}else{if(response.status===0){resMsg("ok",response.description);$("#dokuWikiResCheck").html(response.data)}}}})};var goLogin=function(){setTimeout(function(){location.href="index.php"},2000)};var getBrowser=function(){var browser;var ua=navigator.userAgent;var re=new RegExp("(MSIE|Firefox)[ /]?([0-9]{1,}[.0-9]{0,})","i");if(re.exec(ua)!==null){browser=RegExp.$1}return browser};var chosenDetect=function(){var selectWidth="250px";var searchTreshold=10;$(".sel-chosen-usergroup").chosen({placeholder_text_single:LANG[21],placeholder_text_multiple:LANG[21],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth});$(".sel-chosen-user").chosen({placeholder_text_single:LANG[22],placeholder_text_multiple:LANG[22],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth});$(".sel-chosen-profile").chosen({placeholder_text_single:LANG[23],placeholder_text_multiple:LANG[23],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth});$(".sel-chosen-customer").each(function(){var deselect=$(this).hasClass("sel-chosen-deselect");$(this).chosen({allow_single_deselect:deselect,placeholder_text_single:LANG[24],placeholder_text_multiple:LANG[24],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth})});$(".sel-chosen-category").each(function(){var deselect=$(this).hasClass("sel-chosen-deselect");$(this).chosen({allow_single_deselect:deselect,placeholder_text_single:LANG[25],placeholder_text_multiple:LANG[25],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth})});$(".sel-chosen-action").each(function(){var deselect=$(this).hasClass("sel-chosen-deselect");$(this).chosen({allow_single_deselect:deselect,placeholder_text_single:LANG[39],placeholder_text_multiple:LANG[39],disable_search_threshold:searchTreshold,no_results_text:LANG[26],width:selectWidth})});$(".sel-chosen-ns").chosen({disable_search:true,width:selectWidth})};var checkboxDetect=function(container){$(container).find(".checkbox").button({icons:{primary:"ui-icon-transferthick-e-w"}}).click(function(){if($(this).prop("checked")===true){$(this).button("option","label",LANG[40])}else{$(this).button("option","label",LANG[41])}})};var encryptFormValue=function(inputId){var input=$(inputId);var curValue=input.val();var nextName=inputId+"-encrypted";var nextInput=input.next(':input[name="'+nextName+'"]');if((curValue!==""&&nextInput.attr("name")!==nextName)||(curValue!==""&&nextInput.attr("name")===nextName&&parseInt(input.next().val())!==curValue.length)){var passEncrypted=encrypt.encrypt(curValue);input.val(passEncrypted);if(nextInput.length>0){nextInput.val(passEncrypted.length)}else{input.after('')}}};var initializeClipboard=function(){var clipboard=new Clipboard(".clip-pass-button",{text:function(trigger){sysPassUtil.Common.viewPass(trigger.getAttribute("data-account-id"),false);return $("#clip-pass-text").html()}});clipboard.on("success",function(e){sysPassUtil.Common.resMsg("ok",LANG[45])});clipboard.on("error",function(e){sysPassUtil.Common.resMsg("error",LANG[46])});var clipboardPass=new Clipboard(".dialog-clip-pass-button");var clipboardUser=new Clipboard(".dialog-clip-user-button");clipboardPass.on("success",function(e){$(".dialog-pass-text").addClass("dialog-clip-pass-copy round");e.clearSelection()});clipboardUser.on("success",function(e){e.clearSelection()})};var bindPassEncrypt=function(){$("body").delegate(":input[type=password]","blur",function(e){var id=$(this).attr("id");encryptFormValue("#"+id)});$("body").delegate(":input[type=password]","keypress",function(e){if(e.keyCode===13){e.preventDefault();var form=$(this).closest("form");var id=$(this).attr("id");encryptFormValue("#"+id);form.submit()}})};var viewWiki=function(pageName,actionId,sk){var data={pageName:pageName,actionId:actionId,sk:sk,isAjax:1};var url=APP_ROOT+"/ajax/ajax_wiki.php";$.ajax({type:"POST",dataType:"html",url:url,data:data,success:function(response){$.fancybox(response,{padding:[0,10,10,10]})},error:function(jqXHR,textStatus,errorThrown){var txt=LANG[1]+"

"+errorThrown+textStatus+"

";resMsg("error",txt)}})};return{accSearch:accSearch,appMgmtData:appMgmtData,appMgmtSave:appMgmtSave,appMgmtSearch:appMgmtSearch,appMgmtDelete:appMgmtDelete,checkboxDetect:checkboxDetect,checkDokuWikiConn:checkDokuWikiConn,checkLdapConn:checkLdapConn,checkPassLevel:checkPassLevel,checkUpds:checkUpds,clearEventlog:clearEventlog,clearSearch:clearSearch,chosenDetect:chosenDetect,configMgmt:configMgmt,delAccount:delAccount,delFile:delFile,doAction:doAction,doLogin:doLogin,doLogout:doLogout,downFile:downFile,dropFile:dropFile,encryptFormValue:encryptFormValue,getFiles:getFiles,importFile:importFile,linksMgmtSave:linksMgmtSave,linksMgmtRefresh:linksMgmtRefresh,navLog:navLog,outputResult:outputResult,redirect:redirect,resMsg:resMsg,searchSort:searchSort,saveAccount:saveAccount,sendAjax:sendAjax,sendRequest:sendRequest,setContentSize:setContentSize,showOptional:showOptional,showSearchOrder:showSearchOrder,usrUpdPass:usrUpdPass,viewFile:viewFile,viewPass:viewPass,viewWiki:viewWiki,passwordData:passwordData,passToClip:passToClip,APP_ROOT:APP_ROOT,LANG:LANG,PK:PK}}; \ No newline at end of file