Remove trailing whitespaces
This commit is contained in:
parent
141ba96c92
commit
ece9b21219
4
RELEASE
4
RELEASE
|
@ -28,7 +28,7 @@ Before release
|
||||||
|
|
||||||
Replace https://lemonldap-ng.org/documentation/X.X/parameterlist by
|
Replace https://lemonldap-ng.org/documentation/X.X/parameterlist by
|
||||||
/tmp/prmlist.txt content
|
/tmp/prmlist.txt content
|
||||||
|
|
||||||
$ make documentation
|
$ make documentation
|
||||||
|
|
||||||
- Update changelog:
|
- Update changelog:
|
||||||
|
@ -56,7 +56,7 @@ For major release
|
||||||
|
|
||||||
- Go on gitlab and create a new tag: https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/tags/new
|
- Go on gitlab and create a new tag: https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/tags/new
|
||||||
|
|
||||||
- Change "latest" symlink in dokuwiki
|
- Change "latest" symlink in dokuwiki
|
||||||
|
|
||||||
- Edit scripts/doc.pl in trunk to point on the new documentation path
|
- Edit scripts/doc.pl in trunk to point on the new documentation path
|
||||||
|
|
||||||
|
|
16
changelog
16
changelog
|
@ -765,7 +765,7 @@ lemonldap-ng (1.4.0) stable; urgency=low
|
||||||
* [LEMONLDAP-712] - strange behaviour with session cache
|
* [LEMONLDAP-712] - strange behaviour with session cache
|
||||||
* [LEMONLDAP-386] - use LL::NG::Handler instead of custom perl module in apache config
|
* [LEMONLDAP-386] - use LL::NG::Handler instead of custom perl module in apache config
|
||||||
* [LEMONLDAP-430] - httpSession and updateSession + deleteSessionFromLocalStorage optimization
|
* [LEMONLDAP-430] - httpSession and updateSession + deleteSessionFromLocalStorage optimization
|
||||||
* [LEMONLDAP-591] - Portal should refresh their configuration cache on expiration
|
* [LEMONLDAP-591] - Portal should refresh their configuration cache on expiration
|
||||||
* [LEMONLDAP-600] - Rewrite object libs with Moo or Mouse
|
* [LEMONLDAP-600] - Rewrite object libs with Moo or Mouse
|
||||||
* [LEMONLDAP-636] - Manage exported variables per UserDB module
|
* [LEMONLDAP-636] - Manage exported variables per UserDB module
|
||||||
* [LEMONLDAP-648] - Build French documentation in Makefile
|
* [LEMONLDAP-648] - Build French documentation in Makefile
|
||||||
|
@ -868,7 +868,7 @@ lemonldap-ng (1.3.0) stable; urgency=low
|
||||||
Common
|
Common
|
||||||
* [LEMONLDAP-412] - Passwrd policy expiration warning time not friendly
|
* [LEMONLDAP-412] - Passwrd policy expiration warning time not friendly
|
||||||
displayed
|
displayed
|
||||||
* [LEMONLDAP-493] - Make LL::NG's rpm spec file more portable
|
* [LEMONLDAP-493] - Make LL::NG's rpm spec file more portable
|
||||||
* [LEMONLDAP-500] - do not burden config in memory with useless things
|
* [LEMONLDAP-500] - do not burden config in memory with useless things
|
||||||
* [LEMONLDAP-524] - minimize weight of relaystate in SAML session backend
|
* [LEMONLDAP-524] - minimize weight of relaystate in SAML session backend
|
||||||
* [LEMONLDAP-559] - Refine useXForwardedForIP option by setting trusted
|
* [LEMONLDAP-559] - Refine useXForwardedForIP option by setting trusted
|
||||||
|
@ -900,7 +900,7 @@ lemonldap-ng (1.3.0) stable; urgency=low
|
||||||
session
|
session
|
||||||
* [LEMONLDAP-613] - Log applied rule in debug mode
|
* [LEMONLDAP-613] - Log applied rule in debug mode
|
||||||
* [LEMONLDAP-615] - Add AuthGoogle module
|
* [LEMONLDAP-615] - Add AuthGoogle module
|
||||||
* [LEMONLDAP-617] - [SAML] Allow to skip the IDP selection
|
* [LEMONLDAP-617] - [SAML] Allow to skip the IDP selection
|
||||||
* [LEMONLDAP-621] - Config storage in JSON file
|
* [LEMONLDAP-621] - Config storage in JSON file
|
||||||
* [LEMONLDAP-623] - WebID authentication and user DB modules
|
* [LEMONLDAP-623] - WebID authentication and user DB modules
|
||||||
* [LEMONLDAP-632] - Rename liblemonldap-ng-conf-perl to
|
* [LEMONLDAP-632] - Rename liblemonldap-ng-conf-perl to
|
||||||
|
@ -1065,7 +1065,7 @@ lemonldap-ng (1.2.0) stable; urgency=low
|
||||||
* [LEMONLDAP-371] - custom function declaration doesn't work through
|
* [LEMONLDAP-371] - custom function declaration doesn't work through
|
||||||
management UI
|
management UI
|
||||||
* [LEMONLDAP-373] - Field values lost in manager
|
* [LEMONLDAP-373] - Field values lost in manager
|
||||||
* [LEMONLDAP-375] - empty query string in redirect url
|
* [LEMONLDAP-375] - empty query string in redirect url
|
||||||
* [LEMONLDAP-376] - wrong authentication mode stored in session with
|
* [LEMONLDAP-376] - wrong authentication mode stored in session with
|
||||||
authMulti when SSLRequire set to 0
|
authMulti when SSLRequire set to 0
|
||||||
* [LEMONLDAP-380] - Mail reset session not destroyed when password is
|
* [LEMONLDAP-380] - Mail reset session not destroyed when password is
|
||||||
|
@ -1105,7 +1105,7 @@ lemonldap-ng (1.2.0) stable; urgency=low
|
||||||
* [LEMONLDAP-446] - Server error when a password mail reset session is
|
* [LEMONLDAP-446] - Server error when a password mail reset session is
|
||||||
unavailable and the token is passed to mail.pl
|
unavailable and the token is passed to mail.pl
|
||||||
* [LEMONLDAP-447] - Bad identifier in grantSession logs
|
* [LEMONLDAP-447] - Bad identifier in grantSession logs
|
||||||
* [LEMONLDAP-448] - defined(%hash) is deprecated
|
* [LEMONLDAP-448] - defined(%hash) is deprecated
|
||||||
* [LEMONLDAP-450] - SAML Authn not working with binding HTTP Redirect
|
* [LEMONLDAP-450] - SAML Authn not working with binding HTTP Redirect
|
||||||
* [LEMONLDAP-454] - Replace $ip with client IP in forging HTTP headers
|
* [LEMONLDAP-454] - Replace $ip with client IP in forging HTTP headers
|
||||||
doesn't work
|
doesn't work
|
||||||
|
@ -1280,14 +1280,14 @@ lemonldap-ng (1.1.0) stable; urgency=low
|
||||||
* [LEMONLDAP-348] - Possibility to access menu tab with an URL
|
* [LEMONLDAP-348] - Possibility to access menu tab with an URL
|
||||||
|
|
||||||
lemonldap-ng (1.0.6) stable; urgency=low
|
lemonldap-ng (1.0.6) stable; urgency=low
|
||||||
|
|
||||||
* [LEMONLDAP-297] - LDAP attributes are not explicitely requested
|
* [LEMONLDAP-297] - LDAP attributes are not explicitely requested
|
||||||
* [LEMONLDAP-298] - Multi option with # not accepted in Manager
|
* [LEMONLDAP-298] - Multi option with # not accepted in Manager
|
||||||
* [LEMONLDAP-304] - Cannot use spaces between values of Multi
|
* [LEMONLDAP-304] - Cannot use spaces between values of Multi
|
||||||
authentication
|
authentication
|
||||||
parameter
|
parameter
|
||||||
* [LEMONLDAP-305] - Parameters are not overriden in the first Multi module
|
* [LEMONLDAP-305] - Parameters are not overriden in the first Multi module
|
||||||
* [LEMONLDAP-307] - Base64 encoded IDs can contain more than one "/", but
|
* [LEMONLDAP-307] - Base64 encoded IDs can contain more than one "/", but
|
||||||
only the first is escaped
|
only the first is escaped
|
||||||
|
|
||||||
lemonldap-ng (1.0.5) stable; urgency=low
|
lemonldap-ng (1.0.5) stable; urgency=low
|
||||||
|
@ -1983,7 +1983,7 @@ lemonldap-ng (0.7b11) unstable; urgency=low
|
||||||
* New features:
|
* New features:
|
||||||
- Cross Domain Authentication
|
- Cross Domain Authentication
|
||||||
- SOAP configuration access
|
- SOAP configuration access
|
||||||
- READMEs and documentation update
|
- READMEs and documentation update
|
||||||
|
|
||||||
-- Xavier Guimard <x.guimard@free.fr> Tue, 27 Feb 2007 15:01:09 +0100
|
-- Xavier Guimard <x.guimard@free.fr> Tue, 27 Feb 2007 15:01:09 +0100
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ respawn
|
||||||
|
|
||||||
pre-start script
|
pre-start script
|
||||||
[ -x /usr/sbin/llng-fastcgi-server ] || { stop; exit 0; }
|
[ -x /usr/sbin/llng-fastcgi-server ] || { stop; exit 0; }
|
||||||
end script
|
end script
|
||||||
|
|
||||||
exec mkdir /var/run/llng-fastcgi-server; chown www-data:www-data /var/run/llng-fastcgi-server && /usr/sbin/llng-fastcgi-server -u www-data -g www-data -s /var/run/llng-fastcgi-server/llng-fastcgi.sock -p /var/run/llng-fastcgi-server/llng-fastcgi-server.pid
|
exec mkdir /var/run/llng-fastcgi-server; chown www-data:www-data /var/run/llng-fastcgi-server && /usr/sbin/llng-fastcgi-server -u www-data -g www-data -s /var/run/llng-fastcgi-server/llng-fastcgi.sock -p /var/run/llng-fastcgi-server/llng-fastcgi-server.pid
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ for LLLIB in $LIST; do
|
||||||
if [ -f "$SKIPLIST" ]; then
|
if [ -f "$SKIPLIST" ]; then
|
||||||
grep -v '^ *#' "$SKIPLIST" |grep -v '^ *$' > "$SKIPTMP"
|
grep -v '^ *#' "$SKIPLIST" |grep -v '^ *$' > "$SKIPTMP"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for T in $(run-parts --list --regex '(^[a-z0-9.]+$)' ${TESTDIR} | \
|
for T in $(run-parts --list --regex '(^[a-z0-9.]+$)' ${TESTDIR} | \
|
||||||
grep -v -F -f "$SKIPTMP") ; do
|
grep -v -F -f "$SKIPTMP") ; do
|
||||||
if echo "$T" | grep -q '\.t$'
|
if echo "$T" | grep -q '\.t$'
|
||||||
|
|
|
@ -60,7 +60,7 @@ describe('00 Lemonldap::NG', function() {
|
||||||
it('should authenticate with history', function() {
|
it('should authenticate with history', function() {
|
||||||
expect(browser.driver.findElement(by.css('[trspan="back2Portal"]')).getText()).toEqual('Retourner au portail');
|
expect(browser.driver.findElement(by.css('[trspan="back2Portal"]')).getText()).toEqual('Retourner au portail');
|
||||||
browser.driver.findElement(by.css('[trspan="back2Portal"]')).click();
|
browser.driver.findElement(by.css('[trspan="back2Portal"]')).click();
|
||||||
|
|
||||||
// Failed login attempt
|
// Failed login attempt
|
||||||
browser.driver.findElement(by.xpath("//input[@name='user']")).sendKeys('dwho');
|
browser.driver.findElement(by.xpath("//input[@name='user']")).sendKeys('dwho');
|
||||||
browser.driver.findElement(by.xpath("//input[@name='password']")).sendKeys('ohwd');
|
browser.driver.findElement(by.xpath("//input[@name='password']")).sendKeys('ohwd');
|
||||||
|
@ -68,7 +68,7 @@ describe('00 Lemonldap::NG', function() {
|
||||||
browser.driver.findElement(by.xpath("//button[@type='submit']")).click();
|
browser.driver.findElement(by.xpath("//button[@type='submit']")).click();
|
||||||
expect(browser.driver.findElement(by.css('[trmsg="5"]')).getText()).toEqual('Mot de passe ou identifiant incorrect');
|
expect(browser.driver.findElement(by.css('[trmsg="5"]')).getText()).toEqual('Mot de passe ou identifiant incorrect');
|
||||||
browser.driver.findElement(by.css('[trspan="goToPortal"]')).click();
|
browser.driver.findElement(by.css('[trspan="goToPortal"]')).click();
|
||||||
|
|
||||||
// Login attempt
|
// Login attempt
|
||||||
browser.driver.findElement(by.xpath("//input[@name='user']")).sendKeys('dwho');
|
browser.driver.findElement(by.xpath("//input[@name='user']")).sendKeys('dwho');
|
||||||
browser.driver.findElement(by.xpath("//input[@name='password']")).sendKeys('dwho');
|
browser.driver.findElement(by.xpath("//input[@name='password']")).sendKeys('dwho');
|
||||||
|
@ -111,4 +111,4 @@ describe('00 Lemonldap::NG', function() {
|
||||||
browser.driver.findElement(by.xpath("//button[@type='submit']")).click();
|
browser.driver.findElement(by.xpath("//button[@type='submit']")).click();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -64,7 +64,7 @@ describe('10 Lemonldap::NG', function() {
|
||||||
expect(links[2].getText()).toEqual('Gestionnaire 2ndFA');
|
expect(links[2].getText()).toEqual('Gestionnaire 2ndFA');
|
||||||
expect(links[3].getText()).toEqual('Aller au portail');
|
expect(links[3].getText()).toEqual('Aller au portail');
|
||||||
expect(browser.driver.findElement(by.css('[trspan="yourNewTotpKey"]')).getText()).toEqual('Votre nouvelle clef TOTP. Testez-la et entrez le code');
|
expect(browser.driver.findElement(by.css('[trspan="yourNewTotpKey"]')).getText()).toEqual('Votre nouvelle clef TOTP. Testez-la et entrez le code');
|
||||||
|
|
||||||
// Submit an empty form
|
// Submit an empty form
|
||||||
browser.driver.findElement(by.id('verify')).click();
|
browser.driver.findElement(by.id('verify')).click();
|
||||||
expect(browser.driver.findElement(by.css('[trspan="yourNewTotpKey"]')).getText()).toEqual('Remplissez le formulaire');
|
expect(browser.driver.findElement(by.css('[trspan="yourNewTotpKey"]')).getText()).toEqual('Remplissez le formulaire');
|
||||||
|
|
|
@ -8,7 +8,7 @@ respawn
|
||||||
|
|
||||||
pre-start script
|
pre-start script
|
||||||
[ -x /usr/sbin/llng-fastcgi-server ] || { stop; exit 0; }
|
[ -x /usr/sbin/llng-fastcgi-server ] || { stop; exit 0; }
|
||||||
end script
|
end script
|
||||||
|
|
||||||
exec mkdir __FASTCGISOCKDIR__; chown __USER__:__GROUP__ __FASTCGISOCKDIR__ && /usr/sbin/llng-fastcgi-server -u __USER__ -g __GROUP__ -s __FASTCGISOCKDIR__/llng-fastcgi.sock -p __FASTCGISOCKDIR__/llng-fastcgi-server.pid
|
exec mkdir __FASTCGISOCKDIR__; chown __USER__:__GROUP__ __FASTCGISOCKDIR__ && /usr/sbin/llng-fastcgi-server -u __USER__ -g __GROUP__ -s __FASTCGISOCKDIR__/llng-fastcgi.sock -p __FASTCGISOCKDIR__/llng-fastcgi-server.pid
|
||||||
|
|
||||||
|
|
|
@ -347,7 +347,7 @@ __DATA__
|
||||||
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
|
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
|
||||||
</AttributeAuthorityDescriptor>
|
</AttributeAuthorityDescriptor>
|
||||||
</TMPL_UNLESS>
|
</TMPL_UNLESS>
|
||||||
|
|
||||||
<Organization>
|
<Organization>
|
||||||
<OrganizationName xml:lang="en"><TMPL_VAR NAME="samlOrganizationName"></OrganizationName>
|
<OrganizationName xml:lang="en"><TMPL_VAR NAME="samlOrganizationName"></OrganizationName>
|
||||||
<OrganizationDisplayName xml:lang="en"><TMPL_VAR NAME="samlOrganizationDisplayName"></OrganizationDisplayName>
|
<OrganizationDisplayName xml:lang="en"><TMPL_VAR NAME="samlOrganizationDisplayName"></OrganizationDisplayName>
|
||||||
|
|
|
@ -481,7 +481,7 @@ Syslog facility. If empty, STDERR will be used for logging
|
||||||
|
|
||||||
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Portal>, L<Lemonldap::NG::Handler>,
|
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Portal>, L<Lemonldap::NG::Handler>,
|
||||||
L<Plack>, L<PSGI>, L<Lemonldap::NG::Common::PSGI::Router>,
|
L<Plack>, L<PSGI>, L<Lemonldap::NG::Common::PSGI::Router>,
|
||||||
L<Lemonldap::NG::Common::PSGI::Request>, L<HTML::Template>,
|
L<Lemonldap::NG::Common::PSGI::Request>, L<HTML::Template>,
|
||||||
|
|
||||||
=head1 AUTHORS
|
=head1 AUTHORS
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,7 @@ Example:
|
||||||
# Set headers
|
# Set headers
|
||||||
$req->respHeaders( "Location" => "http://x.y.z/", Etag => "XYZ", );
|
$req->respHeaders( "Location" => "http://x.y.z/", Etag => "XYZ", );
|
||||||
# Add header
|
# Add header
|
||||||
$req->respHeaders->{"X-Key"} = "Value";
|
$req->respHeaders->{"X-Key"} = "Value";
|
||||||
|
|
||||||
=head2 set_param( $key, $value )
|
=head2 set_param( $key, $value )
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ contains "application/json" or "text/json").
|
||||||
|
|
||||||
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Common::PSGI>,
|
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Common::PSGI>,
|
||||||
L<Lemonldap::NG::Hander::PSGI>, L<Plack::Request>,
|
L<Lemonldap::NG::Hander::PSGI>, L<Plack::Request>,
|
||||||
L<Lemonldap::NG::Portal::Main::Constants>,
|
L<Lemonldap::NG::Portal::Main::Constants>,
|
||||||
|
|
||||||
=head1 AUTHORS
|
=head1 AUTHORS
|
||||||
|
|
||||||
|
|
|
@ -322,7 +322,7 @@ bookId parameter will be stored in $req->params('bookId');
|
||||||
|
|
||||||
$self->addRoute( books => { ':bookId' => { pages => { ':pageId' => 'page' } } }, ['GET'] );
|
$self->addRoute( books => { ':bookId' => { pages => { ':pageId' => 'page' } } }, ['GET'] );
|
||||||
|
|
||||||
=item to manage simultaneously the 2 previous examples
|
=item to manage simultaneously the 2 previous examples
|
||||||
|
|
||||||
$self->addRoute( books => { ':bookId' => { pages => { ':pageId' => 'page' } } }, ['GET'] )
|
$self->addRoute( books => { ':bookId' => { pages => { ':pageId' => 'page' } } }, ['GET'] )
|
||||||
->addRoute( books => { ':bookId' => { '*' => 'book' } }, ['GET'] );
|
->addRoute( books => { ':bookId' => { '*' => 'book' } }, ['GET'] );
|
||||||
|
@ -349,7 +349,7 @@ logLevel, staticPrefix, templateDir, links, syslog).
|
||||||
|
|
||||||
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Portal>, L<Lemonldap::NG::Handler>,
|
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Portal>, L<Lemonldap::NG::Handler>,
|
||||||
L<Plack>, L<PSGI>, L<Lemonldap::NG::Common::PSGI>,
|
L<Plack>, L<PSGI>, L<Lemonldap::NG::Common::PSGI>,
|
||||||
L<Lemonldap::NG::Common::PSGI::Request>, L<HTML::Template>,
|
L<Lemonldap::NG::Common::PSGI::Request>, L<HTML::Template>,
|
||||||
|
|
||||||
=head1 AUTHORS
|
=head1 AUTHORS
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ Returns a list of groups to which user belongs.
|
||||||
|
|
||||||
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Portal>, L<Lemonldap::NG::Handler>,
|
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Portal>, L<Lemonldap::NG::Handler>,
|
||||||
L<Plack>, L<PSGI>, L<Lemonldap::NG::Common::PSGI::Router>,
|
L<Plack>, L<PSGI>, L<Lemonldap::NG::Common::PSGI::Router>,
|
||||||
L<Lemonldap::NG::Common::PSGI::Request>, L<HTML::Template>,
|
L<Lemonldap::NG::Common::PSGI::Request>, L<HTML::Template>,
|
||||||
|
|
||||||
=head1 AUTHORS
|
=head1 AUTHORS
|
||||||
|
|
||||||
|
|
|
@ -119,7 +119,7 @@ Returns a list of groups to which user belongs.
|
||||||
|
|
||||||
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Portal>, L<Lemonldap::NG::Handler>,
|
L<http://lemonldap-ng.org/>, L<Lemonldap::NG::Portal>, L<Lemonldap::NG::Handler>,
|
||||||
L<Plack>, L<PSGI>, L<Lemonldap::NG::Common::PSGI::Router>,
|
L<Plack>, L<PSGI>, L<Lemonldap::NG::Common::PSGI::Router>,
|
||||||
L<Lemonldap::NG::Common::PSGI::Request>, L<HTML::Template>,
|
L<Lemonldap::NG::Common::PSGI::Request>, L<HTML::Template>,
|
||||||
|
|
||||||
=head1 AUTHORS
|
=head1 AUTHORS
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
+-> if protected:
|
+-> if protected:
|
||||||
Handler::PSGI::Base::_authAndTrace()
|
Handler::PSGI::Base::_authAndTrace()
|
||||||
|
|
||||||
|
|
||||||
_Common::PSGI::run()_ returns a subroutine
|
_Common::PSGI::run()_ returns a subroutine
|
||||||
|
|
||||||
## HTTP responses
|
## HTTP responses
|
||||||
|
|
|
@ -339,7 +339,7 @@ our %EXPORT_TAGS = (
|
||||||
APPLYSECTION
|
APPLYSECTION
|
||||||
NO
|
NO
|
||||||
\$hashParameters
|
\$hashParameters
|
||||||
\@sessionTypes
|
\@sessionTypes
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
@ -735,7 +735,7 @@ some words for other developpers
|
||||||
if test is not defined for this type or if test must
|
if test is not defined for this type or if test must
|
||||||
be more restrictive, set here a regular expression or a subroutine. Arguments
|
be more restrictive, set here a regular expression or a subroutine. Arguments
|
||||||
passed to subroutine are (keyValue, newConf, currentKey). It returns 2
|
passed to subroutine are (keyValue, newConf, currentKey). It returns 2
|
||||||
arguments: a boolean result and a message (if non empty message will be
|
arguments: a boolean result and a message (if non empty message will be
|
||||||
displayed as warning or error depending of result);
|
displayed as warning or error depending of result);
|
||||||
|
|
||||||
=item msgFail (optional):
|
=item msgFail (optional):
|
||||||
|
|
|
@ -5241,7 +5241,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
|
||||||
|
|
||||||
if (tooltip) {
|
if (tooltip) {
|
||||||
tooltip.remove();
|
tooltip.remove();
|
||||||
|
|
||||||
tooltip = null;
|
tooltip = null;
|
||||||
if (adjustmentTimeout) {
|
if (adjustmentTimeout) {
|
||||||
$timeout.cancel(adjustmentTimeout);
|
$timeout.cancel(adjustmentTimeout);
|
||||||
|
@ -5249,7 +5249,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
|
||||||
}
|
}
|
||||||
|
|
||||||
openedTooltips.remove(ttScope);
|
openedTooltips.remove(ttScope);
|
||||||
|
|
||||||
if (tooltipLinkedScope) {
|
if (tooltipLinkedScope) {
|
||||||
tooltipLinkedScope.$destroy();
|
tooltipLinkedScope.$destroy();
|
||||||
tooltipLinkedScope = null;
|
tooltipLinkedScope = null;
|
||||||
|
@ -7773,4 +7773,4 @@ angular.module('ui.bootstrap.position').run(function() {!angular.$$csp().noInlin
|
||||||
angular.module('ui.bootstrap.datepickerPopup').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibDatepickerpopupCss && angular.element(document).find('head').prepend('<style type="text/css">.uib-datepicker-popup.dropdown-menu{display:block;float:none;margin:0;}.uib-button-bar{padding:10px 9px 2px;}</style>'); angular.$$uibDatepickerpopupCss = true; });
|
angular.module('ui.bootstrap.datepickerPopup').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibDatepickerpopupCss && angular.element(document).find('head').prepend('<style type="text/css">.uib-datepicker-popup.dropdown-menu{display:block;float:none;margin:0;}.uib-button-bar{padding:10px 9px 2px;}</style>'); angular.$$uibDatepickerpopupCss = true; });
|
||||||
angular.module('ui.bootstrap.tooltip').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTooltipCss && angular.element(document).find('head').prepend('<style type="text/css">[uib-tooltip-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-bottom > .tooltip-arrow,[uib-popover-popup].popover.top-left > .arrow,[uib-popover-popup].popover.top-right > .arrow,[uib-popover-popup].popover.bottom-left > .arrow,[uib-popover-popup].popover.bottom-right > .arrow,[uib-popover-popup].popover.left-top > .arrow,[uib-popover-popup].popover.left-bottom > .arrow,[uib-popover-popup].popover.right-top > .arrow,[uib-popover-popup].popover.right-bottom > .arrow,[uib-popover-html-popup].popover.top-left > .arrow,[uib-popover-html-popup].popover.top-right > .arrow,[uib-popover-html-popup].popover.bottom-left > .arrow,[uib-popover-html-popup].popover.bottom-right > .arrow,[uib-popover-html-popup].popover.left-top > .arrow,[uib-popover-html-popup].popover.left-bottom > .arrow,[uib-popover-html-popup].popover.right-top > .arrow,[uib-popover-html-popup].popover.right-bottom > .arrow,[uib-popover-template-popup].popover.top-left > .arrow,[uib-popover-template-popup].popover.top-right > .arrow,[uib-popover-template-popup].popover.bottom-left > .arrow,[uib-popover-template-popup].popover.bottom-right > .arrow,[uib-popover-template-popup].popover.left-top > .arrow,[uib-popover-template-popup].popover.left-bottom > .arrow,[uib-popover-template-popup].popover.right-top > .arrow,[uib-popover-template-popup].popover.right-bottom > .arrow{top:auto;bottom:auto;left:auto;right:auto;margin:0;}[uib-popover-popup].popover,[uib-popover-html-popup].popover,[uib-popover-template-popup].popover{display:block !important;}</style>'); angular.$$uibTooltipCss = true; });
|
angular.module('ui.bootstrap.tooltip').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTooltipCss && angular.element(document).find('head').prepend('<style type="text/css">[uib-tooltip-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-bottom > .tooltip-arrow,[uib-popover-popup].popover.top-left > .arrow,[uib-popover-popup].popover.top-right > .arrow,[uib-popover-popup].popover.bottom-left > .arrow,[uib-popover-popup].popover.bottom-right > .arrow,[uib-popover-popup].popover.left-top > .arrow,[uib-popover-popup].popover.left-bottom > .arrow,[uib-popover-popup].popover.right-top > .arrow,[uib-popover-popup].popover.right-bottom > .arrow,[uib-popover-html-popup].popover.top-left > .arrow,[uib-popover-html-popup].popover.top-right > .arrow,[uib-popover-html-popup].popover.bottom-left > .arrow,[uib-popover-html-popup].popover.bottom-right > .arrow,[uib-popover-html-popup].popover.left-top > .arrow,[uib-popover-html-popup].popover.left-bottom > .arrow,[uib-popover-html-popup].popover.right-top > .arrow,[uib-popover-html-popup].popover.right-bottom > .arrow,[uib-popover-template-popup].popover.top-left > .arrow,[uib-popover-template-popup].popover.top-right > .arrow,[uib-popover-template-popup].popover.bottom-left > .arrow,[uib-popover-template-popup].popover.bottom-right > .arrow,[uib-popover-template-popup].popover.left-top > .arrow,[uib-popover-template-popup].popover.left-bottom > .arrow,[uib-popover-template-popup].popover.right-top > .arrow,[uib-popover-template-popup].popover.right-bottom > .arrow{top:auto;bottom:auto;left:auto;right:auto;margin:0;}[uib-popover-popup].popover,[uib-popover-html-popup].popover,[uib-popover-template-popup].popover{display:block !important;}</style>'); angular.$$uibTooltipCss = true; });
|
||||||
angular.module('ui.bootstrap.timepicker').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTimepickerCss && angular.element(document).find('head').prepend('<style type="text/css">.uib-time input{width:50px;}</style>'); angular.$$uibTimepickerCss = true; });
|
angular.module('ui.bootstrap.timepicker').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTimepickerCss && angular.element(document).find('head').prepend('<style type="text/css">.uib-time input{width:50px;}</style>'); angular.$$uibTimepickerCss = true; });
|
||||||
angular.module('ui.bootstrap.typeahead').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTypeaheadCss && angular.element(document).find('head').prepend('<style type="text/css">[uib-typeahead-popup].dropdown-menu{display:block;}</style>'); angular.$$uibTypeaheadCss = true; });
|
angular.module('ui.bootstrap.typeahead').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTypeaheadCss && angular.element(document).find('head').prepend('<style type="text/css">[uib-typeahead-popup].dropdown-menu{display:block;}</style>'); angular.$$uibTypeaheadCss = true; });
|
||||||
|
|
|
@ -383,12 +383,12 @@
|
||||||
if (element.prop('tagName').toLowerCase() === 'table') {
|
if (element.prop('tagName').toLowerCase() === 'table') {
|
||||||
scope.$emptyElm = angular.element($window.document.createElement('tr'));
|
scope.$emptyElm = angular.element($window.document.createElement('tr'));
|
||||||
$trElm = element.find('tr');
|
$trElm = element.find('tr');
|
||||||
|
|
||||||
//If we can find a tr, then we can use its td children as the empty element colspan.
|
//If we can find a tr, then we can use its td children as the empty element colspan.
|
||||||
if ($trElm.length > 0) {
|
if ($trElm.length > 0) {
|
||||||
emptyElmColspan = angular.element($trElm).children().length;
|
emptyElmColspan = angular.element($trElm).children().length;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
//If not, by setting a huge colspan we make sure it takes full width.
|
//If not, by setting a huge colspan we make sure it takes full width.
|
||||||
//TODO(jcarter): Check for negative side effects.
|
//TODO(jcarter): Check for negative side effects.
|
||||||
emptyElmColspan = 1000000;
|
emptyElmColspan = 1000000;
|
||||||
|
@ -1512,7 +1512,7 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the event object for touches.
|
* Get the event object for touches.
|
||||||
*
|
*
|
||||||
* @param {MouseEvent|TouchEvent} e MouseEvent or TouchEvent that kicked off dragX method.
|
* @param {MouseEvent|TouchEvent} e MouseEvent or TouchEvent that kicked off dragX method.
|
||||||
* @return {MouseEvent|TouchEvent} Object returned as original event object.
|
* @return {MouseEvent|TouchEvent} Object returned as original event object.
|
||||||
*/
|
*/
|
||||||
|
@ -1530,7 +1530,7 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate object used to store data about node being moved.
|
* Generate object used to store data about node being moved.
|
||||||
*
|
*
|
||||||
* {angular.$scope} node Scope of the node that is being moved.
|
* {angular.$scope} node Scope of the node that is being moved.
|
||||||
*/
|
*/
|
||||||
dragInfo: function (node) {
|
dragInfo: function (node) {
|
||||||
|
@ -1760,19 +1760,19 @@
|
||||||
pos.nowX = pageX;
|
pos.nowX = pageX;
|
||||||
pos.nowY = pageY;
|
pos.nowY = pageY;
|
||||||
|
|
||||||
//Distance mouse moved between events.
|
//Distance mouse moved between events.
|
||||||
pos.distX = pos.nowX - pos.lastX;
|
pos.distX = pos.nowX - pos.lastX;
|
||||||
pos.distY = pos.nowY - pos.lastY;
|
pos.distY = pos.nowY - pos.lastY;
|
||||||
|
|
||||||
//Direction mouse was moving.
|
//Direction mouse was moving.
|
||||||
pos.lastDirX = pos.dirX;
|
pos.lastDirX = pos.dirX;
|
||||||
pos.lastDirY = pos.dirY;
|
pos.lastDirY = pos.dirY;
|
||||||
|
|
||||||
//Direction mouse is now moving (on both axis).
|
//Direction mouse is now moving (on both axis).
|
||||||
pos.dirX = pos.distX === 0 ? 0 : pos.distX > 0 ? 1 : -1;
|
pos.dirX = pos.distX === 0 ? 0 : pos.distX > 0 ? 1 : -1;
|
||||||
pos.dirY = pos.distY === 0 ? 0 : pos.distY > 0 ? 1 : -1;
|
pos.dirY = pos.distY === 0 ? 0 : pos.distY > 0 ? 1 : -1;
|
||||||
|
|
||||||
//Axis mouse is now moving on.
|
//Axis mouse is now moving on.
|
||||||
newAx = Math.abs(pos.distX) > Math.abs(pos.distY) ? 1 : 0;
|
newAx = Math.abs(pos.distX) > Math.abs(pos.distY) ? 1 : 0;
|
||||||
|
|
||||||
//Do nothing on first move.
|
//Do nothing on first move.
|
||||||
|
@ -1782,7 +1782,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Calc distance moved on this axis (and direction).
|
//Calc distance moved on this axis (and direction).
|
||||||
if (pos.dirAx !== newAx) {
|
if (pos.dirAx !== newAx) {
|
||||||
pos.distAxX = 0;
|
pos.distAxX = 0;
|
||||||
pos.distAxY = 0;
|
pos.distAxY = 0;
|
||||||
|
@ -1853,4 +1853,4 @@
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<span ng-if="!currentCfg.next" trspan="currentConfiguration"></span>
|
<span ng-if="!currentCfg.next" trspan="currentConfiguration"></span>
|
||||||
<span ng-if="currentCfg.next" trspan="loadedConfiguration"></span>
|
<span ng-if="currentCfg.next" trspan="loadedConfiguration"></span>
|
||||||
<i ng-if="currentCfg.prev">(<a trspan="diffWithPrevious" target="_blank" href="{{scriptname}}/diff.html#!/{{currentCfg.cfgNum}}" role="link"></a>)</i>
|
<i ng-if="currentCfg.prev">(<a trspan="diffWithPrevious" target="_blank" href="{{scriptname}}/diff.html#!/{{currentCfg.cfgNum}}" role="link"></a>)</i>
|
||||||
|
|
||||||
</h3>
|
</h3>
|
||||||
</TMPL_IF>
|
</TMPL_IF>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<span ng-if="!currentCfg.next" trspan="currentConfiguration"></span>
|
<span ng-if="!currentCfg.next" trspan="currentConfiguration"></span>
|
||||||
<span ng-if="currentCfg.next" trspan="loadedConfiguration"></span>
|
<span ng-if="currentCfg.next" trspan="loadedConfiguration"></span>
|
||||||
<i ng-if="currentCfg.prev && allowDiff">(<a trspan="diffWithPrevious" target="_blank" href="{{scriptname}}/viewDiff.html#!/{{currentCfg.cfgNum}}" role="link"></a>)</i>
|
<i ng-if="currentCfg.prev && allowDiff">(<a trspan="diffWithPrevious" target="_blank" href="{{scriptname}}/viewDiff.html#!/{{currentCfg.cfgNum}}" role="link"></a>)</i>
|
||||||
|
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
|
|
|
@ -37,10 +37,10 @@
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Tree -->
|
<!-- Tree -->
|
||||||
|
|
||||||
<div class="text-center"><p class="badge">{{total}} <span trspan="session_s"></span></p></div>
|
<div class="text-center"><p class="badge">{{total}} <span trspan="session_s"></span></p></div>
|
||||||
<div class="region region-sidebar-first">
|
<div class="region region-sidebar-first">
|
||||||
<section id="block-superfish-1" class="block block-superfish clearfix">
|
<section id="block-superfish-1" class="block block-superfish clearfix">
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<!-- Right(main) div -->
|
<!-- Right(main) div -->
|
||||||
<div id="right" class="col-lg-8 col-md-8 col-sm-7 col-xs-12 scrollable" ng-class="{'hidden-xs':showT&&!showM}">
|
<div id="right" class="col-lg-8 col-md-8 col-sm-7 col-xs-12 scrollable" ng-class="{'hidden-xs':showT&&!showM}">
|
||||||
<div class="panel panel-default" ng-hide="currentSession===null">
|
<div class="panel panel-default" ng-hide="currentSession===null">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h1 class="panel-title text-center">{{translate("sessionTitle")}} {{currentSession.id}}</h1>
|
<h1 class="panel-title text-center">{{translate("sessionTitle")}} {{currentSession.id}}</h1>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
<div class="navbar-collapse" ng-class="{'collapse':!showM}" id="formmenu">
|
<div class="navbar-collapse" ng-class="{'collapse':!showM}" id="formmenu">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li><a class="link" ng-click="home()"><i class="glyphicon glyphicon-home"></i></a></li>
|
<li><a class="link" ng-click="home()"><i class="glyphicon glyphicon-home"></i></a></li>
|
||||||
|
|
||||||
<TMPL_IF NAME="ALLOWBROWSER">
|
<TMPL_IF NAME="ALLOWBROWSER">
|
||||||
<li uib-dropdown>
|
<li uib-dropdown>
|
||||||
<a id="navmenu" name="menu" uib-dropdown-toggle data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="glyphicon glyphicon-cog"></i> {{translate('browse')}} <span class="caret"></span></a>
|
<a id="navmenu" name="menu" uib-dropdown-toggle data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><i class="glyphicon glyphicon-cog"></i> {{translate('browse')}} <span class="caret"></span></a>
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<i class="glyphicon glyphicon-lock"></i>
|
<i class="glyphicon glyphicon-lock"></i>
|
||||||
<u>{{translate('readOnlyMode')}}</u>
|
<u>{{translate('readOnlyMode')}}</u>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<iframe id="helpframe" width="100%" height="100%" ng-src="{{translate('/doc/')+'pages/documentation/current/'+helpUrl}}" frameborder="0"></iframe>
|
<iframe id="helpframe" width="100%" height="100%" ng-src="{{translate('/doc/')+'pages/documentation/current/'+helpUrl}}" frameborder="0"></iframe>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3423,8 +3423,8 @@ Send logout request to a provider
|
||||||
|
|
||||||
Send logout response issue from a logout request to all other
|
Send logout response issue from a logout request to all other
|
||||||
providers. If information have to be displayed to users, such as
|
providers. If information have to be displayed to users, such as
|
||||||
iframe to send HTTP-Redirect or HTTP-POST logout request, then
|
iframe to send HTTP-Redirect or HTTP-POST logout request, then
|
||||||
$self->{_info} will be updated.
|
$self->{_info} will be updated.
|
||||||
|
|
||||||
=head2 checkSignatureStatus
|
=head2 checkSignatureStatus
|
||||||
|
|
||||||
|
|
|
@ -158,7 +158,7 @@ L<Lemonldap::NG::Portal> second factor plugins.
|
||||||
# If self registration is enabled and "activation" is set to "enabled",
|
# If self registration is enabled and "activation" is set to "enabled",
|
||||||
# replace the rule to detect if user has registered a device key.
|
# replace the rule to detect if user has registered a device key.
|
||||||
# The rule must be like this :
|
# The rule must be like this :
|
||||||
# By example :
|
# By example :
|
||||||
$self->conf->{u2fActivation} = '$_2fDevices =~ /"type":\s*"U2F"/s'
|
$self->conf->{u2fActivation} = '$_2fDevices =~ /"type":\s*"U2F"/s'
|
||||||
# Optionally, the rule can be : '$_2fDevices and $_2fDevices =~ /"type":\s*"U2F"/s'
|
# Optionally, the rule can be : '$_2fDevices and $_2fDevices =~ /"type":\s*"U2F"/s'
|
||||||
# to avoid warning due to undef variable
|
# to avoid warning due to undef variable
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</TMPL_IF>
|
</TMPL_IF>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -61,11 +61,11 @@
|
||||||
<script type="text/javascript" src="<TMPL_VAR NAME="STATIC_PREFIX">common/js/idpchoice.min.js"></script>
|
<script type="text/javascript" src="<TMPL_VAR NAME="STATIC_PREFIX">common/js/idpchoice.min.js"></script>
|
||||||
//else -->
|
//else -->
|
||||||
<script type="text/javascript" src="<TMPL_VAR NAME="STATIC_PREFIX">common/js/idpchoice.js"></script>
|
<script type="text/javascript" src="<TMPL_VAR NAME="STATIC_PREFIX">common/js/idpchoice.js"></script>
|
||||||
<!-- //endif -->
|
<!-- //endif -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<TMPL_IF NAME="PORTAL_URL">
|
<TMPL_IF NAME="PORTAL_URL">
|
||||||
<div id="logout">
|
<div id="logout">
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</TMPL_IF>
|
</TMPL_IF>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
<span class="fa fa-envelope-open"></span>
|
<span class="fa fa-envelope-open"></span>
|
||||||
<span trspan="sendPwd">Send me a link</span>
|
<span trspan="sendPwd">Send me a link</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -123,7 +123,7 @@
|
||||||
<TMPL_ELSE>
|
<TMPL_ELSE>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
</TMPL_IF>
|
</TMPL_IF>
|
||||||
|
|
||||||
<!-- Name and link (mandatory) -->
|
<!-- Name and link (mandatory) -->
|
||||||
<h5 class="appname <TMPL_VAR NAME="appid"> card-title">
|
<h5 class="appname <TMPL_VAR NAME="appid"> card-title">
|
||||||
<TMPL_VAR NAME="appname">
|
<TMPL_VAR NAME="appname">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<TMPL_INCLUDE NAME="header.tpl">
|
<TMPL_INCLUDE NAME="header.tpl">
|
||||||
|
|
||||||
<div id="notifcontent" class="container">
|
<div id="notifcontent" class="container">
|
||||||
|
|
||||||
<form action="/notifback" method="post" class="notif" role="form">
|
<form action="/notifback" method="post" class="notif" role="form">
|
||||||
<TMPL_VAR NAME="HIDDEN_INPUTS">
|
<TMPL_VAR NAME="HIDDEN_INPUTS">
|
||||||
<TMPL_IF NAME="CHOICE_VALUE">
|
<TMPL_IF NAME="CHOICE_VALUE">
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<a href="<TMPL_VAR NAME="PORTAL_URL">2fregisters" class="btn btn-info" role="button">
|
<a href="<TMPL_VAR NAME="PORTAL_URL">2fregisters" class="btn btn-info" role="button">
|
||||||
<span class="fa fa-shield"></span>
|
<span class="fa fa-shield"></span>
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
<span class="fa fa-shield"></span>
|
<span class="fa fa-shield"></span>
|
||||||
<span trspan="sfaManager">sfaManager</span>
|
<span trspan="sfaManager">sfaManager</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a id="goback" href="<TMPL_VAR NAME="PORTAL_URL">?cancel=1<TMPL_IF NAME="AUTH_URL">&url=<TMPL_VAR NAME="AUTH_URL"></TMPL_IF>" class="btn btn-primary" role="button">
|
<a id="goback" href="<TMPL_VAR NAME="PORTAL_URL">?cancel=1<TMPL_IF NAME="AUTH_URL">&url=<TMPL_VAR NAME="AUTH_URL"></TMPL_IF>" class="btn btn-primary" role="button">
|
||||||
<span class="fa fa-home"></span>
|
<span class="fa fa-home"></span>
|
||||||
<span trspan="goToPortal">Go to portal</span>
|
<span trspan="goToPortal">Go to portal</span>
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
<span class="fa fa-shield"></span>
|
<span class="fa fa-shield"></span>
|
||||||
<span trspan="sfaManager">sfaManager</span>
|
<span trspan="sfaManager">sfaManager</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a id="goback" href="<TMPL_VAR NAME="PORTAL_URL">?cancel=1<TMPL_IF NAME="AUTH_URL">&url=<TMPL_VAR NAME="AUTH_URL"></TMPL_IF>" class="btn btn-primary" role="button">
|
<a id="goback" href="<TMPL_VAR NAME="PORTAL_URL">?cancel=1<TMPL_IF NAME="AUTH_URL">&url=<TMPL_VAR NAME="AUTH_URL"></TMPL_IF>" class="btn btn-primary" role="button">
|
||||||
<span class="fa fa-home"></span>
|
<span class="fa fa-home"></span>
|
||||||
<span trspan="goToPortal">Go to portal</span>
|
<span trspan="goToPortal">Go to portal</span>
|
||||||
|
|
|
@ -170,7 +170,7 @@ to test content _(to launch a `expectForm()` for example)_.
|
||||||
Same as `_get` except that a body is required. $body must be a file handle.
|
Same as `_get` except that a body is required. $body must be a file handle.
|
||||||
Example with IO::String:
|
Example with IO::String:
|
||||||
|
|
||||||
ok(
|
ok(
|
||||||
$res = $client->_post(
|
$res = $client->_post(
|
||||||
'/',
|
'/',
|
||||||
IO::String->new('user=dwho&password=dwho'),
|
IO::String->new('user=dwho&password=dwho'),
|
||||||
|
|
|
@ -660,7 +660,7 @@ sub _get {
|
||||||
Same as C<_get> except that a body is required. $body must be a file handle.
|
Same as C<_get> except that a body is required. $body must be a file handle.
|
||||||
Example with IO::String:
|
Example with IO::String:
|
||||||
|
|
||||||
ok(
|
ok(
|
||||||
$res = $client->_post(
|
$res = $client->_post(
|
||||||
'/',
|
'/',
|
||||||
IO::String->new('user=dwho&password=dwho'),
|
IO::String->new('user=dwho&password=dwho'),
|
||||||
|
|
|
@ -78,8 +78,7 @@ for ( my $i = 0 ; $i < NB ; $i++ ) {
|
||||||
|
|
||||||
print "Result
|
print "Result
|
||||||
+-----+-----------+----------+---------+-----------------------------------------+
|
+-----+-----------+----------+---------+-----------------------------------------+
|
||||||
| Req | Auth form | Post req | Menu | 5 access to test1.example.com
|
| Req | Auth form | Post req | Menu | 5 access to test1.example.com |
|
||||||
|
|
|
||||||
+-----+-----------+----------+---------+-----------------------------------------+
|
+-----+-----------+----------+---------+-----------------------------------------+
|
||||||
";
|
";
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue