VIVO-333 External-auth login button should be language-sensitive.
Don't specify the text in the runtime.properties. Instead, get it from all.properties. Show the button if externalAuth.netIdHeaderName is specified.
This commit is contained in:
parent
2417555e1c
commit
c9248b1f81
6 changed files with 207 additions and 209 deletions
|
@ -397,7 +397,7 @@
|
||||||
<em>External authentication:</em>
|
<em>External authentication:</em>
|
||||||
If you want to use an external
|
If you want to use an external
|
||||||
authentication system like Shibboleth or CUWebAuth, you will need to
|
authentication system like Shibboleth or CUWebAuth, you will need to
|
||||||
set two additional properties in this file. See the section below
|
set an additional property in this file. See the section below
|
||||||
entitled <a href="#external_auth">Using an External Authentication System with Vitro</a>.
|
entitled <a href="#external_auth">Using an External Authentication System with Vitro</a>.
|
||||||
</p>
|
</p>
|
||||||
<table border='1' bordercolor="#CCCCCC" cellspacing="5">
|
<table border='1' bordercolor="#CCCCCC" cellspacing="5">
|
||||||
|
@ -647,21 +647,16 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2">
|
<td colspan="2">
|
||||||
If an external authentication system like Shibboleth or CUWebAuth is to be
|
If an external authentication system like Shibboleth or CUWebAuth is to be
|
||||||
used, these properties say how the login button should be labeled, and which
|
used, this property says which HTTP header will contain the user ID from
|
||||||
HTTP header will contain the user ID from the authentication system. If such
|
the authentication system. If such a system is not to be used,
|
||||||
a system is not to be used, leave these commented out. Consult the installation
|
leave this commented out.
|
||||||
instructions for more details.
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd_row">
|
<tr class="odd_row">
|
||||||
<td>
|
<td>
|
||||||
externalAuth.buttonText
|
|
||||||
<br/>
|
|
||||||
externalAuth.netIdHeaderName
|
externalAuth.netIdHeaderName
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
Log in using BearCat Shibboleth
|
|
||||||
<br/>
|
|
||||||
remote_userID
|
remote_userID
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -1081,14 +1076,19 @@
|
||||||
the Vitro login form. You need to tell Vitro what text should appear in
|
the Vitro login form. You need to tell Vitro what text should appear in
|
||||||
that button.
|
that button.
|
||||||
<p>
|
<p>
|
||||||
Put a line like this in the runtime.properties file:
|
In your theme, add a line to the <code>all.properties</code> file,
|
||||||
externalAuth.buttonText = [the text for your login button] For example:
|
like this one:
|
||||||
</p>
|
<pre>external_login_text = <em>[the text for your login button]</em></pre>
|
||||||
<pre>externalAuth.buttonText = Log in using BearCat Shibboleth</pre>
|
For example:
|
||||||
<p>
|
<pre>external_login_text = Log in using BearCat Shibboleth</pre>
|
||||||
The Vitro login form will display a button labelled "Log in
|
The Vitro login form will display a button labelled "Log in
|
||||||
using BearCat Shibboleth".
|
using BearCat Shibboleth".
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
If your site supports additional languages, add lines to the corresponding files.
|
||||||
|
For example, <code>all_es.properties</code> might contain this line:
|
||||||
|
<pre>external_login_text = Entrar usando Shibboleth GatoOso</pre>
|
||||||
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<h5>Associating a User with a profile page.</h5>
|
<h5>Associating a User with a profile page.</h5>
|
||||||
|
|
|
@ -1,186 +1,184 @@
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Vitro runtime properties
|
# Vitro runtime properties
|
||||||
#
|
#
|
||||||
# This file is provided as example.runtime.properties.
|
# This file is provided as example.runtime.properties.
|
||||||
#
|
#
|
||||||
# Save a copy of this file as runtime.properties in your Vitro home directory,
|
# Save a copy of this file as runtime.properties in your Vitro home directory,
|
||||||
# and edit the properties as needed for your installation.
|
# and edit the properties as needed for your installation.
|
||||||
#
|
#
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
#
|
#
|
||||||
# This namespace will be used when generating URIs for objects created in the
|
# This namespace will be used when generating URIs for objects created in the
|
||||||
# editor. In order to serve linked data, the default namespace must be composed
|
# editor. In order to serve linked data, the default namespace must be composed
|
||||||
# as follows (optional elements in parentheses):
|
# as follows (optional elements in parentheses):
|
||||||
#
|
#
|
||||||
# scheme + server_name (+ port) (+ servlet_context) + "/individual/"
|
# scheme + server_name (+ port) (+ servlet_context) + "/individual/"
|
||||||
#
|
#
|
||||||
# For example, Cornell's default namespace is:
|
# For example, Cornell's default namespace is:
|
||||||
#
|
#
|
||||||
# http://vivo.cornell.edu/individual/
|
# http://vivo.cornell.edu/individual/
|
||||||
#
|
#
|
||||||
Vitro.defaultNamespace = http://vivo.mydomain.edu/individual/
|
Vitro.defaultNamespace = http://vivo.mydomain.edu/individual/
|
||||||
|
|
||||||
#
|
#
|
||||||
# URL of Solr context used in local Vitro search. This will usually consist of:
|
# URL of Solr context used in local Vitro search. This will usually consist of:
|
||||||
# scheme + server_name + port + vitro_webapp_name + "solr"
|
# scheme + server_name + port + vitro_webapp_name + "solr"
|
||||||
# In the standard installation, the Solr context will be on the same server as Vitro,
|
# In the standard installation, the Solr context will be on the same server as Vitro,
|
||||||
# and in the same Tomcat instance. The path will be the Vitro webapp.name (specified
|
# and in the same Tomcat instance. The path will be the Vitro webapp.name (specified
|
||||||
# above) + "solr"
|
# above) + "solr"
|
||||||
# Example:
|
# Example:
|
||||||
# vitro.local.solr.url = http://localhost:8080/vitrosolr
|
# vitro.local.solr.url = http://localhost:8080/vitrosolr
|
||||||
vitro.local.solr.url = http://localhost:8080/vitrosolr
|
vitro.local.solr.url = http://localhost:8080/vitrosolr
|
||||||
|
|
||||||
#
|
#
|
||||||
# Email parameters which VIVO can use to send mail. If these are left empty,
|
# Email parameters which VIVO can use to send mail. If these are left empty,
|
||||||
# the "Contact Us" form will be disabled and users will not be notified of
|
# the "Contact Us" form will be disabled and users will not be notified of
|
||||||
# changes to their accounts.
|
# changes to their accounts.
|
||||||
#
|
#
|
||||||
email.smtpHost = smtp.my.domain.edu
|
email.smtpHost = smtp.my.domain.edu
|
||||||
email.replyTo = vivoAdmin@my.domain.edu
|
email.replyTo = vivoAdmin@my.domain.edu
|
||||||
|
|
||||||
#
|
#
|
||||||
# The basic parameters for a MySQL database connection. Change the end of the
|
# The basic parameters for a MySQL database connection. Change the end of the
|
||||||
# URL to reflect your database name (if it is not "vitro"). Change the username
|
# URL to reflect your database name (if it is not "vitro"). Change the username
|
||||||
# and password to match the authorized user you created in MySQL.
|
# and password to match the authorized user you created in MySQL.
|
||||||
#
|
#
|
||||||
VitroConnection.DataSource.url = jdbc:mysql://localhost/vitro
|
VitroConnection.DataSource.url = jdbc:mysql://localhost/vitro
|
||||||
VitroConnection.DataSource.username = vitroweb
|
VitroConnection.DataSource.username = vitroweb
|
||||||
VitroConnection.DataSource.password = vitrovitro
|
VitroConnection.DataSource.password = vitrovitro
|
||||||
|
|
||||||
#
|
#
|
||||||
# The maximum number of active connections in the database connection pool.
|
# The maximum number of active connections in the database connection pool.
|
||||||
# Increase this value to support a greater number of concurrent page requests.
|
# Increase this value to support a greater number of concurrent page requests.
|
||||||
#
|
#
|
||||||
VitroConnection.DataSource.pool.maxActive = 40
|
VitroConnection.DataSource.pool.maxActive = 40
|
||||||
|
|
||||||
#
|
#
|
||||||
# The maximum number of database connections that will be allowed
|
# The maximum number of database connections that will be allowed
|
||||||
# to remain idle in the connection pool. Default is 25%
|
# to remain idle in the connection pool. Default is 25%
|
||||||
# of the maximum number of active connections.
|
# of the maximum number of active connections.
|
||||||
#
|
#
|
||||||
VitroConnection.DataSource.pool.maxIdle = 10
|
VitroConnection.DataSource.pool.maxIdle = 10
|
||||||
|
|
||||||
#
|
#
|
||||||
# Parameters to change in order to use VIVO with a database other than
|
# Parameters to change in order to use VIVO with a database other than
|
||||||
# MySQL.
|
# MySQL.
|
||||||
#
|
#
|
||||||
VitroConnection.DataSource.dbtype = MySQL
|
VitroConnection.DataSource.dbtype = MySQL
|
||||||
VitroConnection.DataSource.driver = com.mysql.jdbc.Driver
|
VitroConnection.DataSource.driver = com.mysql.jdbc.Driver
|
||||||
VitroConnection.DataSource.validationQuery = SELECT 1
|
VitroConnection.DataSource.validationQuery = SELECT 1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Optional URI of a SPARQL endpoint from which VIVO should display data.
|
# Optional URI of a SPARQL endpoint from which VIVO should display data.
|
||||||
# If set, VIVO will use this endpoint as its triple store instead of the
|
# If set, VIVO will use this endpoint as its triple store instead of the
|
||||||
# SDB database.
|
# SDB database.
|
||||||
#
|
#
|
||||||
#VitroConnection.DataSource.endpointURI =
|
#VitroConnection.DataSource.endpointURI =
|
||||||
|
|
||||||
#
|
#
|
||||||
# Optional URI to use for modifying the above endpoint via SPARQL UPDATE.
|
# Optional URI to use for modifying the above endpoint via SPARQL UPDATE.
|
||||||
# This setting is only necessary if the endpoint does not support updates via
|
# This setting is only necessary if the endpoint does not support updates via
|
||||||
# its main URI. (This may be done for access control purposes.)
|
# its main URI. (This may be done for access control purposes.)
|
||||||
# If the endpointURI above is not set, this setting has no effect.
|
# If the endpointURI above is not set, this setting has no effect.
|
||||||
#
|
#
|
||||||
#VitroConnection.DataSource.updateEndpointURI =
|
#VitroConnection.DataSource.updateEndpointURI =
|
||||||
|
|
||||||
#
|
#
|
||||||
# The email address of the root user for the VIVO application. The password
|
# The email address of the root user for the VIVO application. The password
|
||||||
# for this user is initially set to "rootPassword", but you will be asked to
|
# for this user is initially set to "rootPassword", but you will be asked to
|
||||||
# change the password the first time you log in.
|
# change the password the first time you log in.
|
||||||
#
|
#
|
||||||
rootUser.emailAddress = root@myDomain.com
|
rootUser.emailAddress = root@myDomain.com
|
||||||
|
|
||||||
#
|
#
|
||||||
# How is a logged-in user associated with a particular Individual? One way is
|
# How is a logged-in user associated with a particular Individual? One way is
|
||||||
# for the Individual to have a property whose value is the username of the user.
|
# for the Individual to have a property whose value is the username of the user.
|
||||||
# This is the name of that property.
|
# This is the name of that property.
|
||||||
#
|
#
|
||||||
selfEditing.idMatchingProperty = http://vitro.mydomain.edu/ns#networkId
|
selfEditing.idMatchingProperty = http://vitro.mydomain.edu/ns#networkId
|
||||||
|
|
||||||
#
|
#
|
||||||
# If an external authentication system like Shibboleth or CUWebAuth is to be
|
# If an external authentication system like Shibboleth or CUWebAuth is to be
|
||||||
# used, these properties say how the login button should be labeled, and which
|
# used, this property says which HTTP header will contain the user ID from
|
||||||
# HTTP header will contain the user ID from the authentication system. If such
|
# the authentication system. If such a system is not to be used, leave this
|
||||||
# as system is not to be used, leave these commented out. Consult the
|
# commented out. Consult the installation instructions for more details.
|
||||||
# installation instructions for more details.
|
#
|
||||||
#
|
#externalAuth.netIdHeaderName = remote_userID
|
||||||
#externalAuth.buttonText = Log in using BearCat Shibboleth
|
|
||||||
#externalAuth.netIdHeaderName = remote_userID
|
#
|
||||||
|
# Types of individual for which we can create proxy editors.
|
||||||
#
|
# If this is omitted, defaults to http://www.w3.org/2002/07/owl#Thing
|
||||||
# Types of individual for which we can create proxy editors.
|
proxy.eligibleTypeList = http://www.w3.org/2002/07/owl#Thing
|
||||||
# If this is omitted, defaults to http://www.w3.org/2002/07/owl#Thing
|
|
||||||
proxy.eligibleTypeList = http://www.w3.org/2002/07/owl#Thing
|
#
|
||||||
|
# Show only the most appropriate data values based on the Accept-Language
|
||||||
#
|
# header supplied by the browser. Default is true if not set.
|
||||||
# Show only the most appropriate data values based on the Accept-Language
|
#
|
||||||
# header supplied by the browser. Default is true if not set.
|
RDFService.languageFilter = true
|
||||||
#
|
|
||||||
RDFService.languageFilter = true
|
#
|
||||||
|
# Tell VIVO to generate HTTP headers on its responses to facilitate caching the
|
||||||
#
|
# profile pages that it creates.
|
||||||
# Tell VIVO to generate HTTP headers on its responses to facilitate caching the
|
#
|
||||||
# profile pages that it creates.
|
# For more information, see
|
||||||
#
|
# https://wiki.duraspace.org/display/VIVO/Use+HTTP+caching+to+improve+performance
|
||||||
# For more information, see
|
#
|
||||||
# https://wiki.duraspace.org/display/VIVO/Use+HTTP+caching+to+improve+performance
|
# Developers will likely want to leave caching disabled, since a change to a
|
||||||
#
|
# Freemarker template or to a Java class would not cause the page to be
|
||||||
# Developers will likely want to leave caching disabled, since a change to a
|
# considered stale.
|
||||||
# Freemarker template or to a Java class would not cause the page to be
|
#
|
||||||
# considered stale.
|
# http.createCacheHeaders = true
|
||||||
#
|
|
||||||
# http.createCacheHeaders = true
|
#
|
||||||
|
# Force VIVO to use a specific language or Locale instead of those
|
||||||
#
|
# specified by the browser. This affects RDF data retrieved from the model,
|
||||||
# Force VIVO to use a specific language or Locale instead of those
|
# if RDFService.languageFilter is true. This also affects the text of pages
|
||||||
# specified by the browser. This affects RDF data retrieved from the model,
|
# that have been modified to support multiple languages.
|
||||||
# if RDFService.languageFilter is true. This also affects the text of pages
|
#
|
||||||
# that have been modified to support multiple languages.
|
# languages.forceLocale = en_US
|
||||||
#
|
|
||||||
# languages.forceLocale = en_US
|
#
|
||||||
|
# A list of supported languages or Locales that the user may choose to
|
||||||
#
|
# use instead of the one specified by the browser. Selection images must
|
||||||
# A list of supported languages or Locales that the user may choose to
|
# be available in the i18n/images directory of the theme. This affects
|
||||||
# use instead of the one specified by the browser. Selection images must
|
# RDF data retrieved from the model, if RDFService.languageFilter is true.
|
||||||
# be available in the i18n/images directory of the theme. This affects
|
# This also affects the text of pages that have been modified to support
|
||||||
# RDF data retrieved from the model, if RDFService.languageFilter is true.
|
# multiple languages.
|
||||||
# This also affects the text of pages that have been modified to support
|
#
|
||||||
# multiple languages.
|
# This should not be used with languages.forceLocale, which will override it.
|
||||||
#
|
#
|
||||||
# This should not be used with languages.forceLocale, which will override it.
|
# languages.selectableLocales = en, es, fr
|
||||||
#
|
|
||||||
# languages.selectableLocales = en, es, fr
|
#
|
||||||
|
# For developers only: Setting this option to "true" slows down Vitro performance.
|
||||||
#
|
#
|
||||||
# For developers only: Setting this option to "true" slows down Vitro performance.
|
# Defeat the Freemarker template cache, so each template is read from disk
|
||||||
#
|
# on each request. This permits developers to immediately see the effect of
|
||||||
# Defeat the Freemarker template cache, so each template is read from disk
|
# changes to the template. The default is <code>false</code>, which means
|
||||||
# on each request. This permits developers to immediately see the effect of
|
# that a cached copy of each template will be used for 60 seconds before
|
||||||
# changes to the template. The default is <code>false</code>, which means
|
# the disk is checked for a new version.
|
||||||
# that a cached copy of each template will be used for 60 seconds before
|
#
|
||||||
# the disk is checked for a new version.
|
# developer.defeatFreemarkerCache = true
|
||||||
#
|
|
||||||
# developer.defeatFreemarkerCache = true
|
#
|
||||||
|
# For developers only: Setting this option to "true" slows down Vitro performance.
|
||||||
#
|
#
|
||||||
# For developers only: Setting this option to "true" slows down Vitro performance.
|
# Defeat the cache of language-specific text strings, so the language file
|
||||||
#
|
# is read from disk on each request. This permits developers to immediately
|
||||||
# Defeat the cache of language-specific text strings, so the language file
|
# see the effect of changes to the text strings. The default is
|
||||||
# is read from disk on each request. This permits developers to immediately
|
# <code>false</code>, which means that the language file is read when
|
||||||
# see the effect of changes to the text strings. The default is
|
# VIVO starts up, or when a new theme is selected.
|
||||||
# <code>false</code>, which means that the language file is read when
|
#
|
||||||
# VIVO starts up, or when a new theme is selected.
|
# developer.defeatI18nCache = true
|
||||||
#
|
|
||||||
# developer.defeatI18nCache = true
|
#
|
||||||
|
# For developers only: Setting this option to "true" slows down Vitro performance.
|
||||||
#
|
#
|
||||||
# For developers only: Setting this option to "true" slows down Vitro performance.
|
# Add starting and ending delimiters to each Freemarker template, so you can see
|
||||||
#
|
# which template were invoked by viewing the generated HTML. The default is
|
||||||
# Add starting and ending delimiters to each Freemarker template, so you can see
|
# <code>false</code>.
|
||||||
# which template were invoked by viewing the generated HTML. The default is
|
#
|
||||||
# <code>false</code>.
|
# developer.insertFreemarkerDelimiters = true
|
||||||
#
|
|
||||||
# developer.insertFreemarkerDelimiters = true
|
|
||||||
|
|
||||||
|
|
|
@ -651,6 +651,7 @@ javascript_require_to_edit = Para editar el contenido, tendrá que activar JavaS
|
||||||
javascript_instructions = java script de instrucciones
|
javascript_instructions = java script de instrucciones
|
||||||
to_enable_javascript = Aquí están las instrucciones para habilitar JavaScript en su navegador web
|
to_enable_javascript = Aquí están las instrucciones para habilitar JavaScript en su navegador web
|
||||||
external_auth_name = Nombre de autenticación externo
|
external_auth_name = Nombre de autenticación externo
|
||||||
|
external_login_text = Entrar usando Shibboleth GatoOso
|
||||||
account = cuenta
|
account = cuenta
|
||||||
change_password_to_login = Cambiar contraseña para iniciar sesión en
|
change_password_to_login = Cambiar contraseña para iniciar sesión en
|
||||||
new_password_capitalized = Nueva contraseña
|
new_password_capitalized = Nueva contraseña
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.web.widgets;
|
package edu.cornell.mannlib.vitro.webapp.web.widgets;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
@ -126,8 +126,7 @@ public class LoginWidget extends Widget {
|
||||||
/**
|
/**
|
||||||
* User is starting the login process. Show them the login screen.
|
* User is starting the login process. Show them the login screen.
|
||||||
*/
|
*/
|
||||||
private WidgetTemplateValues showLoginScreen(HttpServletRequest request, String siteName)
|
private WidgetTemplateValues showLoginScreen(HttpServletRequest request, String siteName) {
|
||||||
throws IOException {
|
|
||||||
LoginProcessBean bean = LoginProcessBean.getBean(request);
|
LoginProcessBean bean = LoginProcessBean.getBean(request);
|
||||||
log.trace("Going to login screen: " + bean);
|
log.trace("Going to login screen: " + bean);
|
||||||
|
|
||||||
|
@ -135,13 +134,12 @@ public class LoginWidget extends Widget {
|
||||||
values.put(TemplateVariable.FORM_ACTION.toString(), getAuthenticateUrl(request));
|
values.put(TemplateVariable.FORM_ACTION.toString(), getAuthenticateUrl(request));
|
||||||
values.put(TemplateVariable.LOGIN_NAME.toString(), bean.getUsername());
|
values.put(TemplateVariable.LOGIN_NAME.toString(), bean.getUsername());
|
||||||
|
|
||||||
String externalAuthDisplayName = ConfigurationProperties.getBean(
|
boolean showExternalAuth = StringUtils.isNotBlank(
|
||||||
request).getProperty("externalAuth.buttonText");
|
ConfigurationProperties.getBean(request).getProperty(
|
||||||
if (externalAuthDisplayName != null) {
|
"externalAuth.netIdHeaderName"));
|
||||||
|
if (showExternalAuth) {
|
||||||
values.put(TemplateVariable.EXTERNAL_AUTH_URL.toString(),
|
values.put(TemplateVariable.EXTERNAL_AUTH_URL.toString(),
|
||||||
UrlBuilder.getUrl(EXTERNAL_AUTH_SETUP_URL));
|
UrlBuilder.getUrl(EXTERNAL_AUTH_SETUP_URL));
|
||||||
values.put(TemplateVariable.EXTERNAL_AUTH_NAME.toString(),
|
|
||||||
externalAuthDisplayName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String infoMessage = bean.getInfoMessageAndClear();
|
String infoMessage = bean.getInfoMessageAndClear();
|
||||||
|
|
|
@ -661,6 +661,7 @@ javascript_require_to_edit = In order to edit content, you'll need to enable Jav
|
||||||
javascript_instructions = java script instructions
|
javascript_instructions = java script instructions
|
||||||
to_enable_javascript = Here are the instructions for enabling JavaScript in your web browser
|
to_enable_javascript = Here are the instructions for enabling JavaScript in your web browser
|
||||||
external_auth_name = external authentication name
|
external_auth_name = external authentication name
|
||||||
|
external_login_text = Log in using BearCat Shibboleth
|
||||||
account = account
|
account = account
|
||||||
change_password_to_login = Change Password to Log in
|
change_password_to_login = Change Password to Log in
|
||||||
new_password_capitalized = New Password
|
new_password_capitalized = New Password
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
<#if externalAuthUrl??>
|
<#if externalAuthUrl??>
|
||||||
<#assign infoClassHide = 'class="vivoAccount"'/>
|
<#assign infoClassHide = 'class="vivoAccount"'/>
|
||||||
|
|
||||||
<p class="external-auth"><a class="blue button" href="${externalAuthUrl}" title="${i18n().external_auth_name}">${externalAuthName}</a></p>
|
<p class="external-auth"><a class="blue button" href="${externalAuthUrl}" title="${i18n().external_auth_name}">${i18n().external_login_text}</a></p>
|
||||||
<!--<p class="or-auth">or</p>-->
|
<!--<p class="or-auth">or</p>-->
|
||||||
<h3 class="internal-auth"><!--Log in using your--> <b>${i18n().or}</b> ${siteName} ${i18n().account}</h3>
|
<h3 class="internal-auth"><!--Log in using your--> <b>${i18n().or}</b> ${siteName} ${i18n().account}</h3>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue