From 40a211d363e17b97ed31f84b723ec00b7ccd8478 Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Fri, 18 Aug 2017 12:31:16 +0200 Subject: [PATCH] * [FIX] Force logout when copying password to clipboard and session has expired. Closes #700. Thanks to @jrfx85 for the feddback! --- inc/SP/Util/Util.class.php | 2 +- js/app-main.js | 24 ++++++++++++++-------- js/app-main.min.js | 42 +++++++++++++++++++------------------- 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/inc/SP/Util/Util.class.php b/inc/SP/Util/Util.class.php index b88a4799..29f7cd91 100644 --- a/inc/SP/Util/Util.class.php +++ b/inc/SP/Util/Util.class.php @@ -386,7 +386,7 @@ class Util */ public static function getVersion($retBuild = false, $normalized = false) { - $build = 17081802; + $build = 17081803; $version = [2, 1, 13]; if ($normalized === true) { diff --git a/js/app-main.js b/js/app-main.js index 8603d4cf..b6f3f603 100644 --- a/js/app-main.js +++ b/js/app-main.js @@ -652,17 +652,25 @@ sysPass.Main = function () { $("body").on("click", ".clip-pass-button", function () { var json = appActions.account.copypass($(this)).done(function (json) { + if (json.status !== 0) { + msg.out(json); + + return false; + } + sk.set(json.csrf); }); - clipboard.copy(json.responseJSON.data.accpass).then( - function () { - msg.ok(config.LANG[45]); - }, - function (err) { - msg.error(config.LANG[46]); - } - ); + if (json !== false) { + clipboard.copy(json.responseJSON.data.accpass).then( + function () { + msg.ok(config.LANG[45]); + }, + function (err) { + msg.error(config.LANG[46]); + } + ); + } }).on("click", ".dialog-clip-button", function () { var $target = $(this.dataset.clipboardTarget); diff --git a/js/app-main.min.js b/js/app-main.min.js index 94983306..42647a5c 100644 --- a/js/app-main.min.js +++ b/js/app-main.min.js @@ -1,24 +1,24 @@ -var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(b,f,e){if(e.get||e.set)throw new TypeError("ES3 does not support getters and setters.");b!=Array.prototype&&b!=Object.prototype&&(b[f]=e.value)};$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_"; +var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(b,f,g){if(g.get||g.set)throw new TypeError("ES3 does not support getters and setters.");b!=Array.prototype&&b!=Object.prototype&&(b[f]=g.value)};$jscomp.getGlobal=function(b){return"undefined"!=typeof window&&window===b?b:"undefined"!=typeof global&&null!=global?global:b};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX="jscomp_symbol_"; $jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(b){return $jscomp.SYMBOL_PREFIX+(b||"")+$jscomp.symbolCounter_++}; $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var b=$jscomp.global.Symbol.iterator;b||(b=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[b]&&$jscomp.defineProperty(Array.prototype,b,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(b){var f=0;return $jscomp.iteratorPrototype(function(){return f"+a.messages.join("
"));switch(b){case 0:k.ok(d); -break;case 1:case 2:case 4:k.error(d);break;case 3:k.warn(d);break;case 10:l.main.logout();break;case 100:k.ok(d);k.sticky(d);break;case 101:k.error(d);k.sticky(d);break;default:k.error(d)}}},html:{error:function(a){return'

Oops...
'+b.LANG[1]+"
"+a+"

"}}};Object.freeze(k);String.format||(String.format=function(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,c){return"undefined"!=typeof b[c]?b[c]:a})});var y=function(){g.info("getEnvironment"); +$jscomp.iteratorPrototype=function(b){$jscomp.initSymbolIterator();b={next:b};b[$jscomp.global.Symbol.iterator]=function(){return this};return b};$jscomp.array=$jscomp.array||{};$jscomp.iteratorFromArray=function(b,f){$jscomp.initSymbolIterator();b instanceof String&&(b+="");var g=0,e={next:function(){if(g"+a.messages.join("
"));switch(b){case 0:h.ok(d); +break;case 1:case 2:case 4:h.error(d);break;case 3:h.warn(d);break;case 10:l.main.logout();break;case 100:h.ok(d);h.sticky(d);break;case 101:h.error(d);h.sticky(d);break;default:h.error(d)}}},html:{error:function(a){return'

Oops...
'+b.LANG[1]+"
"+a+"

"}}};Object.freeze(h);String.format||(String.format=function(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,c){return"undefined"!=typeof b[c]?b[c]:a})});var y=function(){k.info("getEnvironment"); var a=window.location.pathname.split("/");b.APP_ROOT=window.location.protocol+"//"+window.location.host+function(){for(var b="",c=1;c<=a.length-2;c++)b+="/"+a[c];return b}();var c=m.getRequestOpts();c.url="/ajax/ajax_getEnvironment.php";c.method="get";c.useLoading=!1;c.data={isAjax:1};return m.getActionCall(c,function(a){b.LANG=a.lang;b.PK=a.pk;b.CHECK_UPDATES=a.check_updates;b.CRYPT.setPublicKey(a.pk);b.TIMEZONE=a.timezone;b.LOCALE=a.locale;b.DEBUG=a.debug;b.MAX_FILE_SIZE=parseInt(a.max_file_size); -b.COOKIES_ENABLED=a.cookies_enabled;b.PLUGINS=a.plugins;b.LOGGEDIN=a.loggedin;Object.freeze(b)})},r={current:"",get:function(){g.info("sk:get");return $("#container").attr("data-sk")},set:function(a){g.info("sk:set");$("#container").attr("data-sk",a);a.current=a}},z=function(){var a=$("#container");if(!a.hasClass("content-no-auto-resize")){var b=$("#content").height()+200;a.css("height",b)}},A=function(){$("html, body").animate({scrollTop:0},"slow")},B=function(a){for(var b=[],d,h=window.location.href.slice(window.location.href.indexOf("?")+ -1).split("&"),g=0;gb.MAX_FILE_SIZE)k.error(b.LANG[18]+"
"+t.name+" (Max: "+b.MAX_FILE_SIZE+")");else{var g;a:{g=t.name;for(var f=a.data("files-ext").toLowerCase().split(","),e=0;e<=f.length;e++)if(-1!==g.indexOf(f[e])){g=!0;break a}g=!1}g?h(c[d]):k.error(b.LANG[19]+"
"+t.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();f(this.files)});return a};window.File&& -window.FileList&&window.FileReader?function(){g.info("fileUpload:init");var b=e(!1);a.on("dragover dragenter",function(a){g.info("fileUpload:drag");a.stopPropagation();a.preventDefault()});a.on("drop",function(a){g.info("fileUpload:drop");a.stopPropagation();a.preventDefault();"function"===typeof d.beforeSendAction&&d.beforeSendAction();f(a.originalEvent.dataTransfer.files)});a.on("click",function(){b.click()})}():e(!0);return d},E=function(a){g.info("checkPassLevel");f.passLength=a.val().length; -w(zxcvbn(a.val()),a)},w=function(a,c){g.info("outputResult");var d=$(".passLevel-"+c.attr("id")),e=a.score;d.show();d.removeClass("weak good strong strongest");0===f.passLength?d.attr("title","").empty():f.passLength -a.secondary?a.calc=a.main/a.rel:a.maina.secondary&&(a.main*=a.factor,h(a));return a},k=function(){f.main=b;f.secondary=d;var c=h(f);a.css({width:c.main,height:c.calc});e.width=c.main;e.height=c.calc},l=function(){f.main=d;f.secondary=b;var c=h(f);a.css({width:c.calc,height:c.main});e.width=c.calc;e.height=c.main};e.width>b?k():e.height>d&&(g.info("height"),l());return e},F=function(){var a=document.createElement("div");return function(b){b&&"string"===typeof b&& -(b=b.replace(/]*>([\S\s]*?)<\/script>/gmi,""),b=b.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi,""),a.innerHTML=b,b=a.textContent,a.textContent="");return b}}(),K=function(){g.info("checkPluginUpdates");for(var a in p)"function"===typeof p[a].checkVersion&&p[a].checkVersion().then(function(a){0===a.status&&void 0!==a.data.plugin&&k.info(String.format(b.LANG[66],a.data.plugin,a.data.remoteVersion))})};return function(){g.info("init");q={actions:function(){return l},triggers:function(){return h}, -theme:function(){return e},sk:r,msg:k,log:g,passwordData:f,outputResult:w,checkPassLevel:E,encryptFormValue:v,fileUpload:D,redirect:u,scrollUp:A,setContentSize:z};n=$.extend({log:g,config:function(){return b},appTheme:function(){return e},appActions:function(){return l},appTriggers:function(){return h},appRequests:function(){return m},appPlugins:function(){return p},evalAction:I,resizeImage:J},q);Object.freeze(q);Object.freeze(n);h=sysPass.Triggers(n);l=sysPass.Actions(n);m=sysPass.Requests(n);"function"=== -typeof sysPass.Theme&&(e=sysPass.Theme(n));y().then(function(){""!==b.PK&&H();!0===b.CHECK_UPDATES&&l.main.getUpdates();!1===b.COOKIES_ENABLED&&k.sticky(b.LANG[64]);G();x();C();g.info("initPlugins");for(var a=0;ab.MAX_FILE_SIZE)h.error(b.LANG[18]+"
"+t.name+" (Max: "+b.MAX_FILE_SIZE+")");else{var f;a:{f=t.name;for(var g=a.data("files-ext").toLowerCase().split(","),k=0;k<=g.length;k++)if(-1!==f.indexOf(g[k])){f=!0;break a}f=!1}f?e(c[d]):h.error(b.LANG[19]+"
"+t.name)}}},g=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(){k.info("fileUpload:init");var b=g(!1);a.on("dragover dragenter",function(a){k.info("fileUpload:drag");a.stopPropagation();a.preventDefault()});a.on("drop",function(a){k.info("fileUpload:drop");a.stopPropagation();a.preventDefault();"function"===typeof d.beforeSendAction&&d.beforeSendAction();f(a.originalEvent.dataTransfer.files)});a.on("click",function(){b.click()})}():g(!0);return d},E=function(a){k.info("checkPassLevel");f.passLength=a.val().length; +w(zxcvbn(a.val()),a)},w=function(a,c){k.info("outputResult");var d=$(".passLevel-"+c.attr("id")),e=a.score;d.show();d.removeClass("weak good strong strongest");0===f.passLength?d.attr("title","").empty():f.passLengtha.secondary?a.calc=a.main/a.rel:a.maina.secondary&&(a.main*=a.factor,g(a));return a},h=function(){f.main=b;f.secondary=d;var c=g(f);a.css({width:c.main,height:c.calc});e.width=c.main;e.height=c.calc},l=function(){f.main=d;f.secondary=b;var c=g(f);a.css({width:c.calc,height:c.main});e.width=c.calc;e.height=c.main};e.width>b?h():e.height>d&&(k.info("height"),l());return e},F=function(){var a=document.createElement("div"); +return function(b){b&&"string"===typeof b&&(b=b.replace(/]*>([\S\s]*?)<\/script>/gmi,""),b=b.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi,""),a.innerHTML=b,b=a.textContent,a.textContent="");return b}}(),K=function(){k.info("checkPluginUpdates");for(var a in p)"function"===typeof p[a].checkVersion&&p[a].checkVersion().then(function(a){0===a.status&&void 0!==a.data.plugin&&h.info(String.format(b.LANG[66],a.data.plugin,a.data.remoteVersion))})};return function(){k.info("init");q={actions:function(){return l}, +triggers:function(){return e},theme:function(){return g},sk:r,msg:h,log:k,passwordData:f,outputResult:w,checkPassLevel:E,encryptFormValue:v,fileUpload:D,redirect:u,scrollUp:A,setContentSize:z};n=$.extend({log:k,config:function(){return b},appTheme:function(){return g},appActions:function(){return l},appTriggers:function(){return e},appRequests:function(){return m},appPlugins:function(){return p},evalAction:I,resizeImage:J},q);Object.freeze(q);Object.freeze(n);e=sysPass.Triggers(n);l=sysPass.Actions(n); +m=sysPass.Requests(n);"function"===typeof sysPass.Theme&&(g=sysPass.Theme(n));y().then(function(){""!==b.PK&&H();!0===b.CHECK_UPDATES&&l.main.getUpdates();!1===b.COOKIES_ENABLED&&h.sticky(b.LANG[64]);G();x();C();k.info("initPlugins");for(var a=0;a