Add labels and logos to all 2F providers (#1873)

This commit is contained in:
Maxime Besson 2019-08-01 17:27:14 +02:00 committed by Christophe Maudoux
parent 216d683f22
commit c1afdbefac
41 changed files with 392 additions and 95 deletions

View File

@ -706,10 +706,11 @@ sub sfExtra {
my $res = []; my $res = [];
foreach my $mod ( keys %$val ) { foreach my $mod ( keys %$val ) {
my $tmp; my $tmp;
$tmp->{title} = $mod; $tmp->{title} = $mod;
$tmp->{id} = "sfExtra/$mod"; $tmp->{id} = "sfExtra/$mod";
$tmp->{type} = 'sfExtra'; $tmp->{type} = 'sfExtra';
$tmp->{data}->{$_} = $val->{$mod}->{$_} foreach (qw(type rule)); $tmp->{data}->{$_} = $val->{$mod}->{$_}
foreach (qw(type rule logo label));
my $over = $val->{$mod}->{over} // {}; my $over = $val->{$mod}->{over} // {};
$tmp->{data}->{over} = [ map { [ $_, $over->{$_} ] } keys %$over ]; $tmp->{data}->{over} = [ map { [ $_, $over->{$_} ] } keys %$over ];
push @$res, $tmp; push @$res, $tmp;

View File

@ -1142,6 +1142,9 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'default' => '\\d{6}', 'default' => '\\d{6}',
'type' => 'pcre' 'type' => 'pcre'
}, },
'ext2fLabel' => {
'type' => 'text'
},
'ext2fLogo' => { 'ext2fLogo' => {
'type' => 'text' 'type' => 'text'
}, },
@ -1647,6 +1650,9 @@ qr/^(?:\*\.)?(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][
'default' => '\\d{6}', 'default' => '\\d{6}',
'type' => 'pcre' 'type' => 'pcre'
}, },
'mail2fLabel' => {
'type' => 'text'
},
'mail2fLogo' => { 'mail2fLogo' => {
'type' => 'text' 'type' => 'text'
}, },
@ -2530,6 +2536,9 @@ qr/(?:(?:https?):\/\/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.]
'rest2fInitUrl' => { 'rest2fInitUrl' => {
'type' => 'url' 'type' => 'url'
}, },
'rest2fLabel' => {
'type' => 'text'
},
'rest2fLogo' => { 'rest2fLogo' => {
'type' => 'text' 'type' => 'text'
}, },
@ -3453,6 +3462,12 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
'totp2fIssuer' => { 'totp2fIssuer' => {
'type' => 'text' 'type' => 'text'
}, },
'totp2fLabel' => {
'type' => 'text'
},
'totp2fLogo' => {
'type' => 'text'
},
'totp2fRange' => { 'totp2fRange' => {
'default' => 1, 'default' => 1,
'type' => 'int' 'type' => 'int'
@ -3499,6 +3514,12 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
'u2fAuthnLevel' => { 'u2fAuthnLevel' => {
'type' => 'int' 'type' => 'int'
}, },
'u2fLabel' => {
'type' => 'text'
},
'u2fLogo' => {
'type' => 'text'
},
'u2fSelfRegistration' => { 'u2fSelfRegistration' => {
'default' => 0, 'default' => 0,
'type' => 'boolOrExpr' 'type' => 'boolOrExpr'
@ -3579,6 +3600,12 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
'utotp2fAuthnLevel' => { 'utotp2fAuthnLevel' => {
'type' => 'int' 'type' => 'int'
}, },
'utotp2fLabel' => {
'type' => 'text'
},
'utotp2fLogo' => {
'type' => 'text'
},
'vhostAliases' => { 'vhostAliases' => {
'type' => 'text' 'type' => 'text'
}, },
@ -3693,6 +3720,12 @@ qr/^(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-
'yubikey2fClientID' => { 'yubikey2fClientID' => {
'type' => 'text' 'type' => 'text'
}, },
'yubikey2fLabel' => {
'type' => 'text'
},
'yubikey2fLogo' => {
'type' => 'text'
},
'yubikey2fNonce' => { 'yubikey2fNonce' => {
'type' => 'text' 'type' => 'text'
}, },

View File

@ -1420,6 +1420,14 @@ sub attributes {
documentation => documentation =>
'Authentication level for users authentified by password+U2F' 'Authentication level for users authentified by password+U2F'
}, },
u2fLabel => {
type => 'text',
documentation => 'Portal label for U2F'
},
u2fLogo => {
type => 'text',
documentation => 'Custom logo for U2F',
},
u2fUserCanRemoveKey => { u2fUserCanRemoveKey => {
type => 'bool', type => 'bool',
default => 1, default => 1,
@ -1446,6 +1454,14 @@ sub attributes {
documentation => documentation =>
'Authentication level for users authentified by password+TOTP' 'Authentication level for users authentified by password+TOTP'
}, },
totp2fLabel => {
type => 'text',
documentation => 'Portal label for TOTP 2F'
},
totp2fLogo => {
type => 'text',
documentation => 'Custom logo for TOTP 2F',
},
totp2fIssuer => { totp2fIssuer => {
type => 'text', type => 'text',
documentation => 'TOTP Issuer', documentation => 'TOTP Issuer',
@ -1497,6 +1513,14 @@ sub attributes {
documentation => documentation =>
'Authentication level for users authentified by password+(U2F or TOTP)' 'Authentication level for users authentified by password+(U2F or TOTP)'
}, },
utotp2fLabel => {
type => 'text',
documentation => 'Portal label for U2F+TOTP'
},
utotp2fLogo => {
type => 'text',
documentation => 'Custom logo for U2F+TOTP',
},
# Mail second factor # Mail second factor
mail2fActivation => { mail2fActivation => {
@ -1526,6 +1550,10 @@ sub attributes {
documentation => documentation =>
'Authentication level for users authenticated by Mail second factor' 'Authentication level for users authenticated by Mail second factor'
}, },
mail2fLabel => {
type => 'text',
documentation => 'Portal label for Mail second factor'
},
mail2fLogo => { mail2fLogo => {
type => 'text', type => 'text',
documentation => 'Custom logo for Mail 2F', documentation => 'Custom logo for Mail 2F',
@ -1555,6 +1583,10 @@ sub attributes {
documentation => documentation =>
'Authentication level for users authentified by External second factor' 'Authentication level for users authentified by External second factor'
}, },
ext2fLabel => {
type => 'text',
documentation => 'Portal label for External second factor'
},
ext2fLogo => { ext2fLogo => {
type => 'text', type => 'text',
documentation => 'Custom logo for External 2F', documentation => 'Custom logo for External 2F',
@ -1595,6 +1627,10 @@ sub attributes {
documentation => documentation =>
'Authentication level for users authentified by REST second factor' 'Authentication level for users authentified by REST second factor'
}, },
rest2fLabel => {
type => 'text',
documentation => 'Portal label for REST second factor'
},
rest2fLogo => { rest2fLogo => {
type => 'text', type => 'text',
documentation => 'Custom logo for REST 2F', documentation => 'Custom logo for REST 2F',
@ -1616,6 +1652,14 @@ sub attributes {
documentation => documentation =>
'Authentication level for users authentified by Yubikey second factor' 'Authentication level for users authentified by Yubikey second factor'
}, },
yubikey2fLabel => {
type => 'text',
documentation => 'Portal label for Yubikey second factor'
},
yubikey2fLogo => {
type => 'text',
documentation => 'Custom logo for Yubikey 2F',
},
yubikey2fClientID => { yubikey2fClientID => {
type => 'text', type => 'text',
documentation => 'Yubico client ID', documentation => 'Yubico client ID',

View File

@ -700,17 +700,18 @@ sub tree {
title => 'utotp2f', title => 'utotp2f',
help => 'utotp2f.html', help => 'utotp2f.html',
form => 'simpleInputContainer', form => 'simpleInputContainer',
nodes => nodes => [
[ 'utotp2fActivation', 'utotp2fAuthnLevel' ] 'utotp2fActivation', 'utotp2fAuthnLevel',
'utotp2fLabel', 'utotp2fLogo'
]
}, },
{ {
title => 'totp', title => 'totp2f',
help => 'totp2f.html', help => 'totp2f.html',
form => 'simpleInputContainer', form => 'simpleInputContainer',
nodes => [ nodes => [
'totp2fActivation', 'totp2fActivation',
'totp2fSelfRegistration', 'totp2fSelfRegistration',
'totp2fAuthnLevel',
'totp2fIssuer', 'totp2fIssuer',
'totp2fInterval', 'totp2fInterval',
'totp2fRange', 'totp2fRange',
@ -719,6 +720,9 @@ sub tree {
'totp2fUserCanChangeKey', 'totp2fUserCanChangeKey',
'totp2fUserCanRemoveKey', 'totp2fUserCanRemoveKey',
'totp2fTTL', 'totp2fTTL',
'totp2fAuthnLevel',
'totp2fLabel',
'totp2fLogo',
] ]
}, },
{ {
@ -726,9 +730,10 @@ sub tree {
help => 'u2f.html', help => 'u2f.html',
form => 'simpleInputContainer', form => 'simpleInputContainer',
nodes => [ nodes => [
'u2fActivation', 'u2fSelfRegistration', 'u2fActivation', 'u2fSelfRegistration',
'u2fAuthnLevel', 'u2fUserCanRemoveKey', 'u2fUserCanRemoveKey', 'u2fTTL',
'u2fTTL', 'u2fAuthnLevel', 'u2fLabel',
'u2fLogo',
] ]
}, },
{ {
@ -739,17 +744,18 @@ sub tree {
'mail2fActivation', 'mail2fCodeRegex', 'mail2fActivation', 'mail2fCodeRegex',
'mail2fTimeout', 'mail2fSubject', 'mail2fTimeout', 'mail2fSubject',
'mail2fBody', 'mail2fAuthnLevel', 'mail2fBody', 'mail2fAuthnLevel',
'mail2fLogo', 'mail2fLabel', 'mail2fLogo',
] ]
}, },
{ {
title => 'external2f', title => 'ext2f',
help => 'external2f.html', help => 'external2f.html',
form => 'simpleInputContainer', form => 'simpleInputContainer',
nodes => [ nodes => [
'ext2fActivation', 'ext2fCodeActivation', 'ext2fActivation', 'ext2fCodeActivation',
'ext2FSendCommand', 'ext2FValidateCommand', 'ext2FSendCommand', 'ext2FValidateCommand',
'ext2fAuthnLevel', 'ext2fLogo', 'ext2fAuthnLevel', 'ext2fLabel',
'ext2fLogo',
] ]
}, },
{ {
@ -759,7 +765,7 @@ sub tree {
'rest2fActivation', 'rest2fInitUrl', 'rest2fActivation', 'rest2fInitUrl',
'rest2fInitArgs', 'rest2fVerifyUrl', 'rest2fInitArgs', 'rest2fVerifyUrl',
'rest2fVerifyArgs', 'rest2fAuthnLevel', 'rest2fVerifyArgs', 'rest2fAuthnLevel',
'rest2fLogo', 'rest2fLabel', 'rest2fLogo',
] ]
}, },
{ {
@ -769,7 +775,6 @@ sub tree {
nodes => [ nodes => [
'yubikey2fActivation', 'yubikey2fActivation',
'yubikey2fSelfRegistration', 'yubikey2fSelfRegistration',
'yubikey2fAuthnLevel',
'yubikey2fClientID', 'yubikey2fClientID',
'yubikey2fSecretKey', 'yubikey2fSecretKey',
'yubikey2fNonce', 'yubikey2fNonce',
@ -777,6 +782,9 @@ sub tree {
'yubikey2fPublicIDSize', 'yubikey2fPublicIDSize',
'yubikey2fUserCanRemoveKey', 'yubikey2fUserCanRemoveKey',
'yubikey2fTTL', 'yubikey2fTTL',
'yubikey2fAuthnLevel',
'yubikey2fLabel',
'yubikey2fLogo',
], ],
}, },
'sfExtra', 'sfExtra',

View File

@ -799,7 +799,8 @@ sub _scanNodes {
$self->newConf->{$name} = {}; $self->newConf->{$name} = {};
foreach my $node ( @{ $leaf->{nodes} } ) { foreach my $node ( @{ $leaf->{nodes} } ) {
my $tmp; my $tmp;
$tmp->{$_} = $node->{data}->{$_} foreach (qw(type rule)); $tmp->{$_} = $node->{data}->{$_}
foreach (qw(type rule logo label));
$tmp->{over} = {}; $tmp->{over} = {};
foreach ( @{ $node->{data}->{over} } ) { foreach ( @{ $node->{data}->{over} } ) {
$tmp->{over}->{ $_->[0] } = $_->[1]; $tmp->{over}->{ $_->[0] } = $_->[1];

View File

@ -337,6 +337,8 @@ llapp.controller 'TreeCtrl', [
data: data:
type: '' type: ''
rule: '' rule: ''
logo: ''
label: ''
over: [] over: []

View File

@ -5,9 +5,11 @@
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
<tr> <tr>
<th width="25%" trspan="name"></th> <th width="12%" trspan="name"></th>
<th width="25%" trspan="type"></th> <th width="11%" trspan="type"></th>
<th width="50%" trspan="rule"></th> <th width="33%" trspan="label"></th>
<th width="11%" trspan="logo"></th>
<th width="33%" trspan="rule"></th>
<th /> <th />
</tr> </tr>
</thead> </thead>
@ -21,6 +23,12 @@
<option ng-repeat="item in _findContainer().select" ng-selected="item.k===currentNode.data.type" value="{{item.k}}">{{item.v}}</option> <option ng-repeat="item in _findContainer().select" ng-selected="item.k===currentNode.data.type" value="{{item.k}}">{{item.v}}</option>
</select> </select>
</td> </td>
<td>
<input class="form-control" ng-model="currentNode.data.label" />
</td>
<td>
<input class="form-control" ng-model="currentNode.data.logo" />
</td>
<td> <td>
<input class="form-control" ng-model="currentNode.data.rule" /> <input class="form-control" ng-model="currentNode.data.rule" />
</td> </td>

View File

@ -5,9 +5,11 @@
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
<tr> <tr>
<th width="25%" trspan="name"></th> <th width="12%" trspan="name"></th>
<th width="25%" trspan="type"></th> <th width="11%" trspan="type"></th>
<th width="50%" trspan="rule"></th> <th width="33%" trspan="label"></th>
<th width="11%" trspan="logo"></th>
<th width="33%" trspan="rule"></th>
<th /> <th />
</tr> </tr>
</thead> </thead>
@ -21,6 +23,12 @@
<option ng-repeat="item in currentNode.select" ng-selected="item.k==s.data.type" value="{{item.k}}">{{item.v}}</option> <option ng-repeat="item in currentNode.select" ng-selected="item.k==s.data.type" value="{{item.k}}">{{item.v}}</option>
</select> </select>
</td> </td>
<td>
<input class="form-control" ng-model="s.data.label" />
</td>
<td>
<input class="form-control" ng-model="s.data.logo" />
</td>
<td> <td>
<input class="form-control" ng-model="s.data.rule" /> <input class="form-control" ng-model="s.data.rule" />
</td> </td>

View File

@ -392,6 +392,8 @@ This file contains:
data: { data: {
type: '', type: '',
rule: '', rule: '',
logo: '',
label: '',
over: [] over: []
} }
}); });

File diff suppressed because one or more lines are too long

View File

@ -264,10 +264,11 @@
"exportedAttr":"SOAP/REST السمات المصدرة", "exportedAttr":"SOAP/REST السمات المصدرة",
"exportedHeaders":"الهيدر المصدرة", "exportedHeaders":"الهيدر المصدرة",
"exportedVars":"المتغيرات المصدرة", "exportedVars":"المتغيرات المصدرة",
"external2f":" العامل الثاني الخارجي", "ext2f":" العامل الثاني الخارجي",
"ext2fActivation":"تفعيل", "ext2fActivation":"تفعيل",
"ext2fCodeActivation":"Code regex", "ext2fCodeActivation":"Code regex",
"ext2fAuthnLevel":"مستوى إثبات الهوية", "ext2fAuthnLevel":"مستوى إثبات الهوية",
"ext2fLabel":"Label",
"ext2fLogo":"شعار", "ext2fLogo":"شعار",
"ext2FSendCommand":"إرسال الأمر", "ext2FSendCommand":"إرسال الأمر",
"ext2FValidateCommand":"التحقق من صحة الأمر", "ext2FValidateCommand":"التحقق من صحة الأمر",
@ -355,6 +356,7 @@
"krbKeytab":"كيتاب", "krbKeytab":"كيتاب",
"krbRemoveDomain":"Remove domain from Kerberos username", "krbRemoveDomain":"Remove domain from Kerberos username",
"kerberosParams":"معايير كيربيروس", "kerberosParams":"معايير كيربيروس",
"label":"Label",
"languages":"اللغات", "languages":"اللغات",
"latest":"الأحدث", "latest":"الأحدث",
"ldap":"إل‌داب", "ldap":"إل‌داب",
@ -418,6 +420,7 @@
"mail2fSubject":"نجاح عنوان البريد", "mail2fSubject":"نجاح عنوان البريد",
"mail2fBody":"محتوى البريد الناجح", "mail2fBody":"محتوى البريد الناجح",
"mail2fAuthnLevel":"مستوى إثبات الهوية", "mail2fAuthnLevel":"مستوى إثبات الهوية",
"mail2fLabel":"Label",
"mail2fLogo":"شعار", "mail2fLogo":"شعار",
"mailBody":"محتوى البريد الناجح", "mailBody":"محتوى البريد الناجح",
"mailCharset":"charset", "mailCharset":"charset",
@ -706,6 +709,7 @@
"rest2f":"REST second factor", "rest2f":"REST second factor",
"rest2fActivation":"تفعيل", "rest2fActivation":"تفعيل",
"rest2fAuthnLevel":"مستوى إثبات الهوية", "rest2fAuthnLevel":"مستوى إثبات الهوية",
"rest2fLabel":"Label",
"rest2fInitArgs":"Init Arguments", "rest2fInitArgs":"Init Arguments",
"rest2fInitUrl":"Init URL", "rest2fInitUrl":"Init URL",
"rest2fLogo":"شعار", "rest2fLogo":"شعار",
@ -797,9 +801,11 @@
"timeoutActivity":"مهلة نشاط الجلسات", "timeoutActivity":"مهلة نشاط الجلسات",
"timeoutActivityInterval":"فترة تحديث الجلسات", "timeoutActivityInterval":"فترة تحديث الجلسات",
"tokenUseGlobalStorage":"استخدام سعة التخزين العامة", "tokenUseGlobalStorage":"استخدام سعة التخزين العامة",
"totp":"TOTP", "totp2f":"TOTP",
"totp2fActivation":"تفعيل", "totp2fActivation":"تفعيل",
"totp2fAuthnLevel":"TOTP authentication level", "totp2fAuthnLevel":"TOTP authentication level",
"totp2fLabel":"Label",
"totp2fLogo":"ﺶﻋﺍﺭ",
"totp2fDigits":"Number of digits", "totp2fDigits":"Number of digits",
"totp2fDisplayExistingSecret":"Display existing secret", "totp2fDisplayExistingSecret":"Display existing secret",
"totp2fInterval":"Interval", "totp2fInterval":"Interval",
@ -821,6 +827,8 @@
"u2f":"U2F", "u2f":"U2F",
"u2fActivation":"تفعيل", "u2fActivation":"تفعيل",
"u2fAuthnLevel":"U2F مستوى إثبات الهوية", "u2fAuthnLevel":"U2F مستوى إثبات الهوية",
"u2fLabel":"Label",
"u2fLogo":"ﺶﻋﺍﺭ",
"u2fSelfRegistration":"التسجيل الذاتي", "u2fSelfRegistration":"التسجيل الذاتي",
"u2fTTL":"Lifetime", "u2fTTL":"Lifetime",
"u2fUserCanRemoveKey":"Allow user to remove U2F key", "u2fUserCanRemoveKey":"Allow user to remove U2F key",
@ -847,6 +855,8 @@
"utotp2f":"TOTP-or-U2F", "utotp2f":"TOTP-or-U2F",
"utotp2fActivation":"تفعيل", "utotp2fActivation":"تفعيل",
"utotp2fAuthnLevel":"مستوى إثبات الهوية", "utotp2fAuthnLevel":"مستوى إثبات الهوية",
"utotp2fLabel":"Label",
"utotp2fLogo":"ﺶﻋﺍﺭ",
"value":"القيمة", "value":"القيمة",
"values":"القيم", "values":"القيم",
"variables":"المتغيرات", "variables":"المتغيرات",
@ -880,6 +890,8 @@
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey",
"yubikey2fActivation":"تفعيل", "yubikey2fActivation":"تفعيل",
"yubikey2fAuthnLevel":"مستوى إثبات الهوية", "yubikey2fAuthnLevel":"مستوى إثبات الهوية",
"yubikey2fLabel":"Label",
"yubikey2fLogo":"ﺶﻋﺍﺭ",
"yubikey2fClientID":"API العميل ID", "yubikey2fClientID":"API العميل ID",
"yubikey2fNonce":"Nonce", "yubikey2fNonce":"Nonce",
"yubikey2fPublicIDSize":"حجم الجزء العام لي OTP آي دي", "yubikey2fPublicIDSize":"حجم الجزء العام لي OTP آي دي",

View File

@ -264,10 +264,11 @@
"exportedAttr":"SOAP/REST exported attributes", "exportedAttr":"SOAP/REST exported attributes",
"exportedHeaders":"Exported headers", "exportedHeaders":"Exported headers",
"exportedVars":"Exported Variables", "exportedVars":"Exported Variables",
"external2f":"External second factor", "ext2f":"External second factor",
"ext2fActivation":"Activation", "ext2fActivation":"Activation",
"ext2fCodeActivation":"Code regex", "ext2fCodeActivation":"Code regex",
"ext2fAuthnLevel":"Authentication level", "ext2fAuthnLevel":"Authentication level",
"ext2fLabel":"Label",
"ext2fLogo":"Logo", "ext2fLogo":"Logo",
"ext2FSendCommand":"Send command", "ext2FSendCommand":"Send command",
"ext2FValidateCommand":"Validation command", "ext2FValidateCommand":"Validation command",
@ -355,6 +356,7 @@
"krbKeytab":"keytab file", "krbKeytab":"keytab file",
"krbRemoveDomain":"Remove domain from Kerberos username", "krbRemoveDomain":"Remove domain from Kerberos username",
"kerberosParams":"Kerberos parameters", "kerberosParams":"Kerberos parameters",
"label":"Label",
"languages":"Languages", "languages":"Languages",
"latest":"Latest", "latest":"Latest",
"ldap":"LDAP", "ldap":"LDAP",
@ -418,6 +420,7 @@
"mail2fSubject":"Mail subject", "mail2fSubject":"Mail subject",
"mail2fBody":"Mail body", "mail2fBody":"Mail body",
"mail2fAuthnLevel":"Authentication level", "mail2fAuthnLevel":"Authentication level",
"mail2fLabel":"Label",
"mail2fLogo":"Logo", "mail2fLogo":"Logo",
"mailBody":"Success mail content", "mailBody":"Success mail content",
"mailCharset":"Charset", "mailCharset":"Charset",
@ -706,6 +709,7 @@
"rest2f":"REST second factor", "rest2f":"REST second factor",
"rest2fActivation":"Activation", "rest2fActivation":"Activation",
"rest2fAuthnLevel":"Authentication level", "rest2fAuthnLevel":"Authentication level",
"rest2fLabel":"Label",
"rest2fInitArgs":"Init Arguments", "rest2fInitArgs":"Init Arguments",
"rest2fInitUrl":"Init URL", "rest2fInitUrl":"Init URL",
"rest2fLogo":"Logo", "rest2fLogo":"Logo",
@ -797,9 +801,11 @@
"timeoutActivity":"Sessions activity timeout", "timeoutActivity":"Sessions activity timeout",
"timeoutActivityInterval":"Sessions update interval", "timeoutActivityInterval":"Sessions update interval",
"tokenUseGlobalStorage":"Use global storage", "tokenUseGlobalStorage":"Use global storage",
"totp":"TOTP", "totp2f":"TOTP",
"totp2fActivation":"Activation", "totp2fActivation":"Activation",
"totp2fAuthnLevel":"TOTP authentication level", "totp2fAuthnLevel":"TOTP authentication level",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fDigits":"Number of digits", "totp2fDigits":"Number of digits",
"totp2fDisplayExistingSecret":"Display existing secret", "totp2fDisplayExistingSecret":"Display existing secret",
"totp2fInterval":"Interval", "totp2fInterval":"Interval",
@ -821,6 +827,8 @@
"u2f":"U2F", "u2f":"U2F",
"u2fActivation":"Activation", "u2fActivation":"Activation",
"u2fAuthnLevel":"U2F authentication level", "u2fAuthnLevel":"U2F authentication level",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Self registration", "u2fSelfRegistration":"Self registration",
"u2fTTL":"Lifetime", "u2fTTL":"Lifetime",
"u2fUserCanRemoveKey":"Allow user to remove U2F key", "u2fUserCanRemoveKey":"Allow user to remove U2F key",
@ -847,6 +855,8 @@
"utotp2f":"TOTP-or-U2F", "utotp2f":"TOTP-or-U2F",
"utotp2fActivation":"Activation", "utotp2fActivation":"Activation",
"utotp2fAuthnLevel":"Authentication level", "utotp2fAuthnLevel":"Authentication level",
"utotp2fLabel":"Label",
"utotp2fLogo":"Logo",
"value":"Value", "value":"Value",
"values":"Values", "values":"Values",
"variables":"Variables", "variables":"Variables",
@ -880,6 +890,8 @@
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey",
"yubikey2fActivation":"Activation", "yubikey2fActivation":"Activation",
"yubikey2fAuthnLevel":"Authentication level", "yubikey2fAuthnLevel":"Authentication level",
"yubikey2fLabel":"Label",
"yubikey2fLogo":"Logo",
"yubikey2fClientID":"API client ID", "yubikey2fClientID":"API client ID",
"yubikey2fNonce":"Nonce", "yubikey2fNonce":"Nonce",
"yubikey2fPublicIDSize":"OTP public ID part size", "yubikey2fPublicIDSize":"OTP public ID part size",

View File

@ -264,10 +264,11 @@
"exportedAttr":"SOAP/REST exported attributes", "exportedAttr":"SOAP/REST exported attributes",
"exportedHeaders":"Exported headers", "exportedHeaders":"Exported headers",
"exportedVars":"Exported Variables", "exportedVars":"Exported Variables",
"external2f":"External second factor", "ext2f":"External second factor",
"ext2fActivation":"Activation", "ext2fActivation":"Activation",
"ext2fCodeActivation":"Code regex", "ext2fCodeActivation":"Code regex",
"ext2fAuthnLevel":"Authentication level", "ext2fAuthnLevel":"Authentication level",
"ext2fLabel":"Label",
"ext2fLogo":"Logo", "ext2fLogo":"Logo",
"ext2FSendCommand":"Send command", "ext2FSendCommand":"Send command",
"ext2FValidateCommand":"Validation command", "ext2FValidateCommand":"Validation command",
@ -355,6 +356,7 @@
"krbKeytab":"keytab file", "krbKeytab":"keytab file",
"krbRemoveDomain":"Remove domain from Kerberos username", "krbRemoveDomain":"Remove domain from Kerberos username",
"kerberosParams":"Kerberos parameters", "kerberosParams":"Kerberos parameters",
"label":"Label",
"languages":"Languages", "languages":"Languages",
"latest":"Latest", "latest":"Latest",
"ldap":"LDAP", "ldap":"LDAP",
@ -418,6 +420,7 @@
"mail2fSubject":"Mail subject", "mail2fSubject":"Mail subject",
"mail2fBody":"Mail body", "mail2fBody":"Mail body",
"mail2fAuthnLevel":"Authentication level", "mail2fAuthnLevel":"Authentication level",
"mail2fLabel":"Label",
"mail2fLogo":"Logo", "mail2fLogo":"Logo",
"mailBody":"Success mail content", "mailBody":"Success mail content",
"mailCharset":"Charset", "mailCharset":"Charset",
@ -706,6 +709,7 @@
"rest2f":"REST second factor", "rest2f":"REST second factor",
"rest2fActivation":"Activation", "rest2fActivation":"Activation",
"rest2fAuthnLevel":"Authentication level", "rest2fAuthnLevel":"Authentication level",
"rest2fLabel":"Label",
"rest2fInitArgs":"Init Arguments", "rest2fInitArgs":"Init Arguments",
"rest2fInitUrl":"Init URL", "rest2fInitUrl":"Init URL",
"rest2fLogo":"Logo", "rest2fLogo":"Logo",
@ -797,9 +801,11 @@
"timeoutActivity":"Sessions activity timeout", "timeoutActivity":"Sessions activity timeout",
"timeoutActivityInterval":"Sessions update interval", "timeoutActivityInterval":"Sessions update interval",
"tokenUseGlobalStorage":"Use global storage", "tokenUseGlobalStorage":"Use global storage",
"totp":"TOTP", "totp2f":"TOTP",
"totp2fActivation":"Activation", "totp2fActivation":"Activation",
"totp2fAuthnLevel":"TOTP authentication level", "totp2fAuthnLevel":"TOTP authentication level",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fDigits":"Number of digits", "totp2fDigits":"Number of digits",
"totp2fDisplayExistingSecret":"Display existing secret", "totp2fDisplayExistingSecret":"Display existing secret",
"totp2fInterval":"Interval", "totp2fInterval":"Interval",
@ -821,6 +827,8 @@
"u2f":"U2F", "u2f":"U2F",
"u2fActivation":"Activation", "u2fActivation":"Activation",
"u2fAuthnLevel":"U2F authentication level", "u2fAuthnLevel":"U2F authentication level",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Self registration", "u2fSelfRegistration":"Self registration",
"u2fTTL":"Lifetime", "u2fTTL":"Lifetime",
"u2fUserCanRemoveKey":"Allow user to remove U2F key", "u2fUserCanRemoveKey":"Allow user to remove U2F key",
@ -847,6 +855,8 @@
"utotp2f":"TOTP-or-U2F", "utotp2f":"TOTP-or-U2F",
"utotp2fActivation":"Activation", "utotp2fActivation":"Activation",
"utotp2fAuthnLevel":"Authentication level", "utotp2fAuthnLevel":"Authentication level",
"utotp2fLabel":"Label",
"utotp2fLogo":"Logo",
"value":"Value", "value":"Value",
"values":"Values", "values":"Values",
"variables":"Variables", "variables":"Variables",
@ -880,6 +890,8 @@
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey",
"yubikey2fActivation":"Activation", "yubikey2fActivation":"Activation",
"yubikey2fAuthnLevel":"Authentication level", "yubikey2fAuthnLevel":"Authentication level",
"yubikey2fLabel":"Label",
"yubikey2fLogo":"Logo",
"yubikey2fClientID":"API client ID", "yubikey2fClientID":"API client ID",
"yubikey2fNonce":"Nonce", "yubikey2fNonce":"Nonce",
"yubikey2fPublicIDSize":"OTP public ID part size", "yubikey2fPublicIDSize":"OTP public ID part size",

View File

@ -264,10 +264,11 @@
"exportedAttr":"Attributs exportés par le portail (SOAP/REST)", "exportedAttr":"Attributs exportés par le portail (SOAP/REST)",
"exportedHeaders":"En-têtes exportés", "exportedHeaders":"En-têtes exportés",
"exportedVars":"Attributs à exporter", "exportedVars":"Attributs à exporter",
"external2f":"Second facteur externe", "ext2f":"Second facteur externe",
"ext2fActivation":"Activation", "ext2fActivation":"Activation",
"ext2fCodeActivation":"Expression régulière pour la génération du code", "ext2fCodeActivation":"Expression régulière pour la génération du code",
"ext2fAuthnLevel":"Niveau de l'authentification", "ext2fAuthnLevel":"Niveau de l'authentification",
"ext2fLabel":"Label",
"ext2fLogo":"Logo", "ext2fLogo":"Logo",
"ext2FSendCommand":"Commande pour l'envoi", "ext2FSendCommand":"Commande pour l'envoi",
"ext2FValidateCommand":"Commande pour la validation", "ext2FValidateCommand":"Commande pour la validation",
@ -355,6 +356,7 @@
"krbKeytab":"Fichier keytab", "krbKeytab":"Fichier keytab",
"krbRemoveDomain":"Supprimer le domaine du nom d'utilisateur", "krbRemoveDomain":"Supprimer le domaine du nom d'utilisateur",
"kerberosParams":"Paramètres Kerberos", "kerberosParams":"Paramètres Kerberos",
"label":"Label",
"languages":"Langues", "languages":"Langues",
"latest":"Dernière", "latest":"Dernière",
"ldap":"LDAP", "ldap":"LDAP",
@ -418,6 +420,7 @@
"mail2fSubject":"Sujet du message d'envoi du code", "mail2fSubject":"Sujet du message d'envoi du code",
"mail2fBody":"Contenu du message d'envoi du code", "mail2fBody":"Contenu du message d'envoi du code",
"mail2fAuthnLevel":"Niveau de l'authentification", "mail2fAuthnLevel":"Niveau de l'authentification",
"mail2fLabel":"Label",
"mail2fLogo":"Logo", "mail2fLogo":"Logo",
"mailBody":"Contenu du message de succès", "mailBody":"Contenu du message de succès",
"mailCharset":"Charset", "mailCharset":"Charset",
@ -706,6 +709,7 @@
"rest2f":"Second facteur REST", "rest2f":"Second facteur REST",
"rest2fActivation":"Activation", "rest2fActivation":"Activation",
"rest2fAuthnLevel":"Niveau d'authentification", "rest2fAuthnLevel":"Niveau d'authentification",
"rest2fLabel":"Label",
"rest2fInitArgs":"Arguments d'initialisation", "rest2fInitArgs":"Arguments d'initialisation",
"rest2fInitUrl":"URL d'initialisation", "rest2fInitUrl":"URL d'initialisation",
"rest2fLogo":"Logo", "rest2fLogo":"Logo",
@ -797,9 +801,11 @@
"timeoutActivity":"Délai d'expiration des sessions", "timeoutActivity":"Délai d'expiration des sessions",
"timeoutActivityInterval":"Intervalle de mise à jour des sessions", "timeoutActivityInterval":"Intervalle de mise à jour des sessions",
"tokenUseGlobalStorage":"Utiliser le cache global", "tokenUseGlobalStorage":"Utiliser le cache global",
"totp":"TOTP", "totp2f":"TOTP",
"totp2fActivation":"Activation", "totp2fActivation":"Activation",
"totp2fAuthnLevel":"Niveau d'authentification TOTP", "totp2fAuthnLevel":"Niveau d'authentification TOTP",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fDigits":"Nombre de chiffres", "totp2fDigits":"Nombre de chiffres",
"totp2fDisplayExistingSecret":"Afficher la clef existante", "totp2fDisplayExistingSecret":"Afficher la clef existante",
"totp2fInterval":"Intervalle", "totp2fInterval":"Intervalle",
@ -821,6 +827,8 @@
"u2f":"U2F", "u2f":"U2F",
"u2fActivation":"Activation", "u2fActivation":"Activation",
"u2fAuthnLevel":"Niveau d'authentification U2F", "u2fAuthnLevel":"Niveau d'authentification U2F",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Auto-enregistrement", "u2fSelfRegistration":"Auto-enregistrement",
"u2fTTL":"Durée de vie", "u2fTTL":"Durée de vie",
"u2fUserCanRemoveKey":"Autoriser les utilisateurs à effacer leur clef U2F", "u2fUserCanRemoveKey":"Autoriser les utilisateurs à effacer leur clef U2F",
@ -847,6 +855,8 @@
"utotp2f":"TOTP-ou-U2F", "utotp2f":"TOTP-ou-U2F",
"utotp2fActivation":"Activation", "utotp2fActivation":"Activation",
"utotp2fAuthnLevel":"Niveau d'authentification", "utotp2fAuthnLevel":"Niveau d'authentification",
"utotp2fLabel":"Label",
"utotp2fLogo":"Logo",
"value":"Valeur", "value":"Valeur",
"values":"Valeurs", "values":"Valeurs",
"variables":"Variables", "variables":"Variables",
@ -880,6 +890,8 @@
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey",
"yubikey2fActivation":"Activation", "yubikey2fActivation":"Activation",
"yubikey2fAuthnLevel":"Niveau d'authentification", "yubikey2fAuthnLevel":"Niveau d'authentification",
"yubikey2fLabel":"Label",
"yubikey2fLogo":"Logo",
"yubikey2fClientID":"Identifiant client de l'API", "yubikey2fClientID":"Identifiant client de l'API",
"yubikey2fNonce":"Nonce", "yubikey2fNonce":"Nonce",
"yubikey2fPublicIDSize":"Taille de la partie publique de l'OTP", "yubikey2fPublicIDSize":"Taille de la partie publique de l'OTP",

View File

@ -264,10 +264,11 @@
"exportedAttr":"Attributi di SOAP/REST esportati", "exportedAttr":"Attributi di SOAP/REST esportati",
"exportedHeaders":"Intestazioni esportate", "exportedHeaders":"Intestazioni esportate",
"exportedVars":"Variabili esportate", "exportedVars":"Variabili esportate",
"external2f":"2° fattore esterno", "ext2f":"2° fattore esterno",
"ext2fActivation":"Attivazione", "ext2fActivation":"Attivazione",
"ext2fCodeActivation":"Codice regex", "ext2fCodeActivation":"Codice regex",
"ext2fAuthnLevel":"Livello di autenticazione", "ext2fAuthnLevel":"Livello di autenticazione",
"ext2fLabel":"Label",
"ext2fLogo":"Logo", "ext2fLogo":"Logo",
"ext2FSendCommand":"Invia comando", "ext2FSendCommand":"Invia comando",
"ext2FValidateCommand":"Comando di convalida", "ext2FValidateCommand":"Comando di convalida",
@ -355,6 +356,7 @@
"krbKeytab":"File keytab", "krbKeytab":"File keytab",
"krbRemoveDomain":"Rimuovi dominio dal nome utente Kerberos", "krbRemoveDomain":"Rimuovi dominio dal nome utente Kerberos",
"kerberosParams":"Parametri di Kerberos", "kerberosParams":"Parametri di Kerberos",
"label":"Label",
"languages":"Lingue", "languages":"Lingue",
"latest":"Più recente", "latest":"Più recente",
"ldap":"LDAP", "ldap":"LDAP",
@ -418,6 +420,7 @@
"mail2fSubject":"Oggetto della mail", "mail2fSubject":"Oggetto della mail",
"mail2fBody":"Corpo del messaggio", "mail2fBody":"Corpo del messaggio",
"mail2fAuthnLevel":"Livello di autenticazione", "mail2fAuthnLevel":"Livello di autenticazione",
"mail2fLabel":"Label",
"mail2fLogo":"Logo", "mail2fLogo":"Logo",
"mailBody":"Successo contenuto di posta", "mailBody":"Successo contenuto di posta",
"mailCharset":"Charset", "mailCharset":"Charset",
@ -706,6 +709,7 @@
"rest2f":"REST secondo fattore", "rest2f":"REST secondo fattore",
"rest2fActivation":"Attivazione", "rest2fActivation":"Attivazione",
"rest2fAuthnLevel":"Livello di autenticazione", "rest2fAuthnLevel":"Livello di autenticazione",
"rest2fLabel":"Label",
"rest2fInitArgs":"Argomenti di init", "rest2fInitArgs":"Argomenti di init",
"rest2fInitUrl":"URL iniziale", "rest2fInitUrl":"URL iniziale",
"rest2fLogo":"Logo", "rest2fLogo":"Logo",
@ -797,9 +801,11 @@
"timeoutActivity":"Timeout attività di sessioni", "timeoutActivity":"Timeout attività di sessioni",
"timeoutActivityInterval":"Intervallo di aggiornamento delle sessioni", "timeoutActivityInterval":"Intervallo di aggiornamento delle sessioni",
"tokenUseGlobalStorage":"Utilizza lo storage globale", "tokenUseGlobalStorage":"Utilizza lo storage globale",
"totp":"TOTP", "totp2f":"TOTP",
"totp2fActivation":"Attivazione", "totp2fActivation":"Attivazione",
"totp2fAuthnLevel":"Livello di autenticazione TOTP", "totp2fAuthnLevel":"Livello di autenticazione TOTP",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fDigits":"Numero di cifre", "totp2fDigits":"Numero di cifre",
"totp2fDisplayExistingSecret":"Mostra segreto esistente", "totp2fDisplayExistingSecret":"Mostra segreto esistente",
"totp2fInterval":"Intervallo", "totp2fInterval":"Intervallo",
@ -821,6 +827,8 @@
"u2f":"U2F", "u2f":"U2F",
"u2fActivation":"Attivazione", "u2fActivation":"Attivazione",
"u2fAuthnLevel":"Livello di autenticazione U2F", "u2fAuthnLevel":"Livello di autenticazione U2F",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Auto-registrazione", "u2fSelfRegistration":"Auto-registrazione",
"u2fTTL":"Lifetime", "u2fTTL":"Lifetime",
"u2fUserCanRemoveKey":"Autorizza l'utente a rimuovere la chiave U2F", "u2fUserCanRemoveKey":"Autorizza l'utente a rimuovere la chiave U2F",
@ -847,6 +855,8 @@
"utotp2f":"TOTP-or-U2F", "utotp2f":"TOTP-or-U2F",
"utotp2fActivation":"Attivazione", "utotp2fActivation":"Attivazione",
"utotp2fAuthnLevel":"Livello di autenticazione", "utotp2fAuthnLevel":"Livello di autenticazione",
"utotp2fLabel":"Label",
"utotp2fLogo":"Logo",
"value":"Valore", "value":"Valore",
"values":"Valori", "values":"Valori",
"variables":"Variabili", "variables":"Variabili",
@ -880,6 +890,8 @@
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey",
"yubikey2fActivation":"Attivazione", "yubikey2fActivation":"Attivazione",
"yubikey2fAuthnLevel":"Livello di autenticazione", "yubikey2fAuthnLevel":"Livello di autenticazione",
"yubikey2fLabel":"Label",
"yubikey2fLogo":"Logo",
"yubikey2fClientID":"ID client API", "yubikey2fClientID":"ID client API",
"yubikey2fNonce":"Nonce", "yubikey2fNonce":"Nonce",
"yubikey2fPublicIDSize":"Dimensione della parte ID OTP pubblica", "yubikey2fPublicIDSize":"Dimensione della parte ID OTP pubblica",

View File

@ -264,10 +264,11 @@
"exportedAttr":"Biến SOAP/REST đã được xuất", "exportedAttr":"Biến SOAP/REST đã được xuất",
"exportedHeaders":"Tiêu đề đã được xuất", "exportedHeaders":"Tiêu đề đã được xuất",
"exportedVars":"Biến đã được xuất", "exportedVars":"Biến đã được xuất",
"external2f":"Yếu tố thứ 2 bên ngoài", "ext2f":"Yếu tố thứ 2 bên ngoài",
"ext2fActivation":"Kích hoạt", "ext2fActivation":"Kích hoạt",
"ext2fCodeActivation":"Code regex", "ext2fCodeActivation":"Code regex",
"ext2fAuthnLevel":"Mức xác thực", "ext2fAuthnLevel":"Mức xác thực",
"ext2fLabel":"Label",
"ext2fLogo":"Logo", "ext2fLogo":"Logo",
"ext2FSendCommand":"Gửi lệnh", "ext2FSendCommand":"Gửi lệnh",
"ext2FValidateCommand":"Xác nhận lệnh", "ext2FValidateCommand":"Xác nhận lệnh",
@ -355,6 +356,7 @@
"krbKeytab":"tệp keytab", "krbKeytab":"tệp keytab",
"krbRemoveDomain":"Remove domain from Kerberos username", "krbRemoveDomain":"Remove domain from Kerberos username",
"kerberosParams":"Tham số Kerberos", "kerberosParams":"Tham số Kerberos",
"label":"Label",
"languages":"Ngôn ngữ", "languages":"Ngôn ngữ",
"latest":"Mới nhất", "latest":"Mới nhất",
"ldap":"LDAP", "ldap":"LDAP",
@ -418,6 +420,7 @@
"mail2fSubject":"Mail subject", "mail2fSubject":"Mail subject",
"mail2fBody":"Mail body", "mail2fBody":"Mail body",
"mail2fAuthnLevel":"Mức xác thực", "mail2fAuthnLevel":"Mức xác thực",
"mail2fLabel":"Label",
"mail2fLogo":"Logo", "mail2fLogo":"Logo",
"mailBody":"Nội dung thư thành công", "mailBody":"Nội dung thư thành công",
"mailCharset":"Charset", "mailCharset":"Charset",
@ -706,6 +709,7 @@
"rest2f":"REST second factor", "rest2f":"REST second factor",
"rest2fActivation":"Kích hoạt", "rest2fActivation":"Kích hoạt",
"rest2fAuthnLevel":"Mức xác thực", "rest2fAuthnLevel":"Mức xác thực",
"rest2fLabel":"Label",
"rest2fInitArgs":"Init Arguments", "rest2fInitArgs":"Init Arguments",
"rest2fInitUrl":"Init URL", "rest2fInitUrl":"Init URL",
"rest2fLogo":"Logo", "rest2fLogo":"Logo",
@ -797,9 +801,11 @@
"timeoutActivity":"Thời gian chờ của các hoạt động phiên", "timeoutActivity":"Thời gian chờ của các hoạt động phiên",
"timeoutActivityInterval":"Khoảng thời gian cập nhật phiên", "timeoutActivityInterval":"Khoảng thời gian cập nhật phiên",
"tokenUseGlobalStorage":"Sử dụng lưu trữ toàn cục", "tokenUseGlobalStorage":"Sử dụng lưu trữ toàn cục",
"totp":"TOTP", "totp2f":"TOTP",
"totp2fActivation":"Kích hoạt", "totp2fActivation":"Kích hoạt",
"totp2fAuthnLevel":"TOTP authentication level", "totp2fAuthnLevel":"TOTP authentication level",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fDigits":"Number of digits", "totp2fDigits":"Number of digits",
"totp2fDisplayExistingSecret":"Display existing secret", "totp2fDisplayExistingSecret":"Display existing secret",
"totp2fInterval":"Interval", "totp2fInterval":"Interval",
@ -821,6 +827,8 @@
"u2f":"U2F", "u2f":"U2F",
"u2fActivation":"Kích hoạt", "u2fActivation":"Kích hoạt",
"u2fAuthnLevel":"Mức xác thực U2F", "u2fAuthnLevel":"Mức xác thực U2F",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Tự đăng ký ", "u2fSelfRegistration":"Tự đăng ký ",
"u2fTTL":"Lifetime", "u2fTTL":"Lifetime",
"u2fUserCanRemoveKey":"Allow user to remove U2F key", "u2fUserCanRemoveKey":"Allow user to remove U2F key",
@ -847,6 +855,8 @@
"utotp2f":"TOTP-or-U2F", "utotp2f":"TOTP-or-U2F",
"utotp2fActivation":"Kích hoạt", "utotp2fActivation":"Kích hoạt",
"utotp2fAuthnLevel":"Mức xác thực", "utotp2fAuthnLevel":"Mức xác thực",
"utotp2fLabel":"Label",
"utotp2fLogo":"Logo",
"value":"Giá trị", "value":"Giá trị",
"values":"Giá trị", "values":"Giá trị",
"variables":"biến", "variables":"biến",
@ -880,6 +890,8 @@
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey",
"yubikey2fActivation":"Kích hoạt", "yubikey2fActivation":"Kích hoạt",
"yubikey2fAuthnLevel":"Mức xác thực", "yubikey2fAuthnLevel":"Mức xác thực",
"yubikey2fLabel":"Label",
"yubikey2fLogo":"Logo",
"yubikey2fClientID":"ID ứng dụng khách API", "yubikey2fClientID":"ID ứng dụng khách API",
"yubikey2fNonce":"Nonce", "yubikey2fNonce":"Nonce",
"yubikey2fPublicIDSize":"Kích thước phần tử công khai OTP", "yubikey2fPublicIDSize":"Kích thước phần tử công khai OTP",

View File

@ -264,10 +264,11 @@
"exportedAttr":"SOAP/REST exported attributes", "exportedAttr":"SOAP/REST exported attributes",
"exportedHeaders":"Exported headers", "exportedHeaders":"Exported headers",
"exportedVars":"Exported Variables", "exportedVars":"Exported Variables",
"external2f":"External second factor", "ext2f":"External second factor",
"ext2fActivation":"激活", "ext2fActivation":"激活",
"ext2fCodeActivation":"Code regex", "ext2fCodeActivation":"Code regex",
"ext2fAuthnLevel":"认证级别", "ext2fAuthnLevel":"认证级别",
"ext2fLabel":"Label",
"ext2fLogo":"Logo", "ext2fLogo":"Logo",
"ext2FSendCommand":"Send command", "ext2FSendCommand":"Send command",
"ext2FValidateCommand":"Validation command", "ext2FValidateCommand":"Validation command",
@ -355,6 +356,7 @@
"krbKeytab":"keytab file", "krbKeytab":"keytab file",
"krbRemoveDomain":"Remove domain from Kerberos username", "krbRemoveDomain":"Remove domain from Kerberos username",
"kerberosParams":"Kerberos 参数", "kerberosParams":"Kerberos 参数",
"label":"Label",
"languages":"语言", "languages":"语言",
"latest":"最新的", "latest":"最新的",
"ldap":"LDAP", "ldap":"LDAP",
@ -418,6 +420,7 @@
"mail2fSubject":"Mail subject", "mail2fSubject":"Mail subject",
"mail2fBody":"Mail body", "mail2fBody":"Mail body",
"mail2fAuthnLevel":"认证等级", "mail2fAuthnLevel":"认证等级",
"mail2fLabel":"Label",
"mail2fLogo":"Logo", "mail2fLogo":"Logo",
"mailBody":"Success mail content", "mailBody":"Success mail content",
"mailCharset":"Charset", "mailCharset":"Charset",
@ -706,6 +709,7 @@
"rest2f":"REST second factor", "rest2f":"REST second factor",
"rest2fActivation":"激活", "rest2fActivation":"激活",
"rest2fAuthnLevel":"认证等级", "rest2fAuthnLevel":"认证等级",
"rest2fLabel":"Label",
"rest2fInitArgs":"Init Arguments", "rest2fInitArgs":"Init Arguments",
"rest2fInitUrl":"Init URL", "rest2fInitUrl":"Init URL",
"rest2fLogo":"Logo", "rest2fLogo":"Logo",
@ -797,9 +801,11 @@
"timeoutActivity":"Sessions activity timeout", "timeoutActivity":"Sessions activity timeout",
"timeoutActivityInterval":"Sessions update interval", "timeoutActivityInterval":"Sessions update interval",
"tokenUseGlobalStorage":"Use global storage", "tokenUseGlobalStorage":"Use global storage",
"totp":"TOTP", "totp2f":"TOTP",
"totp2fActivation":"激活", "totp2fActivation":"激活",
"totp2fAuthnLevel":"TOTP authentication level", "totp2fAuthnLevel":"TOTP authentication level",
"totp2fLabel":"Label",
"totp2fLogo":"Logo",
"totp2fDigits":"Number of digits", "totp2fDigits":"Number of digits",
"totp2fDisplayExistingSecret":"Display existing secret", "totp2fDisplayExistingSecret":"Display existing secret",
"totp2fInterval":"Interval", "totp2fInterval":"Interval",
@ -821,6 +827,8 @@
"u2f":"U2F", "u2f":"U2F",
"u2fActivation":"激活", "u2fActivation":"激活",
"u2fAuthnLevel":"U2F authentication level", "u2fAuthnLevel":"U2F authentication level",
"u2fLabel":"Label",
"u2fLogo":"Logo",
"u2fSelfRegistration":"Self registration", "u2fSelfRegistration":"Self registration",
"u2fTTL":"Lifetime", "u2fTTL":"Lifetime",
"u2fUserCanRemoveKey":"Allow user to remove U2F key", "u2fUserCanRemoveKey":"Allow user to remove U2F key",
@ -847,6 +855,8 @@
"utotp2f":"TOTP-or-U2F", "utotp2f":"TOTP-or-U2F",
"utotp2fActivation":"激活", "utotp2fActivation":"激活",
"utotp2fAuthnLevel":"认证等级", "utotp2fAuthnLevel":"认证等级",
"utotp2fLabel":"Label",
"utotp2fLogo":"Logo",
"value":"Value", "value":"Value",
"values":"Values", "values":"Values",
"variables":"Variables", "variables":"Variables",
@ -880,6 +890,8 @@
"yubikey2f":"Yubikey", "yubikey2f":"Yubikey",
"yubikey2fActivation":"激活", "yubikey2fActivation":"激活",
"yubikey2fAuthnLevel":"认证等级", "yubikey2fAuthnLevel":"认证等级",
"yubikey2fLabel":"Label",
"yubikey2fLogo":"Logo",
"yubikey2fClientID":"API client ID", "yubikey2fClientID":"API client ID",
"yubikey2fNonce":"Nonce", "yubikey2fNonce":"Nonce",
"yubikey2fPublicIDSize":"OTP public ID part size", "yubikey2fPublicIDSize":"OTP public ID part size",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -96,7 +96,7 @@ sub init {
# Extra 2F modules # Extra 2F modules
$self->logger->debug('Processing Extra 2F modules'); $self->logger->debug('Processing Extra 2F modules');
foreach my $extraKey (sort keys %{ $self->conf->{sfExtra} } ) { foreach my $extraKey ( sort keys %{ $self->conf->{sfExtra} } ) {
my $moduleType = $self->conf->{sfExtra}->{$extraKey}->{type}; my $moduleType = $self->conf->{sfExtra}->{$extraKey}->{type};
next unless ($moduleType); next unless ($moduleType);
@ -113,6 +113,12 @@ sub init {
my $rule = $self->conf->{sfExtra}->{$extraKey}->{rule} || 1; my $rule = $self->conf->{sfExtra}->{$extraKey}->{rule} || 1;
my $prefix = $m->prefix; my $prefix = $m->prefix;
# Overwrite logo and label from user configuration
$m->logo( $self->conf->{sfExtra}->{$extraKey}->{logo} )
if $self->conf->{sfExtra}->{$extraKey}->{logo};
$m->label( $self->conf->{sfExtra}->{$extraKey}->{label} )
if $self->conf->{sfExtra}->{$extraKey}->{label};
# Compile rule # Compile rule
$rule = $self->p->HANDLER->substitute($rule); $rule = $self->p->HANDLER->substitute($rule);
unless ( $rule = $self->p->HANDLER->buildSub($rule) ) { unless ( $rule = $self->p->HANDLER->buildSub($rule) ) {
@ -322,7 +328,14 @@ sub run {
MAIN_LOGO => $self->conf->{portalMainLogo}, MAIN_LOGO => $self->conf->{portalMainLogo},
SKIN => $self->p->getSkin($req), SKIN => $self->p->getSkin($req),
TOKEN => $token, TOKEN => $token,
MODULES => [ map { { CODE => $_->prefix, LOGO => $_->logo } } @am ], MODULES => [
map { {
CODE => $_->prefix,
LOGO => $_->logo,
LABEL => $_->label
}
} @am
],
CHECKLOGINS => $checkLogins CHECKLOGINS => $checkLogins
} }
); );

View File

@ -29,9 +29,7 @@ sub init {
} }
} }
$self->prefix( $self->conf->{sfPrefix} ) $self->prefix( $self->conf->{sfPrefix} )
if ( $self->conf->{sfPrefix} ); if ( $self->conf->{sfPrefix} );
$self->logo( $self->conf->{ext2fLogo} )
if ( $self->conf->{ext2fLogo} );
return $self->SUPER::init(); return $self->SUPER::init();
} }
if ( $self->conf->{ext2fCodeActivation} ) { if ( $self->conf->{ext2fCodeActivation} ) {
@ -41,9 +39,7 @@ sub init {
} }
$self->random( Lemonldap::NG::Common::Crypto::srandom() ); $self->random( Lemonldap::NG::Common::Crypto::srandom() );
$self->prefix( $self->conf->{sfPrefix} ) $self->prefix( $self->conf->{sfPrefix} )
if ( $self->conf->{sfPrefix} ); if ( $self->conf->{sfPrefix} );
$self->logo( $self->conf->{ext2fLogo} )
if ( $self->conf->{ext2fLogo} );
return $self->SUPER::init(); return $self->SUPER::init();
} }
return 0; return 0;

View File

@ -45,8 +45,6 @@ sub init {
$self->error("Missing 'mailSessionKey' parameter, aborting"); $self->error("Missing 'mailSessionKey' parameter, aborting");
return 0; return 0;
} }
$self->logo( $self->conf->{mail2fLogo} )
if ( $self->conf->{mail2fLogo} );
$self->prefix( $self->conf->{sfPrefix} ) $self->prefix( $self->conf->{sfPrefix} )
if ( $self->conf->{sfPrefix} ); if ( $self->conf->{sfPrefix} );
return $self->SUPER::init(); return $self->SUPER::init();

View File

@ -30,8 +30,7 @@ sub init {
return 0; return 0;
} }
$self->prefix( $self->conf->{sfPrefix} ) $self->prefix( $self->conf->{sfPrefix} )
if ( $self->conf->{sfPrefix} ); if ( $self->conf->{sfPrefix} );
$self->logo( $self->conf->{rest2fLogo} ) if ( $self->conf->{rest2fLogo} );
foreach my $k ( keys %{ $self->conf->{rest2fInitArgs} } ) { foreach my $k ( keys %{ $self->conf->{rest2fInitArgs} } ) {
my $attr = $self->conf->{rest2fInitArgs}->{$k}; my $attr = $self->conf->{rest2fInitArgs}->{$k};
$attr =~ s/^$//; $attr =~ s/^$//;

View File

@ -103,8 +103,7 @@ sub run {
my $maxSize = $self->conf->{max2FDevices}; my $maxSize = $self->conf->{max2FDevices};
$self->logger->debug("Nbr 2FDevices = $size / $maxSize"); $self->logger->debug("Nbr 2FDevices = $size / $maxSize");
if ( $size >= $maxSize ) { if ( $size >= $maxSize ) {
$self->userLogger->warn( $self->userLogger->warn("Max number of 2F devices is reached");
"Max number of 2F devices is reached");
return $self->p->sendHtml( return $self->p->sendHtml(
$req, 'error', $req, 'error',
params => { params => {

View File

@ -125,8 +125,7 @@ sub verify {
unless ( $session->{__ch} and $session->{__ch} eq $challenge ) { unless ( $session->{__ch} and $session->{__ch} eq $challenge ) {
$self->userLogger->error( $self->userLogger->error(
"U2F challenge changed by user: $session->{__ch} / $challenge" "U2F challenge changed by user: $session->{__ch} / $challenge");
);
$req->error(PE_BADCREDENTIALS); $req->error(PE_BADCREDENTIALS);
return $self->fail($req); return $self->fail($req);
} }

View File

@ -356,7 +356,8 @@ sub reloadConf {
unless ( $_[0]->pdata->{keepPdata} ) { unless ( $_[0]->pdata->{keepPdata} ) {
$self->logger->debug('Cleaning pdata'); $self->logger->debug('Cleaning pdata');
$_[0]->pdata( {} ); $_[0]->pdata( {} );
$self->userLogger->notice( $_[0]->user . ' connected' ) if $_[0]->user; $self->userLogger->notice( $_[0]->user . ' connected' )
if $_[0]->user;
} }
return PE_OK; return PE_OK;
}; };

View File

@ -31,10 +31,21 @@ has prefix => ( is => 'rw' );
has logo => ( is => 'rw', default => '2f.png' ); has logo => ( is => 'rw', default => '2f.png' );
has label => ( is => 'rw' );
has noRoute => ( is => 'ro' ); has noRoute => ( is => 'ro' );
sub init { sub init {
my ($self) = @_; my ($self) = @_;
# Set logo if overriden
$self->logo( $self->conf->{ $self->prefix . "2fLogo" } )
if ( $self->conf->{ $self->prefix . "2fLogo" } );
# Set label if provided, translation files will be used otherwise
$self->label( $self->conf->{ $self->prefix . "2fLabel" } )
if ( $self->conf->{ $self->prefix . "2fLabel" } );
unless ( $self->noRoute ) { unless ( $self->noRoute ) {
$self->logger->debug( 'Adding ' . $self->prefix . '2fcheck routes' ); $self->logger->debug( 'Adding ' . $self->prefix . '2fcheck routes' );
$self->addAuthRoute( $self->addAuthRoute(

View File

@ -132,6 +132,7 @@
"enterYubikey":"يرجى استخدام يوبي كي الخاص بك", "enterYubikey":"يرجى استخدام يوبي كي الخاص بك",
"errorMsg":"رسالة خاطئة", "errorMsg":"رسالة خاطئة",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"الاسم الاول", "firstName":"الاسم الاول",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"البريد", "mail":"البريد",
"mail2f":"Email code",
"mailSent2":"تم إرسال رسالة إلى عنوان بريدك الإلكتروني.", "mailSent2":"تم إرسال رسالة إلى عنوان بريدك الإلكتروني.",
"maintenanceMode":"هذا التطبيق في صيانة، يرجى محاولة الاتصال في وقت لاحق", "maintenanceMode":"هذا التطبيق في صيانة، يرجى محاولة الاتصال في وقت لاحق",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,7 @@
"resendConfirmMail":"هل تريد إعادة إرسال رسالة التأكيد؟", "resendConfirmMail":"هل تريد إعادة إرسال رسالة التأكيد؟",
"resentConfirm":"هل تريد إعادة إرسال رسالة التأكيد؟", "resentConfirm":"هل تريد إعادة إرسال رسالة التأكيد؟",
"resetPwd":"إعادة تعيين كلمة المرور الخاصة بي", "resetPwd":"إعادة تعيين كلمة المرور الخاصة بي",
"rest2f":"Verification code",
"rightsReloadNeedsLogout":" إعادة تحميل الحقوق تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى", "rightsReloadNeedsLogout":" إعادة تحميل الحقوق تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى",
"scope":"نطاق", "scope":"نطاق",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected":"ابق على اتصال على هذا الجهاز", "stayConnected":"ابق على اتصال على هذا الجهاز",
"submit":"قدم", "submit":"قدم",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"يرجى لمس جهاز U2F وامض الآن.", "touchU2fDevice":"يرجى لمس جهاز U2F وامض الآن.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"نوع", "type":"نوع",
"u2f":"U2F Key",
"u2fFailed":"فشل التحقق من U2F. أعد محاولة الاتصال بالمشرف أو اتصل به", "u2fFailed":"فشل التحقق من U2F. أعد محاولة الاتصال بالمشرف أو اتصل به",
"u2fPermission":"قد تتم مطالبتك بالسماح للموقع إذن الوصول إلى مفاتيح الأمان الخاصة بك.بعد منح الإذن، سيبدأ الجهاز في العملية.", "u2fPermission":"قد تتم مطالبتك بالسماح للموقع إذن الوصول إلى مفاتيح الأمان الخاصة بك.بعد منح الإذن، سيبدأ الجهاز في العملية.",
"u2fWelcome":"U2F device management", "u2fWelcome":"U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"ترقية الجلسة", "upgradeSession":"ترقية الجلسة",
"user":"المستخدم", "user":"المستخدم",
"useYubikey":"استخدم اليوبي كي الخاص بك", "useYubikey":"استخدم اليوبي كي الخاص بك",
"utotp2f":"TOTP-or-U2F",
"value":"القيمة", "value":"القيمة",
"verify":"التحقق", "verify":"التحقق",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"رقم هاتفك", "yourPhone":"رقم هاتفك",
"yourProfile":"ملفك الشخصي", "yourProfile":"ملفك الشخصي",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Benutze bitte deinen Yubikey", "enterYubikey":"Benutze bitte deinen Yubikey",
"errorMsg":"Fehlermeldung", "errorMsg":"Fehlermeldung",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fülle das Formular aus", "fillTheForm":"Fülle das Formular aus",
"firstName":"Vorname", "firstName":"Vorname",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Von Dienstanbietern abmelden ...", "logoutFromSP":"Von Dienstanbietern abmelden ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"E-Mail", "mail":"E-Mail",
"mail2f":"Email code",
"mailSent2":"Eine Nachricht wurde an deine E-Mail Adresse gesendet.", "mailSent2":"Eine Nachricht wurde an deine E-Mail Adresse gesendet.",
"maintenanceMode":"Diese Anwendung ist in Wartung, bitte versuche später eine Verbindung herzustellen", "maintenanceMode":"Diese Anwendung ist in Wartung, bitte versuche später eine Verbindung herzustellen",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,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 ?",
"resetPwd":"Mein Passwort zurücksetzen", "resetPwd":"Mein Passwort zurücksetzen",
"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",
"scope":"Scope", "scope":"Scope",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected":"Auf diesem Gerät verbunden bleiben", "stayConnected":"Auf diesem Gerät verbunden bleiben",
"submit":"Absenden", "submit":"Absenden",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"Es existiert bereits ein TOTP-Secret", "totpExistingKey":"Es existiert bereits ein TOTP-Secret",
"touchU2fDevice":"Please touch the flashing U2F device now.", "touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Typ", "type":"Typ",
"u2f":"U2F Key",
"u2fFailed":"U2F-Überprüfung fehlgeschlagen. Versuchen Sie es erneut oder wenden Sie sich an Ihren Administrator", "u2fFailed":"U2F-Überprüfung fehlgeschlagen. Versuchen Sie es erneut oder wenden Sie sich an Ihren Administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.", "u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F - Geräteverwaltung", "u2fWelcome":"U2F - Geräteverwaltung",
@ -235,6 +240,7 @@
"upgradeSession":"Upgrade session", "upgradeSession":"Upgrade session",
"user":"Benutzer", "user":"Benutzer",
"useYubikey":"Benutze deinen Yubikey", "useYubikey":"Benutze deinen Yubikey",
"utotp2f":"TOTP-or-U2F",
"value":"Value", "value":"Value",
"verify":"Verify", "verify":"Verify",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Ihre Telefonnummer", "yourPhone":"Ihre Telefonnummer",
"yourProfile":"Ihr Profil", "yourProfile":"Ihr Profil",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Please use your Yubikey", "enterYubikey":"Please use your Yubikey",
"errorMsg":"Error Message", "errorMsg":"Error Message",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"First name", "firstName":"First name",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Mail", "mail":"Mail",
"mail2f":"Email code",
"mailSent2":"A message has been sent to your mail address.", "mailSent2":"A message has been sent to your mail address.",
"maintenanceMode":"This application is in maintenance, please try to connect later", "maintenanceMode":"This application is in maintenance, please try to connect later",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,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?",
"resetPwd":"Reset my password", "resetPwd":"Reset my password",
"rest2f":"Verification code",
"rightsReloadNeedsLogout": "Rights reloads need to logout and login again", "rightsReloadNeedsLogout": "Rights reloads need to logout and login again",
"scope":"Scope", "scope":"Scope",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected": "Stay connected on this device", "stayConnected": "Stay connected on this device",
"submit":"Submit", "submit":"Submit",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice": "Please touch the flashing U2F device now.", "touchU2fDevice": "Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp": "Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp": "Please touch the flashing U2F device or enter TOTP code.",
"type":"Type", "type":"Type",
"u2f":"U2F Key",
"u2fFailed": "U2F verification failed. Retry or contact your administrator", "u2fFailed": "U2F verification failed. Retry or contact your administrator",
"u2fPermission": "You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.", "u2fPermission": "You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome": "U2F device management", "u2fWelcome": "U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"Upgrade session", "upgradeSession":"Upgrade session",
"user":"User", "user":"User",
"useYubikey":"use your Yubikey", "useYubikey":"use your Yubikey",
"utotp2f":"TOTP-or-U2F",
"value":"Value", "value":"Value",
"verify": "Verify", "verify": "Verify",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Your phone number", "yourPhone":"Your phone number",
"yourProfile":"Your profile", "yourProfile":"Your profile",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Please use your Yubikey", "enterYubikey":"Please use your Yubikey",
"errorMsg":"Error Message", "errorMsg":"Error Message",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"First name", "firstName":"First name",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Mail", "mail":"Mail",
"mail2f":"Email code",
"mailSent2":"A message has been sent to your mail address.", "mailSent2":"A message has been sent to your mail address.",
"maintenanceMode":"This application is in maintenance, please try to connect later", "maintenanceMode":"This application is in maintenance, please try to connect later",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,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?",
"resetPwd":"Reset my password", "resetPwd":"Reset my password",
"rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
"scope":"Scope", "scope":"Scope",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected":"Stay connected on this device", "stayConnected":"Stay connected on this device",
"submit":"Submit", "submit":"Submit",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Please touch the flashing U2F device now.", "touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type", "type":"Type",
"u2f":"U2F Key",
"u2fFailed":"U2F verification failed. Retry or contact your administrator", "u2fFailed":"U2F verification failed. Retry or contact your administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.", "u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F device management", "u2fWelcome":"U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"Upgrade session", "upgradeSession":"Upgrade session",
"user":"User", "user":"User",
"useYubikey":"use your Yubikey", "useYubikey":"use your Yubikey",
"utotp2f":"TOTP-or-U2F",
"value":"Value", "value":"Value",
"verify":"Verify", "verify":"Verify",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Your phone number", "yourPhone":"Your phone number",
"yourProfile":"Your profile", "yourProfile":"Your profile",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Please use your Yubikey", "enterYubikey":"Please use your Yubikey",
"errorMsg":"Virhe viesti", "errorMsg":"Virhe viesti",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"Etunimi", "firstName":"Etunimi",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Sähköposti", "mail":"Sähköposti",
"mail2f":"Email code",
"mailSent2":"Viesti on lähetetty sähköpostiisi.", "mailSent2":"Viesti on lähetetty sähköpostiisi.",
"maintenanceMode":"This application is in maintenance, please try to connect later", "maintenanceMode":"This application is in maintenance, please try to connect later",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,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?",
"resetPwd":"Palauta salasanani?", "resetPwd":"Palauta salasanani?",
"rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
"scope":"Scope", "scope":"Scope",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected":"Stay connected on this device", "stayConnected":"Stay connected on this device",
"submit":"Lähetä", "submit":"Lähetä",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Please touch the flashing U2F device now.", "touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type", "type":"Type",
"u2f":"U2F Key",
"u2fFailed":"U2F verification failed. Retry or contact your administrator", "u2fFailed":"U2F verification failed. Retry or contact your administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.", "u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F device management", "u2fWelcome":"U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"Upgrade session", "upgradeSession":"Upgrade session",
"user":"Käyttäjä", "user":"Käyttäjä",
"useYubikey":"Käytä Yubikeytä", "useYubikey":"Käytä Yubikeytä",
"utotp2f":"TOTP-or-U2F",
"value":"Value", "value":"Value",
"verify":"Vahvista", "verify":"Vahvista",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Puhelinnumerosi", "yourPhone":"Puhelinnumerosi",
"yourProfile":"Profiilisi", "yourProfile":"Profiilisi",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Utilisez votre Yubikey", "enterYubikey":"Utilisez votre Yubikey",
"errorMsg":"Message d'erreur", "errorMsg":"Message d'erreur",
"expired2Fremoved":"%s seconds facteurs expirés ont été supprimés !", "expired2Fremoved":"%s seconds facteurs expirés ont été supprimés !",
"ext2f":"Code de vérification",
"fillTheForm":"Remplissez le formulaire", "fillTheForm":"Remplissez le formulaire",
"forbidden":"Accès INTERDIT", "forbidden":"Accès INTERDIT",
"firstName":"Prénom", "firstName":"Prénom",
@ -161,6 +162,7 @@
"logoutFromSP":"Déconnexion des services ...", "logoutFromSP":"Déconnexion des services ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Adresse mail", "mail":"Adresse mail",
"mail2f":"Code par mail",
"mailSent2":"Un message a été envoyé à votre adresse mail.", "mailSent2":"Un message a été envoyé à votre adresse mail.",
"maintenanceMode":"Cette application est en maintenance, merci de réessayer plus tard", "maintenanceMode":"Cette application est en maintenance, merci de réessayer plus tard",
"maxNumberof2FDevicesReached":"Nombre maximum de seconds facteurs atteint !", "maxNumberof2FDevicesReached":"Nombre maximum de seconds facteurs atteint !",
@ -206,6 +208,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é ?",
"resetPwd":"Réinitialiser mon mot de passe", "resetPwd":"Réinitialiser mon mot de passe",
"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",
"scope": "Informations", "scope": "Informations",
"search":"Chercher", "search":"Chercher",
@ -221,10 +224,12 @@
"stayConnected": "Rester connecté sur cet appareil", "stayConnected": "Rester connecté sur cet appareil",
"submit":"Envoyer", "submit":"Envoyer",
"switchContext":"Changer de contexte", "switchContext":"Changer de contexte",
"totp2f":"Application OTP",
"totpExistingKey":"Un secret TOTP existe déjà !", "totpExistingKey":"Un secret TOTP existe déjà !",
"touchU2fDevice": "Posez votre doigt sur le périphérique U2F", "touchU2fDevice": "Posez votre doigt sur le périphérique U2F",
"touchU2fDeviceOrEnterTotp": "Posez votre doigt sur le périphérique U2F ou entrez le code TOTP", "touchU2fDeviceOrEnterTotp": "Posez votre doigt sur le périphérique U2F ou entrez le code TOTP",
"type":"Type", "type":"Type",
"u2f":"Clé U2F",
"u2fFailed": "La vérification U2F a échoué. Réessayez ou contactez votre administrateur", "u2fFailed": "La vérification U2F a échoué. Réessayez ou contactez votre administrateur",
"u2fPermission": "Il est possible qu'on vous demande d'autoriser le site à accéder à votre clef. Après votre accord, la clef clignotera.", "u2fPermission": "Il est possible qu'on vous demande d'autoriser le site à accéder à votre clef. Après votre accord, la clef clignotera.",
"u2fWelcome": "Gestion du périphérique U2F", "u2fWelcome": "Gestion du périphérique U2F",
@ -235,6 +240,7 @@
"upgradeSession":"Se réauthentifier", "upgradeSession":"Se réauthentifier",
"user":"Utilisateur", "user":"Utilisateur",
"useYubikey":"Utilisez votre Yubikey", "useYubikey":"Utilisez votre Yubikey",
"utotp2f":"TOTP-ou-U2F",
"value":"Valeur", "value":"Valeur",
"verify": "Vérifier", "verify": "Vérifier",
"VHnotFound":"Hôte virtuel erroné ou inexistant", "VHnotFound":"Hôte virtuel erroné ou inexistant",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Votre nouvelle clef TOTP. Testez-la et entrez le code", "yourNewTotpKey":"Votre nouvelle clef TOTP. Testez-la et entrez le code",
"yourPhone":"Votre numéro de téléphone", "yourPhone":"Votre numéro de téléphone",
"yourProfile":"Vos informations personnelles", "yourProfile":"Vos informations personnelles",
"yourTotpKey":"Votre clef TOTP" "yourTotpKey":"Votre clef TOTP",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Utilizza il tuo Yubikey", "enterYubikey":"Utilizza il tuo Yubikey",
"errorMsg":"Messaggio di errore", "errorMsg":"Messaggio di errore",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Compila il modulo", "fillTheForm":"Compila il modulo",
"firstName":"Nome", "firstName":"Nome",
"forbidden":"Accesso VIETATO", "forbidden":"Accesso VIETATO",
@ -161,6 +162,7 @@
"logoutFromSP":"Disconnessione dai fornitori di servizi ...", "logoutFromSP":"Disconnessione dai fornitori di servizi ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Mail", "mail":"Mail",
"mail2f":"Email code",
"mailSent2":"Vi é stato inviato un messaggio via mail", "mailSent2":"Vi é stato inviato un messaggio via mail",
"maintenanceMode":"Questa applicazione è in manutenzione, prova a connetterti più tardi", "maintenanceMode":"Questa applicazione è in manutenzione, prova a connetterti più tardi",
"maxNumberof2FDevicesReached":"Raggiunto il numero massimo di dispositivi 2F !", "maxNumberof2FDevicesReached":"Raggiunto il numero massimo di dispositivi 2F !",
@ -206,6 +208,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?",
"resetPwd":"Reimpostare la password", "resetPwd":"Reimpostare la password",
"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",
"scope":"Ambito", "scope":"Ambito",
"search":"Ricerca", "search":"Ricerca",
@ -221,10 +224,12 @@
"stayConnected":"Resta connesso su questo dispositivo", "stayConnected":"Resta connesso su questo dispositivo",
"submit":"Invia", "submit":"Invia",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"Un segreto TOTP esiste già", "totpExistingKey":"Un segreto TOTP esiste già",
"touchU2fDevice":"Adesso tocca il dispositivo U2F lampeggiante.", "touchU2fDevice":"Adesso tocca il dispositivo U2F lampeggiante.",
"touchU2fDeviceOrEnterTotp":"Tocca il dispositivo U2F lampeggiante o inserisci il codice TOTP.", "touchU2fDeviceOrEnterTotp":"Tocca il dispositivo U2F lampeggiante o inserisci il codice TOTP.",
"type":"Tipo", "type":"Tipo",
"u2f":"U2F Key",
"u2fFailed":"Verifica U2F non riuscita. Riprovare o contattare l'amministratore", "u2fFailed":"Verifica U2F non riuscita. Riprovare o contattare l'amministratore",
"u2fPermission":"È possibile che venga richiesto di consentire il permesso del sito per accedere alle chiavi di sicurezza. Dopo aver concesso il permesso, il dispositivo inizierà a lampeggiare.", "u2fPermission":"È possibile che venga richiesto di consentire il permesso del sito per accedere alle chiavi di sicurezza. Dopo aver concesso il permesso, il dispositivo inizierà a lampeggiare.",
"u2fWelcome":"Gestione dei dispositivi U2F", "u2fWelcome":"Gestione dei dispositivi U2F",
@ -235,6 +240,7 @@
"upgradeSession":"Sessione di aggiornamento", "upgradeSession":"Sessione di aggiornamento",
"user":"Utente", "user":"Utente",
"useYubikey":"Usa la tua Yubikey", "useYubikey":"Usa la tua Yubikey",
"utotp2f":"TOTP-or-U2F",
"value":"Valore", "value":"Valore",
"verify":"Verifica", "verify":"Verifica",
"VHnotFound":"Host virtuale non trovato", "VHnotFound":"Host virtuale non trovato",
@ -255,5 +261,6 @@
"yourNewTotpKey":"La tua nuova chiave TOTP, per favore provala e inserisci il codice", "yourNewTotpKey":"La tua nuova chiave TOTP, per favore provala e inserisci il codice",
"yourPhone":"Numero di telefono", "yourPhone":"Numero di telefono",
"yourProfile":"Il tuo profilo", "yourProfile":"Il tuo profilo",
"yourTotpKey":"La tua chiave TOTP" "yourTotpKey":"La tua chiave TOTP",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Please use your Yubikey", "enterYubikey":"Please use your Yubikey",
"errorMsg":"Error Message", "errorMsg":"Error Message",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"First name", "firstName":"First name",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Mail", "mail":"Mail",
"mail2f":"Email code",
"mailSent2":"A message has been sent to your mail address.", "mailSent2":"A message has been sent to your mail address.",
"maintenanceMode":"This application is in maintenance, please try to connect later", "maintenanceMode":"This application is in maintenance, please try to connect later",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,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?",
"resetPwd":"Reset my password", "resetPwd":"Reset my password",
"rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
"scope":"Scope", "scope":"Scope",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected":"Stay connected on this device", "stayConnected":"Stay connected on this device",
"submit":"Submit", "submit":"Submit",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Please touch the flashing U2F device now.", "touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type", "type":"Type",
"u2f":"U2F Key",
"u2fFailed":"U2F verification failed. Retry or contact your administrator", "u2fFailed":"U2F verification failed. Retry or contact your administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.", "u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F device management", "u2fWelcome":"U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"Upgrade session", "upgradeSession":"Upgrade session",
"user":"User", "user":"User",
"useYubikey":"use your Yubikey", "useYubikey":"use your Yubikey",
"utotp2f":"TOTP-or-U2F",
"value":"Value", "value":"Value",
"verify":"Verify", "verify":"Verify",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Your phone number", "yourPhone":"Your phone number",
"yourProfile":"Your profile", "yourProfile":"Your profile",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Please use your Yubikey", "enterYubikey":"Please use your Yubikey",
"errorMsg":"Error Message", "errorMsg":"Error Message",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"First name", "firstName":"First name",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Mail", "mail":"Mail",
"mail2f":"Email code",
"mailSent2":"A message has been sent to your mail address.", "mailSent2":"A message has been sent to your mail address.",
"maintenanceMode":"This application is in maintenance, please try to connect later", "maintenanceMode":"This application is in maintenance, please try to connect later",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,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?",
"resetPwd":"Reset my password", "resetPwd":"Reset my password",
"rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
"scope":"Scope", "scope":"Scope",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected":"Stay connected on this device", "stayConnected":"Stay connected on this device",
"submit":"Submit", "submit":"Submit",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Please touch the flashing U2F device now.", "touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type", "type":"Type",
"u2f":"U2F Key",
"u2fFailed":"U2F verification failed. Retry or contact your administrator", "u2fFailed":"U2F verification failed. Retry or contact your administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.", "u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F device management", "u2fWelcome":"U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"Upgrade session", "upgradeSession":"Upgrade session",
"user":"User", "user":"User",
"useYubikey":"use your Yubikey", "useYubikey":"use your Yubikey",
"utotp2f":"TOTP-or-U2F",
"value":"Value", "value":"Value",
"verify":"Verify", "verify":"Verify",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Your phone number", "yourPhone":"Your phone number",
"yourProfile":"Your profile", "yourProfile":"Your profile",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Please use your Yubikey", "enterYubikey":"Please use your Yubikey",
"errorMsg":"Error Message", "errorMsg":"Error Message",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"First name", "firstName":"First name",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Mail", "mail":"Mail",
"mail2f":"Email code",
"mailSent2":"A message has been sent to your mail address.", "mailSent2":"A message has been sent to your mail address.",
"maintenanceMode":"This application is in maintenance, please try to connect later", "maintenanceMode":"This application is in maintenance, please try to connect later",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,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?",
"resetPwd":"Reset my password", "resetPwd":"Reset my password",
"rest2f":"Verification code",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again", "rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
"scope":"Scope", "scope":"Scope",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected":"Stay connected on this device", "stayConnected":"Stay connected on this device",
"submit":"Submit", "submit":"Submit",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Please touch the flashing U2F device now.", "touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type", "type":"Type",
"u2f":"U2F Key",
"u2fFailed":"U2F verification failed. Retry or contact your administrator", "u2fFailed":"U2F verification failed. Retry or contact your administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.", "u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F device management", "u2fWelcome":"U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"Upgrade session", "upgradeSession":"Upgrade session",
"user":"User", "user":"User",
"useYubikey":"use your Yubikey", "useYubikey":"use your Yubikey",
"utotp2f":"TOTP-or-U2F",
"value":"Value", "value":"Value",
"verify":"Verify", "verify":"Verify",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Your phone number", "yourPhone":"Your phone number",
"yourProfile":"Your profile", "yourProfile":"Your profile",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"Vui lòng sử dụng Yubikey của bạn", "enterYubikey":"Vui lòng sử dụng Yubikey của bạn",
"errorMsg":"Thông báo lỗi", "errorMsg":"Thông báo lỗi",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"Tên", "firstName":"Tên",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"MACROS", "macros":"MACROS",
"mail":"Thư", "mail":"Thư",
"mail2f":"Email code",
"mailSent2":"Một tin nhắn đã được gửi đến địa chỉ thư của bạn.", "mailSent2":"Một tin nhắn đã được gửi đến địa chỉ thư của bạn.",
"maintenanceMode":"Ứng dụng này đang trong quá trình bảo trì, hãy thử kết nối sau", "maintenanceMode":"Ứng dụng này đang trong quá trình bảo trì, hãy thử kết nối sau",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,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?",
"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",
"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",
"scope":"Phạm vi", "scope":"Phạm vi",
"search":"Search", "search":"Search",
@ -221,10 +224,12 @@
"stayConnected":"Giữ kết nối trên thiết bị này", "stayConnected":"Giữ kết nối trên thiết bị này",
"submit":"Gửi", "submit":"Gửi",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Vui lòng chạm vào thiết bị U2F nhấp nháy ngay bây giờ.", "touchU2fDevice":"Vui lòng chạm vào thiết bị U2F nhấp nháy ngay bây giờ.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Loại", "type":"Loại",
"u2f":"U2F Key",
"u2fFailed":"Xác minh U2F thất bại. Thử lại hoặc liên hệ với quản trị viên của bạn ", "u2fFailed":"Xác minh U2F thất bại. Thử lại hoặc liên hệ với quản trị viên của bạn ",
"u2fPermission":"Bạn có thể được nhắc cho phép trang web được phép truy cập vào các khóa bảo mật của bạn. Sau khi cho phép, thiết bị sẽ bắt đầu nhấp nháy. ", "u2fPermission":"Bạn có thể được nhắc cho phép trang web được phép truy cập vào các khóa bảo mật của bạn. Sau khi cho phép, thiết bị sẽ bắt đầu nhấp nháy. ",
"u2fWelcome":"U2F device management", "u2fWelcome":"U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"Phiên nâng cấp", "upgradeSession":"Phiên nâng cấp",
"user":"Người dùng", "user":"Người dùng",
"useYubikey":"sử dụng Yubikey của bạn", "useYubikey":"sử dụng Yubikey của bạn",
"utotp2f":"TOTP-or-U2F",
"value":"Giá trị", "value":"Giá trị",
"verify":"Xác minh", "verify":"Xác minh",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Số điện thoại của bạn", "yourPhone":"Số điện thoại của bạn",
"yourProfile":"Profile của bạn", "yourProfile":"Profile của bạn",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -132,6 +132,7 @@
"enterYubikey":"请使用您的Yubikey", "enterYubikey":"请使用您的Yubikey",
"errorMsg":"错误消息", "errorMsg":"错误消息",
"expired2Fremoved":"%s expired 2F devices have been removed!", "expired2Fremoved":"%s expired 2F devices have been removed!",
"ext2f":"Verification code",
"fillTheForm":"Fill the form", "fillTheForm":"Fill the form",
"firstName":"名", "firstName":"名",
"forbidden":"Access FORBIDDEN", "forbidden":"Access FORBIDDEN",
@ -161,6 +162,7 @@
"logoutFromSP":"Logout from service providers ...", "logoutFromSP":"Logout from service providers ...",
"macros":"宏", "macros":"宏",
"mail":"邮件", "mail":"邮件",
"mail2f":"Email code",
"mailSent2":"已经发送一封邮件到您的邮箱", "mailSent2":"已经发送一封邮件到您的邮箱",
"maintenanceMode":"程序维护中,请稍后再尝试连接。", "maintenanceMode":"程序维护中,请稍后再尝试连接。",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!", "maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!",
@ -206,6 +208,7 @@
"resendConfirmMail":"重新发送确认邮件?", "resendConfirmMail":"重新发送确认邮件?",
"resentConfirm":"您想确认邮件被重新发送吗?", "resentConfirm":"您想确认邮件被重新发送吗?",
"resetPwd":"重置我的密码", "resetPwd":"重置我的密码",
"rest2f":"Verification code",
"rightsReloadNeedsLogout":"重新加载权限需要登出并且再次登录", "rightsReloadNeedsLogout":"重新加载权限需要登出并且再次登录",
"scope":"Scope", "scope":"Scope",
"search":"搜索", "search":"搜索",
@ -221,10 +224,12 @@
"stayConnected":"在该项设备上保持连接", "stayConnected":"在该项设备上保持连接",
"submit":"提交", "submit":"提交",
"switchContext":"Switch context", "switchContext":"Switch context",
"totp2f":"OTP App",
"totpExistingKey":"A TOTP secret already exists", "totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Please touch the flashing U2F device now.", "touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.", "touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type", "type":"Type",
"u2f":"U2F Key",
"u2fFailed":"U2F verification failed. Retry or contact your administrator", "u2fFailed":"U2F verification failed. Retry or contact your administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.", "u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F device management", "u2fWelcome":"U2F device management",
@ -235,6 +240,7 @@
"upgradeSession":"升级会话", "upgradeSession":"升级会话",
"user":"用户", "user":"用户",
"useYubikey":"使用您的 Yubikey", "useYubikey":"使用您的 Yubikey",
"utotp2f":"TOTP-or-U2F",
"value":"Value", "value":"Value",
"verify":"验证", "verify":"验证",
"VHnotFound":"Virtual Host not found", "VHnotFound":"Virtual Host not found",
@ -255,5 +261,6 @@
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code", "yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"您的电话号码", "yourPhone":"您的电话号码",
"yourProfile":"您的档案", "yourProfile":"您的档案",
"yourTotpKey":"Your TOTP key" "yourTotpKey":"Your TOTP key",
"yubikey2f":"Yubikey"
} }

View File

@ -9,6 +9,13 @@
<input type="hidden" name="skin" value="<TMPL_VAR NAME="SKIN">" /> <input type="hidden" name="skin" value="<TMPL_VAR NAME="SKIN">" />
<TMPL_LOOP NAME="MODULES"> <TMPL_LOOP NAME="MODULES">
<button type="submit" name="sf" value="<TMPL_VAR NAME="CODE">" class="mx-3"> <button type="submit" name="sf" value="<TMPL_VAR NAME="CODE">" class="mx-3">
<div class="card-header p-0">
<TMPL_IF LABEL>
<h4 class="mb-0"><TMPL_VAR NAME="LABEL"></h4>
<TMPL_ELSE>
<h4 class="mb-0" trspan="<TMPL_VAR NAME="CODE">2f"></h4>
</TMPL_IF>
</div>
<img src="<TMPL_VAR NAME="STATIC_PREFIX"><TMPL_VAR NAME="SKIN">/<TMPL_VAR NAME="LOGO">" alt="<TMPL_VAR NAME="CODE">2F" title="<TMPL_VAR NAME="CODE">2F" /> <img src="<TMPL_VAR NAME="STATIC_PREFIX"><TMPL_VAR NAME="SKIN">/<TMPL_VAR NAME="LOGO">" alt="<TMPL_VAR NAME="CODE">2F" title="<TMPL_VAR NAME="CODE">2F" />
</button> </button>
</TMPL_LOOP> </TMPL_LOOP>

View File

@ -11,23 +11,23 @@ count(1);
my $client = LLNG::Manager::Test->new( { my $client = LLNG::Manager::Test->new( {
ini => { ini => {
logLevel => 'error', logLevel => 'error',
authentication => 'Demo', authentication => 'Demo',
userDB => 'Same', userDB => 'Same',
'sfExtra' => { 'sfExtra' => {
'home' => { 'home' => {
'over' => { 'over' => {
mail2fCodeRegex => '\w{4}', mail2fCodeRegex => '\w{4}',
mail2fLogo => 'home.jpg',
}, },
'logo' => 'home.jpg',
'rule' => '$uid eq "dwho" or $uid eq "msmith"', 'rule' => '$uid eq "dwho" or $uid eq "msmith"',
'type' => 'Mail2F' 'type' => 'Mail2F'
}, },
'work' => { 'work' => {
'over' => { 'over' => {
mail2fLogo => 'work.jpg', mail2fCodeRegex => '\d{8}',
mail2fCodeRegex => '\d{8}',
}, },
'logo' => 'work.jpg',
'rule' => '$uid eq "dwho" or $uid eq "rtyler"', 'rule' => '$uid eq "dwho" or $uid eq "rtyler"',
'type' => 'Mail2F' 'type' => 'Mail2F'
} }
@ -95,7 +95,6 @@ ok(
); );
count(1); count(1);
# Expect choice page # Expect choice page
my ( $host, $url, $query ) = my ( $host, $url, $query ) =
expectForm( $res, undef, '/2fchoice', 'token', 'checkLogins' ); expectForm( $res, undef, '/2fchoice', 'token', 'checkLogins' );
@ -103,14 +102,14 @@ my ( $host, $url, $query ) =
ok( ok(
$res->[2]->[0] =~ $res->[2]->[0] =~
qq%<img src="/static/bootstrap/work.jpg" alt="work2F" title="work2F" />%, qq%<img src="/static/bootstrap/work.jpg" alt="work2F" title="work2F" />%,
'Found work.png' 'Found work.jpg'
) or print STDERR Dumper( $res->[2]->[0] ); ) or print STDERR Dumper( $res->[2]->[0] );
count(1); count(1);
ok( ok(
$res->[2]->[0] =~ $res->[2]->[0] =~
qq%<img src="/static/bootstrap/home.jpg" alt="home2F" title="home2F" />%, qq%<img src="/static/bootstrap/home.jpg" alt="home2F" title="home2F" />%,
'Found home.png' 'Found home.jpg'
) or print STDERR Dumper( $res->[2]->[0] ); ) or print STDERR Dumper( $res->[2]->[0] );
count(1); count(1);