Merge branch 'v2.0'

This commit is contained in:
Christophe Maudoux 2020-01-04 17:07:39 +01:00
commit 4fc458b174
24 changed files with 90 additions and 100 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -451,7 +451,7 @@ site/templates/common/mail/tr.json
site/templates/common/mail/vi.json site/templates/common/mail/vi.json
site/templates/common/mail/zh_CN.json site/templates/common/mail/zh_CN.json
site/templates/common/mail_2fcode.tpl site/templates/common/mail_2fcode.tpl
site/templates/common/mail_certificatReset.tpl site/templates/common/mail_certificateReset.tpl
site/templates/common/mail_confirm.tpl site/templates/common/mail_confirm.tpl
site/templates/common/mail_footer.tpl site/templates/common/mail_footer.tpl
site/templates/common/mail_header.tpl site/templates/common/mail_header.tpl

View File

@ -13,15 +13,9 @@ extends 'Lemonldap::NG::Portal::Lib::LDAP';
our $VERSION = '2.1.0'; our $VERSION = '2.1.0';
# RUNNING METHODS # PRIVATE METHOD
# PRIVATE METHODS
sub modifCertificate { sub modifCertificate {
my ( $self, $newcertif, $usercertif, $req ) = @_;
my $self = shift;
my $newcertif = shift;
my $usercertif = shift;
my $req = shift;
my $ceaAttribute = $self->conf->{certificateResetByMailCeaAttribute} my $ceaAttribute = $self->conf->{certificateResetByMailCeaAttribute}
|| "description"; || "description";
my $certificateAttribute = my $certificateAttribute =
@ -29,8 +23,6 @@ sub modifCertificate {
|| "userCertificate;binary"; || "userCertificate;binary";
# Set the dn unless done before # Set the dn unless done before
#
#
my $dn; my $dn;
if ( $req->userData->{_dn} ) { if ( $req->userData->{_dn} ) {
$dn = $req->userData->{_dn}; $dn = $req->userData->{_dn};
@ -41,7 +33,7 @@ sub modifCertificate {
$self->logger->debug("Get DN from session data: $dn"); $self->logger->debug("Get DN from session data: $dn");
} }
unless ($dn) { unless ($dn) {
$self->logger->error('"dn" is not set, aborting password modification'); $self->logger->error('"dn" is not set, aborting certificate reset');
return PE_ERROR; return PE_ERROR;
} }

View File

@ -261,8 +261,7 @@ sub _certificateReset {
my $mailSession = $self->getCertificateSession( $req->{user} ); my $mailSession = $self->getCertificateSession( $req->{user} );
unless ( $mailSession or $mailToken ) { unless ( $mailSession or $mailToken ) {
# Create a new session ## Create a new session
my $infos = {}; my $infos = {};
# Set _utime for session autoremove # Set _utime for session autoremove
@ -423,7 +422,7 @@ sub modifyCertificate {
my $x509; my $x509;
my $notAfter; my $notAfter;
$self->logger->debug('Change your Certificate form response'); $self->logger->debug('Change your certificate form response');
if ( my $token = $req->param('token') ) { if ( my $token = $req->param('token') ) {
$req->sessionInfo( $self->ott->getToken($token) ); $req->sessionInfo( $self->ott->getToken($token) );
@ -451,10 +450,9 @@ sub modifyCertificate {
#Updload certificate #Updload certificate
my $upload = $req->uploads->{certif}; my $upload = $req->uploads->{certif};
unless ( $upload->size > 0 ) { return PE_RESETCERTIFICATE_FORMEMPTY; } return PE_RESETCERTIFICATE_FORMEMPTY unless ( $upload->size > 0 );
# Get Certificate
# Get certificate
my $file = $upload->path; my $file = $upload->path;
$self->userLogger->debug( "Temporaly file " . $file ); $self->userLogger->debug( "Temporaly file " . $file );
@ -472,11 +470,9 @@ sub modifyCertificate {
unless ($x509) { unless ($x509) {
$self->userLogger->debug( "Unable to decode certificate for user " $self->userLogger->debug( "Unable to decode certificate for user "
. Net::SSLeay::ERR_error_string( Net::SSLeay::ERR_get_error() ) ); . Net::SSLeay::ERR_error_string( Net::SSLeay::ERR_get_error() ) );
#return PE_CERTIFICATE_INVALID;
return PE_RESETCERTIFICATE_INVALID; return PE_RESETCERTIFICATE_INVALID;
} }
$self->userLogger->debug("Certificate decoded successfully"); $self->userLogger->debug("Certificate successfully decoded");
$notAfter = Net::SSLeay::P_ASN1_TIME_get_isotime( $notAfter = Net::SSLeay::P_ASN1_TIME_get_isotime(
Net::SSLeay::X509_get_notAfter($x509) ); Net::SSLeay::X509_get_notAfter($x509) );
@ -487,25 +483,22 @@ sub modifyCertificate {
Net::SSLeay::X509_get_serialNumber($x509) ); Net::SSLeay::X509_get_serialNumber($x509) );
$self->userLogger->debug( $self->userLogger->debug(
"Certificate will expire after $notAfter, Issuer $x509issuer and serialNumber $x509serial" "Certificate will expire after $notAfter, Issuer $x509issuer and serialNumber $x509serial"
); );
# Check Certificate Validity before store # Check certificate validity before store
if ( if (
$self->checkCertificateValidity( $notAfter, $self->checkCertificateValidity( $notAfter,
$self->conf->{certificateResetByMailValidityDelay} ) == 0 $self->conf->{certificateResetByMailValidityDelay} ) == 0
) )
{ {
$self->userLogger->debug( $self->userLogger->debug(
"Your cettificate is no longer valid in $self->conf->{certificateValidityDelay}" "Your certificate is no longer valid in $self->conf->{certificateValidityDelay}"
); );
return PE_RESETCERTIFICATE_INVALID; return PE_RESETCERTIFICATE_INVALID;
#return PE_PASSWORD_MISMATCH;
} }
# Build serial number hex: example f3:08:52:63:28:29:fa:e2 # Build serial number hex: example f3:08:52:63:28:29:fa:e2
my @numberstring = split //, lc($x509serial); my @numberstring = split //, lc($x509serial);
my $serial = ""; my $serial = "";
for ( my $i = 0 ; $i <= $#numberstring ; $i += 2 ) { for ( my $i = 0 ; $i <= $#numberstring ; $i += 2 ) {
@ -514,7 +507,6 @@ sub modifyCertificate {
} }
# format issuer in the good format example "CN=CA,OU=CISIRH,O=MINEFI,L=Paris,ST=France,C=FR" # format issuer in the good format example "CN=CA,OU=CISIRH,O=MINEFI,L=Paris,ST=France,C=FR"
my @issuertab = split /\//, $x509issuer; my @issuertab = split /\//, $x509issuer;
shift(@issuertab); shift(@issuertab);
my $issuer = join( ",", reverse(@issuertab) ); my $issuer = join( ",", reverse(@issuertab) );
@ -528,7 +520,7 @@ sub modifyCertificate {
# Get attribut userCertificate;binary value # Get attribut userCertificate;binary value
my $cert = $self->certificateHash($file); my $cert = $self->certificateHash($file);
# modif the ldap certificate attribute # Modify ldap certificate attribute
$req->user( $req->{sessionInfo}->{_user} ); $req->user( $req->{sessionInfo}->{_user} );
my $result = my $result =
$self->registerModule->modifCertificate( $certificatExactAssertion, $self->registerModule->modifCertificate( $certificatExactAssertion,
@ -539,7 +531,7 @@ sub modifyCertificate {
# #
return $result unless ( $result == PE_OK ); return $result unless ( $result == PE_OK );
# Send mail to notify the certificate reset sucessfully # Send mail to notify the certificate has been successfully reset
$req->data->{mailAddress} ||= $req->data->{mailAddress} ||=
$self->p->getFirstValue( $self->p->getFirstValue(
$req->{sessionInfo}->{ $self->conf->{mailSessionKey} } ); $req->{sessionInfo}->{ $self->conf->{mailSessionKey} } );
@ -562,8 +554,9 @@ sub modifyCertificate {
else { else {
# Use HTML template # Use HTML template
$body = $self->loadTemplate( $body = $self->loadMailTemplate(
'mail_certificatReset', $req,
'mail_certificateReset',
filter => $tr, filter => $tr,
params => \%tplPrms params => \%tplPrms
); );
@ -627,7 +620,7 @@ sub display {
$tplPrm{MAIL_TOKEN} = $req->data->{mailToken}; $tplPrm{MAIL_TOKEN} = $req->data->{mailToken};
} }
# Display captcha if it's enabled # Display captcha if enabled
if ( $req->captcha ) { if ( $req->captcha ) {
$tplPrm{CAPTCHA_SRC} = $req->captcha; $tplPrm{CAPTCHA_SRC} = $req->captcha;
$tplPrm{CAPTCHA_SIZE} = $self->conf->{captcha_size}; $tplPrm{CAPTCHA_SIZE} = $self->conf->{captcha_size};
@ -669,7 +662,7 @@ sub display {
$tplPrm{DISPLAY_MAILSENT} = 1; $tplPrm{DISPLAY_MAILSENT} = 1;
} }
# Display Certificate Reset form # Display certificate reset form
elsif ( $req->data->{mailToken} elsif ( $req->data->{mailToken}
and $req->error != PE_MAILERROR and $req->error != PE_MAILERROR
and $req->error != PE_BADMAILTOKEN and $req->error != PE_BADMAILTOKEN
@ -679,7 +672,7 @@ sub display {
$tplPrm{DISPLAY_CERTIF_FORM} = 1; $tplPrm{DISPLAY_CERTIF_FORM} = 1;
} }
# Display Certificate Reset form again if certificate invalid # Display certificate reset form again if certificate invalid
elsif ($req->error == PE_RESETCERTIFICATE_FORMEMPTY elsif ($req->error == PE_RESETCERTIFICATE_FORMEMPTY
|| $req->error == PE_RESETCERTIFICATE_INVALID ) || $req->error == PE_RESETCERTIFICATE_INVALID )
{ {
@ -719,7 +712,6 @@ sub getCertificateSession {
} }
# Use Certificate Update parameter to send mail # Use Certificate Update parameter to send mail
sub sendmail { sub sendmail {
my ( $self, $mail, $subject, $body, $html ) = @_; my ( $self, $mail, $subject, $body, $html ) = @_;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1 @@
(function(){var e,r,t,o,n;t=function(e,r){return $("#msg").html(window.translate(e)),$("#color").removeClass("message-positive message-warning message-danger alert-success alert-warning alert-danger"),$("#color").addClass("message-"+r),"positive"===r&&(r="success"),$("#color").addClass("alert-"+r)},e=function(e,r,o){var n;if(console.log("Error",o),(n=JSON.parse(e.responseText))&&n.error)return n=n.error.replace(/.* /,""),console.log("Returned error",n),t(n,"warning")},o="",r=function(r){return t("yourTotpKey","warning"),$.ajax({type:"POST",url:portal+"/2fregisters/totp/getkey",dataType:"json",data:{newkey:r},error:e,success:function(e){var r;return e.error?(e.error.match(/totpExistingKey/)&&$("#divToHide").hide(),t(e.error,"warning")):e.portal&&e.user&&e.secret?($("#divToHide").show(),r="otpauth://totp/"+escape(e.portal)+":"+escape(e.user)+"?secret="+e.secret+"&issuer="+escape(e.portal),6!==e.digits&&(r+="&digits="+e.digits),30!==e.interval&&(r+="&period="+e.interval),new QRious({element:document.getElementById("qr"),value:r,size:150}),$("#serialized").text(r),e.newkey?t("yourNewTotpKey","warning"):t("yourTotpKey","success"),o=e.token):t("PE24","danger")}})},n=function(){var r;return r=$("#code").val(),r?$.ajax({type:"POST",url:portal+"/2fregisters/totp/verify",dataType:"json",data:{token:o,code:r,TOTPName:$("#TOTPName").val()},error:e,success:function(e){return e.error?e.error.match(/bad(Code|Name)/)?t(e.error,"warning"):t(e.error,"danger"):t("yourKeyIsRegistered","success")}}):t("fillTheForm","warning")},$(document).ready(function(){return r(0),$("#changekey").on("click",function(){return r(1)}),$("#verify").on("click",function(){return n()})})}).call(this); (function(){var r,e,n,t,o;n=function(e,r){return $("#msg").html(window.translate(e)),$("#color").removeClass("message-positive message-warning message-danger alert-success alert-warning alert-danger"),$("#color").addClass("message-"+r),"positive"===r&&(r="success"),$("#color").addClass("alert-"+r)},r=function(e,r,t){var o;if(console.log("Error",t),(o=JSON.parse(e.responseText))&&o.error)return o=o.error.replace(/.* /,""),console.log("Returned error",o),n(o,"warning")},t="",e=function(e){return n("yourTotpKey","warning"),$.ajax({type:"POST",url:portal+"/2fregisters/totp/getkey",dataType:"json",data:{newkey:e},error:r,success:function(e){var r;return e.error?(e.error.match(/totpExistingKey/)&&$("#divToHide").hide(),n(e.error,"warning")):e.portal&&e.user&&e.secret?($("#divToHide").show(),r="otpauth://totp/"+escape(e.portal)+":"+escape(e.user)+"?secret="+e.secret+"&issuer="+escape(e.portal),6!==e.digits&&(r+="&digits="+e.digits),30!==e.interval&&(r+="&period="+e.interval),new QRious({element:document.getElementById("qr"),value:r,size:150}),$("#serialized").text(r),e.newkey?n("yourNewTotpKey","warning"):n("yourTotpKey","success"),t=e.token):n("PE24","danger")}})},o=function(){var e;return(e=$("#code").val())?$.ajax({type:"POST",url:portal+"/2fregisters/totp/verify",dataType:"json",data:{token:t,code:e,TOTPName:$("#TOTPName").val()},error:r,success:function(e){return e.error?e.error.match(/bad(Code|Name)/)?n(e.error,"warning"):n(e.error,"danger"):n("yourKeyIsRegistered","success")}}):n("fillTheForm","warning")},$(document).ready(function(){return e(0),$("#changekey").on("click",function(){return e(1)}),$("#verify").on("click",function(){return o()})})}).call(this);
//# sourceMappingURL=lemonldap-ng-portal/site/htdocs/static/common/js/totpregistration.min.js.map

View File

@ -1 +1 @@
{"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/totpregistration.js"],"names":["displayError","getKey","setMsg","token","verify","msg","level","$","html","window","translate","removeClass","addClass","j","status","err","res","console","log","JSON","parse","responseText","error","replace","reset","ajax","type","url","portal","dataType","data","newkey","success","s","match","hide","user","secret","show","escape","digits","interval","QRious","element","document","getElementById","value","size","text","val","code","TOTPName","ready","on","call","this"],"mappings":"CAMA,WACE,GAAIA,GAAcC,EAAQC,EAAQC,EAAOC,CAEzCF,GAAS,SAASG,EAAKC,GAOrB,MANAC,GAAE,QAAQC,KAAKC,OAAOC,UAAUL,IAChCE,EAAE,UAAUI,YAAY,4FACxBJ,EAAE,UAAUK,SAAS,WAAaN,GACpB,aAAVA,IACFA,EAAQ,WAEHC,EAAE,UAAUK,SAAS,SAAWN,IAGzCN,EAAe,SAASa,EAAGC,EAAQC,GACjC,GAAIC,EAGJ,IAFAC,QAAQC,IAAI,QAASH,IACrBC,EAAMG,KAAKC,MAAMP,EAAEQ,gBACRL,EAAIM,MAGb,MAFAN,GAAMA,EAAIM,MAAMC,QAAQ,MAAO,IAC/BN,QAAQC,IAAI,iBAAkBF,GACvBd,EAAOc,EAAK,YAIvBb,EAAQ,GAERF,EAAS,SAASuB,GAEhB,MADAtB,GAAO,cAAe,WACfK,EAAEkB,MACPC,KAAM,OACNC,IAAKC,OAAS,2BACdC,SAAU,OACVC,MACEC,OAAQP,GAEVF,MAAOtB,EACPgC,QAAS,SAASF,GAChB,GAAQG,EACR,OAAIH,GAAKR,OACHQ,EAAKR,MAAMY,MAAM,oBACnB3B,EAAE,cAAc4B,OAEXjC,EAAO4B,EAAKR,MAAO,YAEtBQ,EAAKF,QAAUE,EAAKM,MAAQN,EAAKO,QAGvC9B,EAAE,cAAc+B,OAChBL,EAAI,kBAAqBM,OAAOT,EAAKF,QAAW,IAAOW,OAAOT,EAAKM,MAAS,WAAaN,EAAKO,OAAS,WAAcE,OAAOT,EAAKF,QAC7G,IAAhBE,EAAKU,SACPP,GAAK,WAAaH,EAAKU,QAEH,KAAlBV,EAAKW,WACPR,GAAK,WAAaH,EAAKW,UAEpB,GAAIC,SACPC,QAASC,SAASC,eAAe,MACjCC,MAAOb,EACPc,KAAM,MAERxC,EAAE,eAAeyC,KAAKf,GAClBH,EAAKC,OACP7B,EAAO,iBAAkB,WAEzBA,EAAO,cAAe,WAEjBC,EAAQ2B,EAAK3B,OArBXD,EAAO,OAAQ,cA0B9BE,EAAS,WACP,GAAI6C,EAEJ,OADAA,GAAM1C,EAAE,SAAS0C,MACZA,EAGI1C,EAAEkB,MACPC,KAAM,OACNC,IAAKC,OAAS,2BACdC,SAAU,OACVC,MACE3B,MAAOA,EACP+C,KAAMD,EACNE,SAAU5C,EAAE,aAAa0C,OAE3B3B,MAAOtB,EACPgC,QAAS,SAASF,GAChB,MAAIA,GAAKR,MACHQ,EAAKR,MAAMY,MAAM,kBACZhC,EAAO4B,EAAKR,MAAO,WAEnBpB,EAAO4B,EAAKR,MAAO,UAGrBpB,EAAO,sBAAuB,cApBpCA,EAAO,cAAe,YA2BjCK,EAAEqC,UAAUQ,MAAM,WAKhB,MAJAnD,GAAO,GACPM,EAAE,cAAc8C,GAAG,QAAS,WAC1B,MAAOpD,GAAO,KAETM,EAAE,WAAW8C,GAAG,QAAS,WAC9B,MAAOjD,WAIVkD,KAAKC","file":"lemonldap-ng-portal/site/htdocs/static/common/js/totpregistration.min.js"} {"version":3,"sources":["lemonldap-ng-portal/site/htdocs/static/common/js/totpregistration.js"],"names":["displayError","getKey","setMsg","token","verify","msg","level","$","html","window","translate","removeClass","addClass","j","status","err","res","console","log","JSON","parse","responseText","error","replace","reset","ajax","type","url","portal","dataType","data","newkey","success","s","match","hide","user","secret","show","escape","digits","interval","QRious","element","document","getElementById","value","size","text","val","code","TOTPName","ready","on","call","this"],"mappings":"CAMA,WACE,IAAIA,EAAcC,EAAQC,EAAQC,EAAOC,EAEzCF,EAAS,SAASG,EAAKC,GAOrB,OANAC,EAAE,QAAQC,KAAKC,OAAOC,UAAUL,IAChCE,EAAE,UAAUI,YAAY,4FACxBJ,EAAE,UAAUK,SAAS,WAAaN,GACpB,aAAVA,IACFA,EAAQ,WAEHC,EAAE,UAAUK,SAAS,SAAWN,IAGzCN,EAAe,SAASa,EAAGC,EAAQC,GACjC,IAAIC,EAGJ,GAFAC,QAAQC,IAAI,QAASH,IACrBC,EAAMG,KAAKC,MAAMP,EAAEQ,gBACRL,EAAIM,MAGb,OAFAN,EAAMA,EAAIM,MAAMC,QAAQ,MAAO,IAC/BN,QAAQC,IAAI,iBAAkBF,GACvBd,EAAOc,EAAK,YAIvBb,EAAQ,GAERF,EAAS,SAASuB,GAEhB,OADAtB,EAAO,cAAe,WACfK,EAAEkB,KAAK,CACZC,KAAM,OACNC,IAAKC,OAAS,2BACdC,SAAU,OACVC,KAAM,CACJC,OAAQP,GAEVF,MAAOtB,EACPgC,QAAS,SAASF,GAChB,IAAQG,EACR,OAAIH,EAAKR,OACHQ,EAAKR,MAAMY,MAAM,oBACnB3B,EAAE,cAAc4B,OAEXjC,EAAO4B,EAAKR,MAAO,YAEtBQ,EAAKF,QAAUE,EAAKM,MAAQN,EAAKO,QAGvC9B,EAAE,cAAc+B,OAChBL,EAAI,kBAAqBM,OAAOT,EAAKF,QAAW,IAAOW,OAAOT,EAAKM,MAAS,WAAaN,EAAKO,OAAS,WAAcE,OAAOT,EAAKF,QAC7G,IAAhBE,EAAKU,SACPP,GAAK,WAAaH,EAAKU,QAEH,KAAlBV,EAAKW,WACPR,GAAK,WAAaH,EAAKW,UAEpB,IAAIC,OAAO,CACdC,QAASC,SAASC,eAAe,MACjCC,MAAOb,EACPc,KAAM,MAERxC,EAAE,eAAeyC,KAAKf,GAClBH,EAAKC,OACP7B,EAAO,iBAAkB,WAEzBA,EAAO,cAAe,WAEjBC,EAAQ2B,EAAK3B,OArBXD,EAAO,OAAQ,cA0B9BE,EAAS,WACP,IAAI6C,EAEJ,OADAA,EAAM1C,EAAE,SAAS0C,OAIR1C,EAAEkB,KAAK,CACZC,KAAM,OACNC,IAAKC,OAAS,2BACdC,SAAU,OACVC,KAAM,CACJ3B,MAAOA,EACP+C,KAAMD,EACNE,SAAU5C,EAAE,aAAa0C,OAE3B3B,MAAOtB,EACPgC,QAAS,SAASF,GAChB,OAAIA,EAAKR,MACHQ,EAAKR,MAAMY,MAAM,kBACZhC,EAAO4B,EAAKR,MAAO,WAEnBpB,EAAO4B,EAAKR,MAAO,UAGrBpB,EAAO,sBAAuB,cApBpCA,EAAO,cAAe,YA2BjCK,EAAEqC,UAAUQ,MAAM,WAKhB,OAJAnD,EAAO,GACPM,EAAE,cAAc8C,GAAG,QAAS,WAC1B,OAAOpD,EAAO,KAETM,EAAE,WAAW8C,GAAG,QAAS,WAC9B,OAAOjD,UAIVkD,KAAKC"}

View File

@ -115,6 +115,7 @@
"badName":"Bad name", "badName":"Bad name",
"cancel":"إلغاء", "cancel":"إلغاء",
"captcha":"كلمة التحقق أو الكابتشا ", "captcha":"كلمة التحقق أو الكابتشا ",
"certificateReset":"Reset my certificate",
"changeKey":"Generate new key", "changeKey":"Generate new key",
"changePwd":"غير كلمة المرور الخاصة بك", "changePwd":"غير كلمة المرور الخاصة بك",
"checkLastLogins":"تحقق من آخر تسجيلات دخول الخاصة بي", "checkLastLogins":"تحقق من آخر تسجيلات دخول الخاصة بي",
@ -163,6 +164,7 @@
"gplSoft":"البرمجيات الحرة التي تغطيها رخصة GPL", "gplSoft":"البرمجيات الحرة التي تغطيها رخصة GPL",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"Id", "id":"Id",
"imSure":"انا متاكد", "imSure":"انا متاكد",
"info":"معلومات", "info":"معلومات",
@ -172,6 +174,7 @@
"lastLogins":"آخر تسجيلات دخول", "lastLogins":"آخر تسجيلات دخول",
"lastName":"اسم العائلة", "lastName":"اسم العائلة",
"linkValidUntil":"تحتوي هذه الرسالة على رابط لإعادة تعيين كلمة المرور، وهذا الرابط صالح حتى", "linkValidUntil":"تحتوي هذه الرسالة على رابط لإعادة تعيين كلمة المرور، وهذا الرابط صالح حتى",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"سجل تسجيل الدخول", "loginHistory":"سجل تسجيل الدخول",
"login":"تسجيل الدخول", "login":"تسجيل الدخول",
"logout":"تسجيل الخروج", "logout":"تسجيل الخروج",
@ -233,6 +236,7 @@
"resendConfirmMail":"هل تريد إعادة إرسال رسالة التأكيد؟", "resendConfirmMail":"هل تريد إعادة إرسال رسالة التأكيد؟",
"resentConfirm":"هل تريد إعادة إرسال رسالة التأكيد؟", "resentConfirm":"هل تريد إعادة إرسال رسالة التأكيد؟",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"إعادة تعيين كلمة المرور الخاصة بي", "resetPwd":"إعادة تعيين كلمة المرور الخاصة بي",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":" إعادة تحميل الحقوق تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى", "rightsReloadNeedsLogout":" إعادة تحميل الحقوق تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى",
@ -293,8 +297,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Ungültiger Name", "badName":"Ungültiger Name",
"cancel":"Abbrechen", "cancel":"Abbrechen",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey":"Neuen Schlüssel erzeugen", "changeKey":"Neuen Schlüssel erzeugen",
"changePwd":"Ändere dein Passwort", "changePwd":"Ändere dein Passwort",
"checkLastLogins":"Überprüfe meine letzten Logins", "checkLastLogins":"Überprüfe meine letzten Logins",
@ -162,6 +163,7 @@
"gplSoft":"Freie Software, die von der GPL-Lizenz abgedeckt wird", "gplSoft":"Freie Software, die von der GPL-Lizenz abgedeckt wird",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"ID", "id":"ID",
"imSure":"Ich bin sicher", "imSure":"Ich bin sicher",
"info":"Information", "info":"Information",
@ -171,6 +173,7 @@
"lastLogins":"Letzte Anmeldungen", "lastLogins":"Letzte Anmeldungen",
"lastName":"Nachname", "lastName":"Nachname",
"linkValidUntil":"Diese Nachricht enthält einen Link zum Zurücksetzen deines Passworts. Dieser Link ist gültig bis", "linkValidUntil":"Diese Nachricht enthält einen Link zum Zurücksetzen deines Passworts. Dieser Link ist gültig bis",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"Anmeldeverlauf", "loginHistory":"Anmeldeverlauf",
"login":"Anmelden", "login":"Anmelden",
"logout":"Abmelden", "logout":"Abmelden",
@ -232,6 +235,7 @@
"resendConfirmMail":"Bestätigungsmail erneuert senden ?", "resendConfirmMail":"Bestätigungsmail erneuert senden ?",
"resentConfirm":"Möchtest du, dass die Bestätigungsmail erneut gesendet wird ?", "resentConfirm":"Möchtest du, dass die Bestätigungsmail erneut gesendet wird ?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"Mein Passwort zurücksetzen", "resetPwd":"Mein Passwort zurücksetzen",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":"Zum Neuladen der Rechte musst du dich ab- und wieder anmelden", "rightsReloadNeedsLogout":"Zum Neuladen der Rechte musst du dich ab- und wieder anmelden",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Bad name", "badName":"Bad name",
"cancel":"Cancel", "cancel":"Cancel",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey": "Generate new key", "changeKey": "Generate new key",
"changePwd":"Change your password", "changePwd":"Change your password",
"checkLastLogins":"Check my last logins", "checkLastLogins":"Check my last logins",
@ -163,6 +164,7 @@
"gplSoft":"free software covered by the GPL license", "gplSoft":"free software covered by the GPL license",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"Id", "id":"Id",
"imSure":"I'm sure", "imSure":"I'm sure",
"info":"Information", "info":"Information",
@ -295,8 +297,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Nombre incorrecto", "badName":"Nombre incorrecto",
"cancel":"Cancelar", "cancel":"Cancelar",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey":"Generar nueva llave", "changeKey":"Generar nueva llave",
"changePwd":"Cambie su contraseña", "changePwd":"Cambie su contraseña",
"checkLastLogins":"Verificar mis últimos accesos", "checkLastLogins":"Verificar mis últimos accesos",
@ -162,6 +163,7 @@
"gplSoft":"Software libre cubierto bajo licencia GPL", "gplSoft":"Software libre cubierto bajo licencia GPL",
"groups_sso":"GRUPOS SSO", "groups_sso":"GRUPOS SSO",
"headers":"ENCABEZADOS", "headers":"ENCABEZADOS",
"hello":"Buesnos dias",
"id":"Id", "id":"Id",
"imSure":"Estoy seguro", "imSure":"Estoy seguro",
"info":"Información", "info":"Información",
@ -171,6 +173,7 @@
"lastLogins":"Últimas conexiones", "lastLogins":"Últimas conexiones",
"lastName":"Apellido(s)", "lastName":"Apellido(s)",
"linkValidUntil":"Este mensaje contiene un enlace para reiniciar su contraseña, este enlace es válido hasta", "linkValidUntil":"Este mensaje contiene un enlace para reiniciar su contraseña, este enlace es válido hasta",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"Historial de conexión", "loginHistory":"Historial de conexión",
"login":"Usuario", "login":"Usuario",
"logout":"Desconexión ", "logout":"Desconexión ",
@ -232,6 +235,7 @@
"resendConfirmMail":"¿Reenviar e-mail de confirmación?", "resendConfirmMail":"¿Reenviar e-mail de confirmación?",
"resentConfirm":"¿Desea que el e-mail de confirmación sea reenviado?", "resentConfirm":"¿Desea que el e-mail de confirmación sea reenviado?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"Reiniciar mi contraseña", "resetPwd":"Reiniciar mi contraseña",
"rest2f":"Código de verificación", "rest2f":"Código de verificación",
"rightsReloadNeedsLogout":"La recarga de derechos necesita desconectarse y conectarse de nuevo", "rightsReloadNeedsLogout":"La recarga de derechos necesita desconectarse y conectarse de nuevo",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Su llave TOTP", "yourTotpKey":"Su llave TOTP",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Bad name", "badName":"Bad name",
"cancel":"Peruuta", "cancel":"Peruuta",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey":"Generate new key", "changeKey":"Generate new key",
"changePwd":"Vaihda salasanasi", "changePwd":"Vaihda salasanasi",
"checkLastLogins":"Tarkista viimeiset kirjautumiseni", "checkLastLogins":"Tarkista viimeiset kirjautumiseni",
@ -162,6 +163,7 @@
"gplSoft":"free software covered by the GPL license", "gplSoft":"free software covered by the GPL license",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"Id", "id":"Id",
"imSure":"Olen varma", "imSure":"Olen varma",
"info":"Information", "info":"Information",
@ -171,6 +173,7 @@
"lastLogins":"Viimeisimmät kirjautumiset", "lastLogins":"Viimeisimmät kirjautumiset",
"lastName":"Sukunimi", "lastName":"Sukunimi",
"linkValidUntil":"Tämä viesti sisältää linkin salasanan nollaamiseen, linkki on voimassa", "linkValidUntil":"Tämä viesti sisältää linkin salasanan nollaamiseen, linkki on voimassa",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"Kirjautumishistoria", "loginHistory":"Kirjautumishistoria",
"login":"Kirjaudu", "login":"Kirjaudu",
"logout":"Kirjaudu ulos", "logout":"Kirjaudu ulos",
@ -232,6 +235,7 @@
"resendConfirmMail":"Uudelleen lähetä vahvistus sähköposti?", "resendConfirmMail":"Uudelleen lähetä vahvistus sähköposti?",
"resentConfirm":"Do you want the confirmation mail to be resent?", "resentConfirm":"Do you want the confirmation mail to be resent?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"Palauta salasanani?", "resetPwd":"Palauta salasanani?",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Mauvais nom", "badName":"Mauvais nom",
"cancel":"Annuler", "cancel":"Annuler",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Réinitialiser mon certificat",
"changeKey": "Générer une nouvelle clef", "changeKey": "Générer une nouvelle clef",
"changePwd":"Changez votre mot de passe", "changePwd":"Changez votre mot de passe",
"checkLastLogins":"Voir mes dernières connexions", "checkLastLogins":"Voir mes dernières connexions",
@ -162,6 +163,7 @@
"gplSoft":"logiciel libre protégé par la licence GPL", "gplSoft":"logiciel libre protégé par la licence GPL",
"groups_sso":"GROUPES SSO", "groups_sso":"GROUPES SSO",
"headers":"ENTETES", "headers":"ENTETES",
"hello":"Bonjour",
"id":"Id", "id":"Id",
"imSure":"Je suis sûr", "imSure":"Je suis sûr",
"info":"Information", "info":"Information",
@ -171,6 +173,7 @@
"lastLogins":"Dernières connexions", "lastLogins":"Dernières connexions",
"lastName":"Nom", "lastName":"Nom",
"linkValidUntil":"Ce message contient un lien pour réinitialiser votre mot de passe, ce lien est valide jusqu'au ", "linkValidUntil":"Ce message contient un lien pour réinitialiser votre mot de passe, ce lien est valide jusqu'au ",
"linkValidUntilCertif":"Ce message contient un lien pour réinitialiser votre certificat, ce lien est valide jusqu'à ",
"loginHistory":"Historique des connexions", "loginHistory":"Historique des connexions",
"login":"Identifiant", "login":"Identifiant",
"logout":"Déconnexion", "logout":"Déconnexion",
@ -232,6 +235,7 @@
"resendConfirmMail":"Renvoyer le mail de confirmation ?", "resendConfirmMail":"Renvoyer le mail de confirmation ?",
"resentConfirm":"Voulez-vous que le message de confirmation soit renvoyé ?", "resentConfirm":"Voulez-vous que le message de confirmation soit renvoyé ?",
"resetFavApps":"Réinitialiser mes applications favorites", "resetFavApps":"Réinitialiser mes applications favorites",
"resetCertificateOK":"Votre certificat a bien été réinitialisé!",
"resetPwd":"Réinitialiser mon mot de passe", "resetPwd":"Réinitialiser mon mot de passe",
"rest2f":"Code de vérification", "rest2f":"Code de vérification",
"rightsReloadNeedsLogout": "Le rechargement des droits nécessite une déconnexion", "rightsReloadNeedsLogout": "Le rechargement des droits nécessite une déconnexion",
@ -292,8 +296,5 @@
"yourPhone":"Connaître votre numéro de téléphone", "yourPhone":"Connaître votre numéro de téléphone",
"yourProfile":"Connaître vos informations personnelles", "yourProfile":"Connaître vos informations personnelles",
"yourTotpKey":"Votre clef TOTP", "yourTotpKey":"Votre clef TOTP",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Nome errato", "badName":"Nome errato",
"cancel":"Cancella", "cancel":"Cancella",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey":"Genera nuova chiave", "changeKey":"Genera nuova chiave",
"changePwd":"Cambia la tua password", "changePwd":"Cambia la tua password",
"checkLastLogins":"Controllare i miei ultimi accessi", "checkLastLogins":"Controllare i miei ultimi accessi",
@ -162,6 +163,7 @@
"gplSoft":"Software libero coperto dalla licenza GPL", "gplSoft":"Software libero coperto dalla licenza GPL",
"groups_sso":"GRUPPI SSO", "groups_sso":"GRUPPI SSO",
"headers":"INTESTAZIONI", "headers":"INTESTAZIONI",
"hello":"Buongiorno",
"id":"Id", "id":"Id",
"imSure":"Sono sicuro", "imSure":"Sono sicuro",
"info":"Informazioni", "info":"Informazioni",
@ -171,6 +173,7 @@
"lastLogins":"Ultimi accessi", "lastLogins":"Ultimi accessi",
"lastName":"Cognome", "lastName":"Cognome",
"linkValidUntil":"Questo messaggio contiene un link per reimpostare la password, questo link è valido fino al", "linkValidUntil":"Questo messaggio contiene un link per reimpostare la password, questo link è valido fino al",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"Cronologia login", "loginHistory":"Cronologia login",
"login":"Login", "login":"Login",
"logout":"Logout", "logout":"Logout",
@ -232,6 +235,7 @@
"resendConfirmMail":"Inviare nuovamente mail di conferma?", "resendConfirmMail":"Inviare nuovamente mail di conferma?",
"resentConfirm":"Vuoi inviare di nuovo la mail di conferma?", "resentConfirm":"Vuoi inviare di nuovo la mail di conferma?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"Reimpostare la password", "resetPwd":"Reimpostare la password",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":"Le ricariche dei diritti necessitano di disconnettersi e di riconnettersi", "rightsReloadNeedsLogout":"Le ricariche dei diritti necessitano di disconnettersi e di riconnettersi",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"La tua chiave TOTP", "yourTotpKey":"La tua chiave TOTP",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Bad name", "badName":"Bad name",
"cancel":"Cancel", "cancel":"Cancel",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey":"Generate new key", "changeKey":"Generate new key",
"changePwd":"Change your password", "changePwd":"Change your password",
"checkLastLogins":"Check my last logins", "checkLastLogins":"Check my last logins",
@ -162,6 +163,7 @@
"gplSoft":"free software covered by the GPL license", "gplSoft":"free software covered by the GPL license",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"Id", "id":"Id",
"imSure":"I'm sure", "imSure":"I'm sure",
"info":"Information", "info":"Information",
@ -171,6 +173,7 @@
"lastLogins":"Last logins", "lastLogins":"Last logins",
"lastName":"Last name", "lastName":"Last name",
"linkValidUntil":"This message contains a link to reset your password, this link is valid until ", "linkValidUntil":"This message contains a link to reset your password, this link is valid until ",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"Login history", "loginHistory":"Login history",
"login":"Login", "login":"Login",
"logout":"Logout", "logout":"Logout",
@ -232,6 +235,7 @@
"resendConfirmMail":"Resend confirmation mail?", "resendConfirmMail":"Resend confirmation mail?",
"resentConfirm":"Do you want the confirmation mail to be resent?", "resentConfirm":"Do you want the confirmation mail to be resent?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"Reset my password", "resetPwd":"Reset my password",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Bad name", "badName":"Bad name",
"cancel":"Cancel", "cancel":"Cancel",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey":"Generate new key", "changeKey":"Generate new key",
"changePwd":"Change your password", "changePwd":"Change your password",
"checkLastLogins":"Check my last logins", "checkLastLogins":"Check my last logins",
@ -162,6 +163,7 @@
"gplSoft":"free software covered by the GPL license", "gplSoft":"free software covered by the GPL license",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"Id", "id":"Id",
"imSure":"I'm sure", "imSure":"I'm sure",
"info":"Information", "info":"Information",
@ -171,6 +173,7 @@
"lastLogins":"Last logins", "lastLogins":"Last logins",
"lastName":"Last name", "lastName":"Last name",
"linkValidUntil":"This message contains a link to reset your password, this link is valid until ", "linkValidUntil":"This message contains a link to reset your password, this link is valid until ",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"Login history", "loginHistory":"Login history",
"login":"Login", "login":"Login",
"logout":"Logout", "logout":"Logout",
@ -232,6 +235,7 @@
"resendConfirmMail":"Resend confirmation mail?", "resendConfirmMail":"Resend confirmation mail?",
"resentConfirm":"Do you want the confirmation mail to be resent?", "resentConfirm":"Do you want the confirmation mail to be resent?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"Reset my password", "resetPwd":"Reset my password",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Bad name", "badName":"Bad name",
"cancel":"Cancel", "cancel":"Cancel",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey":"Generate new key", "changeKey":"Generate new key",
"changePwd":"Change your password", "changePwd":"Change your password",
"checkLastLogins":"Check my last logins", "checkLastLogins":"Check my last logins",
@ -162,6 +163,7 @@
"gplSoft":"free software covered by the GPL license", "gplSoft":"free software covered by the GPL license",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"Id", "id":"Id",
"imSure":"I'm sure", "imSure":"I'm sure",
"info":"Information", "info":"Information",
@ -171,6 +173,7 @@
"lastLogins":"Last logins", "lastLogins":"Last logins",
"lastName":"Last name", "lastName":"Last name",
"linkValidUntil":"This message contains a link to reset your password, this link is valid until ", "linkValidUntil":"This message contains a link to reset your password, this link is valid until ",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"Login history", "loginHistory":"Login history",
"login":"Login", "login":"Login",
"logout":"Logout", "logout":"Logout",
@ -232,6 +235,7 @@
"resendConfirmMail":"Resend confirmation mail?", "resendConfirmMail":"Resend confirmation mail?",
"resentConfirm":"Do you want the confirmation mail to be resent?", "resentConfirm":"Do you want the confirmation mail to be resent?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"Reset my password", "resetPwd":"Reset my password",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Hatalı isim", "badName":"Hatalı isim",
"cancel":"İptal Et", "cancel":"İptal Et",
"captcha":"Captcha", "captcha":"Captcha",
"certificateReset":"Reset my certificate",
"changeKey":"Yeni anahtar üret", "changeKey":"Yeni anahtar üret",
"changePwd":"Parolanı değiştir", "changePwd":"Parolanı değiştir",
"checkLastLogins":"Son girişlerimi kontrol et", "checkLastLogins":"Son girişlerimi kontrol et",
@ -163,6 +164,7 @@
"gplSoft":"GPL lisansı kapsamında özgür yazılım", "gplSoft":"GPL lisansı kapsamında özgür yazılım",
"groups_sso":"TOA GRUPLARI", "groups_sso":"TOA GRUPLARI",
"headers":"BAŞLIKLAR", "headers":"BAŞLIKLAR",
"hello":"Hello",
"id":"ID", "id":"ID",
"imSure":"Eminim", "imSure":"Eminim",
"info":"Bilgi", "info":"Bilgi",
@ -295,8 +297,5 @@
"yourPhone":"Telefon numaranı bil", "yourPhone":"Telefon numaranı bil",
"yourProfile":"Profilini bil", "yourProfile":"Profilini bil",
"yourTotpKey":"TOTP anahtarınız", "yourTotpKey":"TOTP anahtarınız",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Bad name", "badName":"Bad name",
"cancel":"Hủy", "cancel":"Hủy",
"captcha":"Mã kiểm tra", "captcha":"Mã kiểm tra",
"certificateReset":"Reset my certificate",
"changeKey":"Generate new key", "changeKey":"Generate new key",
"changePwd":"Thay đổi mật khẩu của bạn", "changePwd":"Thay đổi mật khẩu của bạn",
"checkLastLogins":"Kiểm tra lần đăng nhập cuối cùng của bạn", "checkLastLogins":"Kiểm tra lần đăng nhập cuối cùng của bạn",
@ -162,6 +163,7 @@
"gplSoft":"phần mềm tự do được cấp phép bởi GPL", "gplSoft":"phần mềm tự do được cấp phép bởi GPL",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"Id", "id":"Id",
"imSure":"Tôi chắc chắn", "imSure":"Tôi chắc chắn",
"info":"Thông tin", "info":"Thông tin",
@ -171,6 +173,7 @@
"lastLogins":"Đăng nhập lần cuối", "lastLogins":"Đăng nhập lần cuối",
"lastName":"Họ", "lastName":"Họ",
"linkValidUntil":"Thông báo này có chứa liên kết để đặt lại mật khẩu của bạn, liên kết này hợp lệ cho đến khi", "linkValidUntil":"Thông báo này có chứa liên kết để đặt lại mật khẩu của bạn, liên kết này hợp lệ cho đến khi",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"Lịch sử đăng nhập", "loginHistory":"Lịch sử đăng nhập",
"login":"Đăng nhập", "login":"Đăng nhập",
"logout":"Đăng xuất", "logout":"Đăng xuất",
@ -232,6 +235,7 @@
"resendConfirmMail":"Gửi lại thư xác nhận?", "resendConfirmMail":"Gửi lại thư xác nhận?",
"resentConfirm":"Bạn có muốn gửi lại thư xác nhận không?", "resentConfirm":"Bạn có muốn gửi lại thư xác nhận không?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"Đặt lại mật khẩu của tôi", "resetPwd":"Đặt lại mật khẩu của tôi",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":"Tải lại quyền cần đăng xuất và đăng nhập lại", "rightsReloadNeedsLogout":"Tải lại quyền cần đăng xuất và đăng nhập lại",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -114,6 +114,7 @@
"badName":"Bad name", "badName":"Bad name",
"cancel":"取消", "cancel":"取消",
"captcha":"验证码", "captcha":"验证码",
"certificateReset":"Reset my certificate",
"changeKey":"Generate new key", "changeKey":"Generate new key",
"changePwd":"修改您的密码", "changePwd":"修改您的密码",
"checkLastLogins":"Check my last logins", "checkLastLogins":"Check my last logins",
@ -162,6 +163,7 @@
"gplSoft":"受GPL协议保护的自由软件", "gplSoft":"受GPL协议保护的自由软件",
"groups_sso":"SSO GROUPS", "groups_sso":"SSO GROUPS",
"headers":"HEADERS", "headers":"HEADERS",
"hello":"Hello",
"id":"Id", "id":"Id",
"imSure":"我确认", "imSure":"我确认",
"info":"信息", "info":"信息",
@ -171,6 +173,7 @@
"lastLogins":"上次登陆", "lastLogins":"上次登陆",
"lastName":"姓氏", "lastName":"姓氏",
"linkValidUntil":"此消息包含重置您密码的链接,该链接有效期截至", "linkValidUntil":"此消息包含重置您密码的链接,该链接有效期截至",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"loginHistory":"登陆记录", "loginHistory":"登陆记录",
"login":"登陆", "login":"登陆",
"logout":"注销登录", "logout":"注销登录",
@ -232,6 +235,7 @@
"resendConfirmMail":"重新发送确认邮件?", "resendConfirmMail":"重新发送确认邮件?",
"resentConfirm":"您想确认邮件被重新发送吗?", "resentConfirm":"您想确认邮件被重新发送吗?",
"resetFavApps":"Reset my favorite Apps.", "resetFavApps":"Reset my favorite Apps.",
"resetCertificateOK":"Your certificate has been successfully reset!",
"resetPwd":"重置我的密码", "resetPwd":"重置我的密码",
"rest2f":"Verification code", "rest2f":"Verification code",
"rightsReloadNeedsLogout":"重新加载权限需要登出并且再次登录", "rightsReloadNeedsLogout":"重新加载权限需要登出并且再次登录",
@ -292,8 +296,5 @@
"yourPhone":"Know your phone number", "yourPhone":"Know your phone number",
"yourProfile":"Know your profile", "yourProfile":"Know your profile",
"yourTotpKey":"Your TOTP key", "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey"
"resetCertificateOK":"Your certificate was reset sucessfully",
"linkValidUntilCertif":"This message contains a link to reset your certificate, this link is valid until ",
"certificateReset":"Reset my certificate"
} }

View File

@ -3,7 +3,7 @@
<p> <p>
<span trspan="hello">Hello</span> $cn,<br /> <span trspan="hello">Hello</span> $cn,<br />
<br /> <br />
<span trspan="certificatReset">Your certificate was reset sucessfully.</span> <span trspan="resetCertificateOK">Your certificate has been successfully reset!</span>
</p> </p>
<TMPL_INCLUDE NAME="mail_footer.tpl"> <TMPL_INCLUDE NAME="mail_footer.tpl">

View File

@ -47,7 +47,7 @@ SKIP: {
certificateResetByMailStep1Body => certificateResetByMailStep1Body =>
'Click here <a href="$url"> to confirm your mail. It will expire $expMailDate', 'Click here <a href="$url"> to confirm your mail. It will expire $expMailDate',
certificateResetByMailStep2Body => certificateResetByMailStep2Body =>
'Certificate Reset sucessfully!', 'Certificate successfully reset!',
certificateValidityDelay => 30 certificateValidityDelay => 30
} }
@ -210,7 +210,7 @@ lkRrWfQftwmLyNIu3HfSgXlgAZS30ymfbzBU
} }
); );
ok( mail() =~ /Certificate Reset sucessfully/, 'Certificate was changed' ); ok( mail() =~ /Certificate successfully reset/, 'Certificate has been reset' );
} }
count($maintests); count($maintests);