From f956810e48e3c45eb8dbfe4be46441219f089fdd Mon Sep 17 00:00:00 2001 From: Christophe Maudoux Date: Wed, 23 Dec 2020 22:38:58 +0100 Subject: [PATCH] Redirect to Portal (#1976) --- .../site/htdocs/static/languages/ar.json | 2 +- .../site/htdocs/static/languages/de.json | 2 +- .../site/htdocs/static/languages/es.json | 2 +- .../site/htdocs/static/languages/fr.json | 2 +- .../site/htdocs/static/languages/it.json | 2 +- .../site/htdocs/static/languages/pl.json | 2 +- .../site/htdocs/static/languages/tr.json | 2 +- .../site/htdocs/static/languages/vi.json | 2 +- .../site/htdocs/static/languages/zh.json | 2 +- .../site/htdocs/static/languages/zh_TW.json | 2 +- .../lib/Lemonldap/NG/Portal/Main/Display.pm | 2 +- .../lib/Lemonldap/NG/Portal/Plugins/FindUser.pm | 6 +++--- .../lib/Lemonldap/NG/Portal/UserDB/Demo.pm | 13 ++++++++----- lemonldap-ng-portal/site/coffee/portal.coffee | 4 ++++ .../site/htdocs/static/common/js/portal.js | 8 +++++++- .../site/htdocs/static/common/js/portal.min.js | 3 +-- .../site/htdocs/static/common/js/portal.min.js.map | 2 +- .../site/templates/bootstrap/finduser.tpl | 4 ++-- lemonldap-ng-portal/t/68-FindUser-with-DBI.t | 8 ++++---- 19 files changed, 41 insertions(+), 29 deletions(-) diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/ar.json b/lemonldap-ng-manager/site/htdocs/static/languages/ar.json index ae50ceeee..07f74ad37 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/ar.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/ar.json @@ -329,7 +329,7 @@ "failedLoginNumber":"عدد عمليات تسجيل الدخول الفاشلة المسجلة", "fileToUpload":"الملف الذي ستحمله", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"لست مخولا بعرض هذه الصفحة", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/de.json b/lemonldap-ng-manager/site/htdocs/static/languages/de.json index 6aa8271ac..a34a1c089 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/de.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/de.json @@ -329,7 +329,7 @@ "failedLoginNumber":"Number of registered failed logins", "fileToUpload":"File to upload", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"You're not authorized to show this page", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/es.json b/lemonldap-ng-manager/site/htdocs/static/languages/es.json index 26cae317a..ae5062ad3 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/es.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/es.json @@ -329,7 +329,7 @@ "failedLoginNumber":"Número de fallos en la identificación", "fileToUpload":"Fichero a cargar", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"No está autorizado a mostrar esta página", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/fr.json b/lemonldap-ng-manager/site/htdocs/static/languages/fr.json index 3bf4b1c8c..be612c88b 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/fr.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/fr.json @@ -329,7 +329,7 @@ "failedLoginNumber":"Nombre d'échecs de connexion mémorisés", "fileToUpload":"Fichier à télécharger", "findUser":"Activation", -"findUsers":"Rechercher un compte", +"findUsers":"Recherche de compte", "findUserSearchingAttributes":"Attributs de recherche", "findUserExcludingAttributes":"Attributs d'exclusion", "forbidden":"Vous n'êtes pas autorisé à visualiser cette page", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/it.json b/lemonldap-ng-manager/site/htdocs/static/languages/it.json index afd0265ed..66f28adb7 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/it.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/it.json @@ -329,7 +329,7 @@ "failedLoginNumber":"Numero di login registrati non riusciti", "fileToUpload":"File da caricare", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"Non sei autorizzato a mostrare questa pagina", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/pl.json b/lemonldap-ng-manager/site/htdocs/static/languages/pl.json index dd11b6043..cd5797135 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/pl.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/pl.json @@ -329,7 +329,7 @@ "failedLoginNumber":"Liczba zarejestrowanych nieudanych prób logowania", "fileToUpload":"Plik do przesłania", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"Nie masz uprawnień do wyświetlania tej strony", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/tr.json b/lemonldap-ng-manager/site/htdocs/static/languages/tr.json index 37c5004a5..1f862e9b8 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/tr.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/tr.json @@ -329,7 +329,7 @@ "failedLoginNumber":"Kayıtlı başarısız giriş sayısı", "fileToUpload":"Yüklenecek dosya", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"Bu sayfayı görüntülemek için yetkili değilsiniz", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/vi.json b/lemonldap-ng-manager/site/htdocs/static/languages/vi.json index c8f390490..37796b6a1 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/vi.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/vi.json @@ -329,7 +329,7 @@ "failedLoginNumber":"Số lượt đăng nhập thất bại", "fileToUpload":"Tập tin để tải lên", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"Bạn không được ủy quyền để hiển thị trang này", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/zh.json b/lemonldap-ng-manager/site/htdocs/static/languages/zh.json index 97c25bfd3..dcd8b3e81 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/zh.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/zh.json @@ -329,7 +329,7 @@ "failedLoginNumber":"Number of registered failed logins", "fileToUpload":"上传的文件", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"You're not authorized to show this page", diff --git a/lemonldap-ng-manager/site/htdocs/static/languages/zh_TW.json b/lemonldap-ng-manager/site/htdocs/static/languages/zh_TW.json index eea69a926..fbb916788 100644 --- a/lemonldap-ng-manager/site/htdocs/static/languages/zh_TW.json +++ b/lemonldap-ng-manager/site/htdocs/static/languages/zh_TW.json @@ -329,7 +329,7 @@ "failedLoginNumber":"已註冊的失敗登入數", "fileToUpload":"上傳失敗", "findUser":"Activation", -"findUsers":"Search user account", +"findUsers":"Search for user account", "findUserSearchingAttributes":"Searching attributes", "findUserExcludingAttributes":"Excluding attributes", "forbidden":"您無權顯示此頁面", diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Display.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Display.pm index 4d50e0ef3..2ca925e7c 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Display.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Main/Display.pm @@ -485,7 +485,7 @@ sub display { { $login = $req->{findUser}; $self->logger->debug( - 'Build an array ref with searching fields...'); + 'Building array ref with searching fields...'); @$fields = map { { key => $_, value => diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/FindUser.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/FindUser.pm index e5e8d324e..d9c67fdf0 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/FindUser.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Plugins/FindUser.pm @@ -64,8 +64,6 @@ sub provideUser { $self->logger->debug("Process returned error: $error"); return $req->error($error); } - - $req->mustRedirect(0); return $self->sendJSONresponse( $req, { @@ -88,7 +86,9 @@ sub retreiveFindUserParams { } } - if ( scalar @$searching ) { + if ( scalar @$searching + && keys %{ $self->conf->{findUserExcludingAttributes} } ) + { $self->logger->debug("FindUser: reading excluding parameters..."); foreach ( sort keys %{ $self->conf->{findUserExcludingAttributes} } ) { if ( $req->params($_) ) { diff --git a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Demo.pm b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Demo.pm index 3a7bdefc4..7decc803a 100644 --- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Demo.pm +++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/UserDB/Demo.pm @@ -99,13 +99,16 @@ sub findUser { : (); } keys %demoAccounts; - my $rank = rand( scalar @results ); $self->logger->debug( 'Demo UserDB number of result(s): ' . scalar @results ); - $self->logger->debug("Demo UserDB random rank: $rank"); - $self->userLogger->info("FindUser: Demo UserDB returns $results[$rank]"); - $req->{findUser} = $results[$rank]; - + if ( scalar @results ) { + my $rank = rand( scalar @results ); + $self->logger->debug("Demo UserDB random rank: $rank"); + $self->userLogger->info( + "FindUser: Demo UserDB returns $results[$rank]"); + $req->{findUser} = $results[$rank]; + } + PE_OK; } diff --git a/lemonldap-ng-portal/site/coffee/portal.coffee b/lemonldap-ng-portal/site/coffee/portal.coffee index 88d257170..9bcdd3226 100644 --- a/lemonldap-ng-portal/site/coffee/portal.coffee +++ b/lemonldap-ng-portal/site/coffee/portal.coffee @@ -529,3 +529,7 @@ $(window).on 'load', () -> $("#show-hide-icon-button").addClass 'fa-eye' #$('#formpass').on 'submit', changePwd + + if window.location.href.match /\/finduser/ + console.log 'Set Portal URL: ' + portal + window.history.pushState({page: 'Portal'}, 'Portal', portal) diff --git a/lemonldap-ng-portal/site/htdocs/static/common/js/portal.js b/lemonldap-ng-portal/site/htdocs/static/common/js/portal.js index f8da288b0..673117ac5 100644 --- a/lemonldap-ng-portal/site/htdocs/static/common/js/portal.js +++ b/lemonldap-ng-portal/site/htdocs/static/common/js/portal.js @@ -548,7 +548,7 @@ LemonLDAP::NG Portal jQuery scripts $('.oidcConsent').on('click', function() { return removeOidcConsent($(this).attr('partner')); }); - return $('#show-hide-button').on('click', function() { + $('#show-hide-button').on('click', function() { if ($("#newpassword").attr('type') === 'password') { console.log('Show passwords'); $("#newpassword").attr('type', 'input'); @@ -563,6 +563,12 @@ LemonLDAP::NG Portal jQuery scripts return $("#show-hide-icon-button").addClass('fa-eye'); } }); + if (window.location.href.match(/\/finduser/)) { + console.log('Set Portal URL: ' + portal); + return window.history.pushState({ + page: 'Portal' + }, 'Portal', portal); + } }); }).call(this); diff --git a/lemonldap-ng-portal/site/htdocs/static/common/js/portal.min.js b/lemonldap-ng-portal/site/htdocs/static/common/js/portal.min.js index 2f625932a..3e4a92987 100644 --- a/lemonldap-ng-portal/site/htdocs/static/common/js/portal.min.js +++ b/lemonldap-ng-portal/site/htdocs/static/common/js/portal.min.js @@ -1,2 +1 @@ -(function(){var e,a,t,n,o,s,i,r,c,l,d,p,u,g,f,h=[].indexOf||function(e){for(var a=0,t=this.length;a div.category",update:function(){return d()}}),r(),$("div.message").fadeIn("slow"),$("input[name=timezone]").val(-(new Date).getTimezoneOffset()/60),G=$("#menu").tabs({active:0}),A=$('#menu a[href="#'+e.displaytab+'"]').parent().index(),A<0&&(A=0),G.tabs("option","active",A),f=$("#authMenu").tabs({active:0}),p=$('#authMenu a[href="#'+e.displaytab+'"]').parent().index(),p<0&&(p=0),f.tabs("option","active",p),e.choicetab&&f.tabs("option","active",$('#authMenu a[href="#'+e.choicetab+'"]').parent().index()),e.login?$("input[type=password]:first").focus():0===$("input[autofocus]").length&&$("input[type!=hidden]:first").focus(),e.newwindow&&$("#appslist a").attr("target","_blank"),$("p.removeOther").length&&(a=$("#form").attr("action"),I=$("#form").attr("method"),console.log("method=",I),v="",$("#form input[type=hidden]")&&(console.log("Parse hidden values"),$("#form input[type=hidden]").each(function(e){return console.log(" ->",$(this).attr("name"),$(this).val()),v+="&"+$(this).attr("name")+"="+$(this).val()})),w="",a&&(console.log("action=",a),-1!==a.indexOf("?")?a.substring(0,a.indexOf("?")):w=a+"?",w+=v,v=""),P=$("p.removeOther a").attr("href")+"&method="+I+v,w&&(P+="&url="+btoa(w)),$("p.removeOther a").attr("href",P)),window.location.search&&(N=n("llnglanguage"),N&&console.log("Get lang from parameter"),1===(Z=n("setCookieLang"))&&console.log("Set lang cookie")),x||(x=t("llnglanguage"))&&!N&&console.log("Get lang from cookie"),x)h.call(window.availableLanguages,x)<0&&(x=window.availableLanguages[0],N||console.log("Lang not available -> Get default lang"));else if(navigator){for(O=[],L=[],_=[navigator.language],navigator.languages&&(_=navigator.languages),V=window.availableLanguages,k=0,T=V.length;k ';for(z=0,j=_.length;z Get default lang"),N=window.availableLanguages[0]),console.log("Selected lang ->",N),Z&&(console.log("Set cookie lang ->",N),c("llnglanguage",N)),g(N)):(console.log("Selected lang ->",x),c("llnglanguage",x),g(x)),C="",H=window.availableLanguages,M=0,S=H.length;M ';return $("#languages").html(C),$(".langicon").on("click",function(){return x=$(this).attr("title"),c("llnglanguage",x),g(x)}),b=function(e){var a;return(a=e.charCodeAt(0))>47&&a<58||a>64&&a<91||a>96&&a<123},m=function(e){var a,t,n,o,s,i,r,c,l;if(c=!0,window.datas.ppolicy.minsize>0&&(e.length>=window.datas.ppolicy.minsize?($("#ppolicy-minsize-feedback").addClass("fa-check text-success"),$("#ppolicy-minsize-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minsize-feedback").removeClass("fa-check text-success"),$("#ppolicy-minsize-feedback").addClass("fa-times text-danger"),c=!1)),window.datas.ppolicy.minupper>0&&(l=e.match(/[A-Z]/g),l&&l.length>=window.datas.ppolicy.minupper?($("#ppolicy-minupper-feedback").addClass("fa-check text-success"),$("#ppolicy-minupper-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minupper-feedback").removeClass("fa-check text-success"),$("#ppolicy-minupper-feedback").addClass("fa-times text-danger"),c=!1)),window.datas.ppolicy.minlower>0&&(s=e.match(/[a-z]/g),s&&s.length>=window.datas.ppolicy.minlower?($("#ppolicy-minlower-feedback").addClass("fa-check text-success"),$("#ppolicy-minlower-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minlower-feedback").removeClass("fa-check text-success"),$("#ppolicy-minlower-feedback").addClass("fa-times text-danger"),c=!1)),window.datas.ppolicy.mindigit>0&&(a=e.match(/[0-9]/g),a&&a.length>=window.datas.ppolicy.mindigit?($("#ppolicy-mindigit-feedback").addClass("fa-check text-success"),$("#ppolicy-mindigit-feedback").removeClass("fa-times text-danger")):($("#ppolicy-mindigit-feedback").removeClass("fa-check text-success"),$("#ppolicy-mindigit-feedback").addClass("fa-times text-danger"),c=!1)),window.datas.ppolicy.allowedspechar){for(i=window.datas.ppolicy.allowedspechar.replace(/\s/g,""),t=!1,n=0,o=e.length;n0&&window.datas.ppolicy.allowedspechar){for(r=0,i=window.datas.ppolicy.allowedspechar.replace(/\s/g,""),n=0;n=0&&r++,n++;r>=window.datas.ppolicy.minspechar?($("#ppolicy-minspechar-feedback").addClass("fa-check text-success"),$("#ppolicy-minspechar-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minspechar-feedback").removeClass("fa-check text-success"),$("#ppolicy-minspechar-feedback").addClass("fa-times text-danger"),c=!1)}if(window.datas.ppolicy.minspechar>0&&!window.datas.ppolicy.allowedspechar){for(r=0,n=0;n=window.datas.ppolicy.minspechar?($("#ppolicy-minspechar-feedback").addClass("fa-check text-success"),$("#ppolicy-minspechar-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minspechar-feedback").removeClass("fa-check text-success"),$("#ppolicy-minspechar-feedback").addClass("fa-times text-danger"),c=!1)}c?($(".ppolicy").removeClass("border-danger").addClass("border-success"),$("#newpassword")[0].setCustomValidity("")):($(".ppolicy").removeClass("border-success").addClass("border-danger"),$("#newpassword")[0].setCustomValidity(u("PE28")))},null!=window.datas.ppolicy&&$("#newpassword").length&&(m(""),$("#newpassword").keyup(function(e){m(e.target.value)})),y=function(){return $("#confirmpassword")[0].value===$("#newpassword")[0].value?($("#confirmpassword")[0].setCustomValidity(""),!0):($("#confirmpassword")[0].setCustomValidity(u("PE34")),!1)},$("#newpassword").change(y),$("#confirmpassword").change(y),e.pingInterval&&e.pingInterval>0&&window.setTimeout(s,e.pingInterval),$(".localeDate").each(function(){var e;return e=new Date(1e3*$(this).attr("val")),$(this).text(e.toLocaleString())}),$(".oidcConsent").on("click",function(){return i($(this).attr("partner"))}),$("#show-hide-button").on("click",function(){return"password"===$("#newpassword").attr("type")?(console.log("Show passwords"),$("#newpassword").attr("type","input"),$("#confirmpassword").attr("type","input"),$("#show-hide-icon-button").removeClass("fa-eye"),$("#show-hide-icon-button").addClass("fa-eye-slash")):(console.log("Hide passwords"),$("#newpassword").attr("type","password"),$("#confirmpassword").attr("type","password"),$("#show-hide-icon-button").removeClass("fa-eye-slash"),$("#show-hide-icon-button").addClass("fa-eye"))})})}).call(this); -//# sourceMappingURL=portal.min.js.map \ No newline at end of file +(function(){var G,a,I,D,R,U,_,M,N,e,V,g,J,H,i,Z=[].indexOf||function(e){for(var a=0,t=this.length;a div.category",update:function(){return V()}}),M(),$("div.message").fadeIn("slow"),$("input[name=timezone]").val(-(new Date).getTimezoneOffset()/60),k=$("#menu").tabs({active:0}),(b=$('#menu a[href="#'+G.displaytab+'"]').parent().index())<0&&(b=0),k.tabs("option","active",b),n=$("#authMenu").tabs({active:0}),(t=$('#authMenu a[href="#'+G.displaytab+'"]').parent().index())<0&&(t=0),n.tabs("option","active",t),G.choicetab&&n.tabs("option","active",$('#authMenu a[href="#'+G.choicetab+'"]').parent().index()),G.login?$("input[type=password]:first").focus():0===$("input[autofocus]").length&&$("input[type!=hidden]:first").focus(),G.newwindow&&$("#appslist a").attr("target","_blank"),$("p.removeOther").length&&(e=$("#form").attr("action"),x=$("#form").attr("method"),console.log("method=",x),r="",$("#form input[type=hidden]")&&(console.log("Parse hidden values"),$("#form input[type=hidden]").each(function(e){return console.log(" ->",$(this).attr("name"),$(this).val()),r+="&"+$(this).attr("name")+"="+$(this).val()})),o="",e&&(console.log("action=",e),-1!==e.indexOf("?")?e.substring(0,e.indexOf("?")):o=e+"?",o+=r,r=""),y=$("p.removeOther a").attr("href")+"&method="+x+r,o&&(y+="&url="+btoa(o)),$("p.removeOther a").attr("href",y)),window.location.search&&((P=D("llnglanguage"))&&console.log("Get lang from parameter"),1===(A=D("setCookieLang"))&&console.log("Set lang cookie")),c||(c=I("llnglanguage"))&&!P&&console.log("Get lang from cookie"),c)Z.call(window.availableLanguages,c)<0&&(c=window.availableLanguages[0],P||console.log("Lang not available -> Get default lang"));else if(navigator){for(u=[],g=[],O=[navigator.language],navigator.languages&&(O=navigator.languages),l=0,f=(j=window.availableLanguages).length;l ';for(v=0,h=O.length;v Get default lang"),P=window.availableLanguages[0]),console.log("Selected lang ->",P),A&&(console.log("Set cookie lang ->",P),N("llnglanguage",P)),H(P)):(console.log("Selected lang ->",c),N("llnglanguage",c),H(c)),p="",T=0,m=(z=window.availableLanguages).length;T ';if($("#languages").html(p),$(".langicon").on("click",function(){return c=$(this).attr("title"),N("llnglanguage",c),H(c)}),d=function(e){var a;return 47<(a=e.charCodeAt(0))&&a<58||64=window.datas.ppolicy.minsize?($("#ppolicy-minsize-feedback").addClass("fa-check text-success"),$("#ppolicy-minsize-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minsize-feedback").removeClass("fa-check text-success"),$("#ppolicy-minsize-feedback").addClass("fa-times text-danger"),l=!1)),0=window.datas.ppolicy.minupper?($("#ppolicy-minupper-feedback").addClass("fa-check text-success"),$("#ppolicy-minupper-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minupper-feedback").removeClass("fa-check text-success"),$("#ppolicy-minupper-feedback").addClass("fa-times text-danger"),l=!1)),0=window.datas.ppolicy.minlower?($("#ppolicy-minlower-feedback").addClass("fa-check text-success"),$("#ppolicy-minlower-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minlower-feedback").removeClass("fa-check text-success"),$("#ppolicy-minlower-feedback").addClass("fa-times text-danger"),l=!1)),0=window.datas.ppolicy.mindigit?($("#ppolicy-mindigit-feedback").addClass("fa-check text-success"),$("#ppolicy-mindigit-feedback").removeClass("fa-times text-danger")):($("#ppolicy-mindigit-feedback").removeClass("fa-check text-success"),$("#ppolicy-mindigit-feedback").addClass("fa-times text-danger"),l=!1)),window.datas.ppolicy.allowedspechar){for(i=window.datas.ppolicy.allowedspechar.replace(/\s/g,""),t=!1,n=0,o=e.length;n=window.datas.ppolicy.minspechar?($("#ppolicy-minspechar-feedback").addClass("fa-check text-success"),$("#ppolicy-minspechar-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minspechar-feedback").removeClass("fa-check text-success"),$("#ppolicy-minspechar-feedback").addClass("fa-times text-danger"),l=!1)}if(0=window.datas.ppolicy.minspechar?($("#ppolicy-minspechar-feedback").addClass("fa-check text-success"),$("#ppolicy-minspechar-feedback").removeClass("fa-times text-danger")):($("#ppolicy-minspechar-feedback").removeClass("fa-check text-success"),$("#ppolicy-minspechar-feedback").addClass("fa-times text-danger"),l=!1)}l?($(".ppolicy").removeClass("border-danger").addClass("border-success"),$("#newpassword")[0].setCustomValidity("")):($(".ppolicy").removeClass("border-success").addClass("border-danger"),$("#newpassword")[0].setCustomValidity(J("PE28")))},null!=window.datas.ppolicy&&$("#newpassword").length&&(s(""),$("#newpassword").keyup(function(e){s(e.target.value)})),i=function(){return $("#confirmpassword")[0].value===$("#newpassword")[0].value?($("#confirmpassword")[0].setCustomValidity(""),!0):($("#confirmpassword")[0].setCustomValidity(J("PE34")),!1)},$("#newpassword").change(i),$("#confirmpassword").change(i),G.pingInterval&&0

-