Merge remote-tracking branch 'Marko/develop' into develop

This commit is contained in:
hongwei 2022-08-04 16:18:24 +02:00
commit 9503b9d20e
9 changed files with 130 additions and 86 deletions

View File

@ -20,17 +20,17 @@ api_tester = Evaluador API
view_api_explorer = Ver API Explorer
get_api_key = Obten llave API
welcome_to = Bienvenido a la instancia de prueba del API Sandbox del Open Bank Project!
get_started_building_your_application = Empiece a crear su aplicación
get_started_building_your_application = Empiece a crear su aplicaci\ufffdn
for_banks = Para Bancos
Get_started = Empezar
Create_an_account = Crea una cuenta
Description_Create_an_account = En primer lugar, crea una cuenta de desarrollador gratuita en este sandbox y solicita una clave de desarrollador. En esta fase se te pedirá que envíes información básica sobre tu aplicación.
Description_Create_an_account = En primer lugar, crea una cuenta de desarrollador gratuita en este sandbox y solicita una clave de desarrollador. En esta fase se te pedir\ufffd que env\ufffdes informaci\ufffdn b\ufffdsica sobre tu aplicaci\ufffdn.
Connect_your_app = Conecta tu app
Connect_your_app_description = Utiliza nuestros SDKs para conectar tu aplicación a las APIs de Open Bank Project. Necesitarás tu clave de desarrollador, que deberías tener desde que creaste tu cuenta. Consulta todas las APIs disponibles en el Explorador de APIs, pero asegúrate de que estás utilizando la URL base correcta.
Test_your_app = Pruebe su aplicación con datos de clientes
Test_your_app_description = una vez que su aplicación esté conectada, puede probarla utilizando las credenciales del cliente de prueba.
Connect_your_app_description = Utiliza nuestros SDKs para conectar tu aplicaci\ufffdn a las APIs de Open Bank Project. Necesitar\ufffds tu clave de desarrollador, que deber\ufffdas tener desde que creaste tu cuenta. Consulta todas las APIs disponibles en el Explorador de APIs, pero aseg\ufffdrate de que est\ufffds utilizando la URL base correcta.
Test_your_app = Pruebe su aplicaci\ufffdn con datos de clientes
Test_your_app_description = una vez que su aplicaci\ufffdn est\ufffd conectada, puede probarla utilizando las credenciales del cliente de prueba.
@ -39,96 +39,106 @@ register_for_an_account = Registrar una cuenta nueva
# Explore APIs Section
explore_api_title = Explorar los titulos de las API
explore_api_accounts_title = Cuentas
explore_api_accounts = Acceso a cuentas (XS21) y tarjetas. Proporcionar acceso de grano fino a los invitados (auditor, contable o público).
explore_api_accounts = Acceso a cuentas (XS21) y tarjetas. Proporcionar acceso de grano fino a los invitados (auditor, contable o p\ufffdblico).
explore_api_branches_title = Sucursales, cajeros y productos
explore_api_branches = Acceda a los datos abiertos relacionados con los bancos, incluidas las sucursales y los cajeros automáticos, así como la geolocalización y los horarios de apertura.
explore_api_branches = Acceda a los datos abiertos relacionados con los bancos, incluidas las sucursales y los cajeros autom\ufffdticos, as\ufffd como la geolocalizaci\ufffdn y los horarios de apertura.
explore_api_transactions_title = Transacciones
explore_api_transactions = Acceda al historial de transacciones y a los metadatos de las mismas.
explore_api_metadata_title = Metadata
explore_api_metadata = Enriquezca las transacciones y las contrapartes con metadatos que incluyan geolocalizaciones, comentarios, imágenes y etiquetas (por ejemplo, categoría de gasto).
explore_api_metadata = Enriquezca las transacciones y las contrapartes con metadatos que incluyan geolocalizaciones, comentarios, im\ufffdgenes y etiquetas (por ejemplo, categor\ufffda de gasto).
explore_api_counterparties_title = Metadata
explore_api_counterparties = Acceda a los pagadores y beneficiarios de una cuenta, incluyendo metadatos como sus alias, etiquetas, logotipos y páginas de inicio.
explore_api_counterparties = Acceda a los pagadores y beneficiarios de una cuenta, incluyendo metadatos como sus alias, etiquetas, logotipos y p\ufffdginas de inicio.
explore_api_webhooks_title = Webhooks
explore_api_webhooks = Llamar a servicios web externos basados en eventos de la Cuenta.
explore_api_customer_title = Incorporación de clientes y KYC
explore_api_customer = Realizar la creación de usuarios, clientes y cuentas. Gestionar los documentos, los medios y el estado de Conozca a su Cliente (KYC). Crear reuniones y mensajes de clientes.
explore_api_roles_title = Funciones, métricas y documentación de la API
explore_api_roles = Controle el acceso a los puntos finales, obtenga métricas y documentación de la API.
explore_api_customer_title = Incorporaci\ufffdn de clientes y KYC
explore_api_customer = Realizar la creaci\ufffdn de usuarios, clientes y cuentas. Gestionar los documentos, los medios y el estado de Conozca a su Cliente (KYC). Crear reuniones y mensajes de clientes.
explore_api_roles_title = Funciones, m\ufffdtricas y documentaci\ufffdn de la API
explore_api_roles = Controle el acceso a los puntos finales, obtenga m\ufffdtricas y documentaci\ufffdn de la API.
explore_api_payments_title = Pagos y transferencias
explore_api_payments = Iniciar solicitudes de transacciones (transferencias y pagos). Ver y confirmar cargos (según la PSD2). Responder a los retos de autenticación fuerte del cliente (SCA).
explore_api_warehouse_title = Buscar en el almacén
explore_api_warehouse = Realice búsquedas avanzadas y consultas estadísticas en el almacén de datos.
explore_api_payments = Iniciar solicitudes de transacciones (transferencias y pagos). Ver y confirmar cargos (seg\ufffdn la PSD2). Responder a los retos de autenticaci\ufffdn fuerte del cliente (SCA).
explore_api_warehouse_title = Buscar en el almac\ufffdn
explore_api_warehouse = Realice b\ufffdsquedas avanzadas y consultas estad\ufffdsticas en el almac\ufffdn de datos.
# Get Started Section
get_started_title = Empezar
get_started_create_account_title = Crea una cuenta
get_started_create_account = En primer lugar, crea una cuenta de desarrollador gratuita en este sandbox y solicita una clave de desarrollador. En esta fase se te pedir\u00e1 que env\u00edes informaci\u00f3n b\u00e1sica sobre tu aplicaci\u00f3n.
get_started_create_account_sign_up = Register for an account
get_started_connect_your_app_title = Conecta tu app
get_started_connect_your_app = Utiliza nuestros SDKs para conectar tu aplicaci\u00f3n a las APIs de Open Bank Project. Necesitar\u00e1s tu clave de desarrollador, que deber\u00edas tener desde que creaste tu cuenta. Consulta todas las APIs disponibles en el Explorador de APIs, pero aseg\u00farate de que est\u00e1s utilizando la URL base correcta.
get_started_test_your_app_title = Pruebe su aplicaci\u00f3n con datos de clientes
get_started_test_your_app = Una vez que su aplicaci\u00f3n est\u00e9 conectada, puede probarla utilizando las credenciales del cliente de prueba.
get_started_test_your_app_sandbox_date = View sandbox customer log ons.
username = Nombre de usuario
logontext = Acceda a la API del Open Bank Project
passwordlog = Contraseña
Forgotten_password = ¿Has olvidado tu contraseña?
don't_have_account = ¿No Tienes una cuenta?
or_login_with_openid = o conéctate con OpenID
passwordlog = Contrase\ufffda
Forgotten_password = \ufffdHas olvidado tu contrase\ufffda?
don't_have_account = \ufffdNo Tienes una cuenta?
or_login_with_openid = o con\ufffdctate con OpenID
or = o
invalid.email.address = Dirección de correo electrónico no válida
password.must.be.set = Hay que poner la contraseña
password.too.short = Contraseña demasiado corta
passwords.do.not.match = Las contraseñas no coinciden
number.required = Se debe proporcionar un valor numérico
invalid.email.address = Direcci\ufffdn de correo electr\ufffdnico no v\ufffdlida
password.must.be.set = Hay que poner la contrase\ufffda
password.too.short = Contrase\ufffda demasiado corta
passwords.do.not.match = Las contrase\ufffdas no coinciden
number.required = Se debe proporcionar un valor num\ufffdrico
ajax.error=El servidor no puede ser contactado en este momento
invalid.zip.code = Código postal inválido
invalid.postal.code = Código postal inválido
unique.email.address = La dirección de correo electrónico debe ser única
invalid.zip.code = C\ufffddigo postal inv\ufffdlido
invalid.postal.code = C\ufffddigo postal inv\ufffdlido
unique.email.address = La direcci\ufffdn de correo electr\ufffdnico debe ser \ufffdnica
must.be.logged.in = Debe estar conectado
already.logged.in = ya ha iniciado la sesión. Por favor, cierre la sesión primero.
already.logged.in = ya ha iniciado la sesi\ufffdn. Por favor, cierre la sesi\ufffdn primero.
login = Ingresar
logout = Salir
log.in = Ingresar
log.out = Salir
sign.up = Registrarse
logged.in = Ingresar
logout.first = Por favor, cierre la sesión primero.
lost.password = Contraseña perdida
reset.password = Restablecer contraseña
change.password = Cambiar la contraseña
password.changed = Contraseña cambiada
logout.first = Por favor, cierre la sesi\ufffdn primero.
lost.password = Contrase\ufffda perdida
reset.password = Restablecer contrase\ufffda
change.password = Cambiar la contrase\ufffda
password.changed = Contrase\ufffda cambiada
edit.user = Editar usuario
validate.user = Validar usuario
edit.profile = Editar perfil
sign.up.confirmation = Confirmación de inscripción
sign.up.message = Se ha inscrito. Se le enviará un mensaje de correo electrónico de validación.
sign.up.validation.link=Haga clic en este enlace para completar la inscripción:
sign.up.confirmation = Confirmaci\ufffdn de inscripci\ufffdn
sign.up.message = Se ha inscrito. Se le enviar\ufffd un mensaje de correo electr\ufffdnico de validaci\ufffdn.
sign.up.validation.link=Haga clic en este enlace para completar la inscripci\ufffdn:
welcome = Bienvenido
account.validated = Cuenta validada
invalid.validation.link = Enlace de validación inválido
account.validation.error = Su cuenta no ha sido validada. Por favor, compruebe su correo electrónico para un enlace de validación.
invalid.credentials = Nombre de usuario/contraseña no válidos
enter.email = Introduzca su dirección de correo electrónico y le enviaremos un enlace para restablecer su contraseña
email.address = Correo electrónico
reset.password.confirmation = Confirmacion para reestablecer la contraseña
invalid.validation.link = Enlace de validaci\ufffdn inv\ufffdlido
account.validation.error = Su cuenta no ha sido validada. Por favor, compruebe su correo electr\ufffdnico para un enlace de validaci\ufffdn.
invalid.credentials = Nombre de usuario/contrase\ufffda no v\ufffdlidos
enter.email = Introduzca su direcci\ufffdn de correo electr\ufffdnico y le enviaremos un enlace para restablecer su contrase\ufffda
email.address = Correo electr\ufffdnico
reset.password.confirmation = Confirmacion para reestablecer la contrase\ufffda
dear = Apreciable
click.reset.link = Da click en el enlace para reestablecer tu contraseña
click.reset.link = Da click en el enlace para reestablecer tu contrase\ufffda
thank.you = Gracias
reset.password.request = Solicitud para reestablecer contraseña
password.reset.email.sent = Contraseña para reestablecer el correo ha sido enviada
account.validation.resent = Validación de la cuenta enviado de nuevo
email.address.not.found = Dirección de correo no encontrado
reset.password.request = Solicitud para reestablecer contrase\ufffda
password.reset.email.sent = Contrase\ufffda para reestablecer el correo ha sido enviada
account.validation.resent = Validaci\ufffdn de la cuenta enviado de nuevo
email.address.not.found = Direcci\ufffdn de correo no encontrado
send.it = Enviar
reset.your.password = Resetea tu contraseña
enter.your.new.password = Escribe tu contraseña
repeat.your.new.password = Escribe tu contraseña (repitela)
set.password = Establecer contraseña
password.link.invalid = Enlace para cambio de contraseña invalido
wrong.old.password = Contraseña equivocada
old.password = Contraseña antigua
new.password = Nueva contraseña
repeat.password = Nueva contraseña (repetir)
reset.your.password = Resetea tu contrase\ufffda
enter.your.new.password = Escribe tu contrase\ufffda
repeat.your.new.password = Escribe tu contrase\ufffda (repitela)
set.password = Establecer contrase\ufffda
password.link.invalid = Enlace para cambio de contrase\ufffda invalido
wrong.old.password = Contrase\ufffda equivocada
old.password = Contrase\ufffda antigua
new.password = Nueva contrase\ufffda
repeat.password = Nueva contrase\ufffda (repetir)
repeat = Repetir
edit = Editar
cancel = Cancel
ok = OK
change = Cambiar
password = Contraseña
recover.password = Recuperar contraseña
password = Contrase\ufffda
recover.password = Recuperar contrase\ufffda
profile.updated = Has actualizado tu perfil
male = Masculino
female = Femenino
@ -142,7 +152,7 @@ msg.error = Error
crudify.menu.view.displayName=Ver %s
crudify.menu.edit.displayName=Editar %s
crudify.menu.delete.displayName=Borrar %s
paginator.norecords = No hay información que mostrar
paginator.norecords = No hay informaci\ufffdn que mostrar
paginator.displayingrecords = Mostrando %s-%s de %s
open_bank_project_is = Open Bank Project es
@ -443,16 +453,16 @@ Deleted = Borrado
consumer.registration.nav.name=Obtener llave API
invalid.login.credentials= Credenciales invalidas
invalid.username=Nombre de usuario invalido: \
1) Los únicos caracteres permitidos en los nombres de usuario son: a-z A-Z 0-9 . _ \
1) Los \ufffdnicos caracteres permitidos en los nombres de usuario son: a-z A-Z 0-9 . _ \
2) Los nombres de usuario DEBEN tener entre 8 y 100 caracteres \
3) Los nombres de usuario NO DEBEN empezar por _ o . \
4) Los nombres de usuario NO DEBEN contener __ o ._ o ._ o .. \
5) Los nombres de usuario NO DEBEN terminar con _ o . \
6) Cualquier dirección de correo electrónico válida está permitida como nombre de usuario
6) Cualquier direcci\ufffdn de correo electr\ufffdnico v\ufffdlida est\ufffd permitida como nombre de usuario
your.username.is.not.unique = Su nombre de usuario no es único. Por favor, introduzca uno diferente.
your.username.is.not.unique = Su nombre de usuario no es \ufffdnico. Por favor, introduzca uno diferente.
# Those 2 messages must have the same output in order to prevent leakage of information
user.invitation.is.already.finished = Parece que el enlace de invitación no es válido. ¿Todavía necesitas ayuda? Por favor, envíanos un mensaje usando el soporte de API Playground.
your.secret.link.is.not.valid = Parece que el enlace de invitación no es válido. ¿Todavía necesitas ayuda? Por favor, envíanos un mensaje usando el soporte de API Playground.
user.invitation.is.already.finished = Parece que el enlace de invitaci\ufffdn no es v\ufffdlido. \ufffdTodav\ufffda necesitas ayuda? Por favor, env\ufffdanos un mensaje usando el soporte de API Playground.
your.secret.link.is.not.valid = Parece que el enlace de invitaci\ufffdn no es v\ufffdlido. \ufffdTodav\ufffda necesitas ayuda? Por favor, env\ufffdanos un mensaje usando el soporte de API Playground.
OBP-30001 = El usuario no ha iniciado sesi\u00c3\u00b3n. \u00c2\u00a1Se requiere autenticaci\u00c3\u00b3n!

View File

@ -33,6 +33,7 @@ import java.nio.charset.Charset
import java.text.{ParsePosition, SimpleDateFormat}
import java.util.concurrent.ConcurrentHashMap
import java.util.{Calendar, Date, UUID}
import code.UserRefreshes.UserRefreshes
import code.accountholders.AccountHolders
import code.api.Constant._
@ -65,7 +66,7 @@ import code.scope.Scope
import code.usercustomerlinks.UserCustomerLink
import code.util.Helper.{MdcLoggable, SILENCE_IS_GOLDEN}
import code.util.{Helper, JsonSchemaUtil}
import code.views.Views
import code.views.{MapperViews, Views}
import code.webuiprops.MappedWebUiPropsProvider.getWebUiPropsValue
import com.alibaba.ttl.internal.javassist.CannotCompileException
import com.github.dwickern.macros.NameOf.{nameOf, nameOfType}
@ -105,8 +106,8 @@ import javassist.{ClassPool, LoaderClassPath}
import javassist.expr.{ExprEditor, MethodCall}
import org.apache.commons.io.IOUtils
import org.apache.commons.lang3.StringUtils
import java.security.AccessControlException
import scala.collection.mutable
import scala.collection.mutable.{ArrayBuffer, ListBuffer}
import scala.concurrent.Future
@ -3328,7 +3329,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{
* Note: The public views means you can use anonymous access which implies that the user is an optional value
*/
final def checkViewAccessAndReturnView(viewId : ViewId, bankIdAccountId: BankIdAccountId, user: Option[User], consumerId: Option[String] = None): Box[View] = {
val customView = Views.views.vend.customView(viewId, bankIdAccountId)
val customView = MapperViews.customView(viewId, bankIdAccountId)
customView match { // CHECK CUSTOM VIEWS
// 1st: View is Pubic and Public views are NOT allowed on this instance.
case Full(v) if(v.isPublic && !allowPublicViews) => Failure(PublicViewsNotAllowedOnThisInstance)
@ -3338,7 +3339,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{
case Full(v) if(user.isDefined && user.get.hasAccountAccess(v, bankIdAccountId, consumerId)) => customView
// The user has NO account access via custom view
case _ =>
val systemView = Views.views.vend.systemView(viewId)
val systemView = MapperViews.systemView(viewId)
systemView match { // CHECK SYSTEM VIEWS
// 1st: View is Pubic and Public views are NOT allowed on this instance.
case Full(v) if(v.isPublic && !allowPublicViews) => Failure(PublicViewsNotAllowedOnThisInstance)

View File

@ -34,7 +34,11 @@ class RemotedataAccountHoldersActor extends Actor with ObpActorHelper with MdcLo
case cc.bulkDeleteAllAccountHolders() =>
logger.debug(s"bulkDeleteAllAccountHolders()")
sender ! (mapper.bulkDeleteAllAccountHolders())
sender ! (mapper.bulkDeleteAllAccountHolders())
case cc.deleteAccountHolder(user: User, bankAccountUID :BankIdAccountId) =>
logger.debug(s"deleteAccountHolder($user,$bankAccountUID)")
sender ! (mapper.deleteAccountHolder(user, bankAccountUID))
case message => logger.warn("[AKKA ACTOR ERROR - REQUEST NOT RECOGNIZED] " + message)
}

View File

@ -92,6 +92,17 @@ class RemotedataCounterpartiesActor extends Actor with ObpActorHelper with MdcLo
case cc.getCounterparties(thisBankId: BankId, thisAccountId: AccountId, viewId: ViewId) =>
logger.debug(s"getCounterparties($thisBankId)")
sender ! (mapper.getCounterparties(thisBankId, thisAccountId, viewId))
case cc.getCounterpartyByRoutings(otherBankRoutingScheme: String,
otherBankRoutingAddress: String,
otherBranchRoutingScheme: String,
otherBranchRoutingAddress: String,
otherAccountRoutingScheme: String,
otherAccountRoutingAddress: String) =>
logger.debug(s"getCounterpartyByRoutings($otherBankRoutingScheme,$otherBankRoutingAddress,$otherBranchRoutingScheme,$otherBranchRoutingAddress,$otherAccountRoutingScheme,$otherAccountRoutingAddress)")
sender ! (mapper.getCounterpartyByRoutings(otherBankRoutingScheme,
otherBankRoutingAddress, otherBranchRoutingScheme,
otherBranchRoutingAddress, otherAccountRoutingScheme, otherAccountRoutingAddress))
case cc.getCounterpartyByIban(iban: String) =>
logger.debug(s"getOrCreateMetadata($iban)")

View File

@ -44,6 +44,7 @@ import net.liftweb.util.PassThru
import scala.xml.{NodeSeq, XML}
import scala.io.Source
import code.webuiprops.MappedWebUiPropsProvider.getWebUiPropsValue
import net.liftweb.common.{Box, Full}
class WebUI extends MdcLoggable{
@ -64,10 +65,26 @@ class WebUI extends MdcLoggable{
}
}
def homePage = {
val host = Constant.HostName
"#es a [href]" #> scala.xml.Unparsed(s"$host/?locale=es_ES") &
"#en a [href]" #> scala.xml.Unparsed(s"$host/?locale=en_EN")
def currentPage = {
def removeLocale(s: Box[String]) = {
s.map(_.replaceAll("&locale=es_ES", "")
.replaceAll("&locale=en_EN", "")
.replaceAll("\\?locale=es_ES", "")
.replaceAll("\\?locale=en_EN", ""))
}
val page = Constant.HostName + removeLocale(S.uriAndQueryString).getOrElse("")
S.queryString.map(_.replaceAll("locale=es_ES", "").replaceAll("locale=en_EN", "")) match {
case Full(queryString) if queryString.isEmpty =>
"#es a [href]" #> scala.xml.Unparsed(s"${page}?locale=es_ES") &
"#en a [href]" #> scala.xml.Unparsed(s"${page}?locale=en_EN")
case Full(queryString) =>
"#es a [href]" #> scala.xml.Unparsed(s"${page}&locale=es_ES") &
"#en a [href]" #> scala.xml.Unparsed(s"${page}&locale=en_EN")
case _ =>
"#es a [href]" #> scala.xml.Unparsed(s"${page}?locale=es_ES") &
"#en a [href]" #> scala.xml.Unparsed(s"${page}?locale=en_EN")
}
}

View File

@ -23,7 +23,7 @@ object MappedWebUiPropsProvider extends WebUiPropsProvider {
override def createOrUpdate(webUiProps: WebUiPropsT): Box[WebUiPropsT] = {
WebUiProps.find(By(WebUiProps.Name, webUiProps.name))
.or(Full(WebUiProps.create))
.map(_.Name(webUiProps.name).Value1(webUiProps.value).saveMe())
.map(_.Name(webUiProps.name).Value(webUiProps.value).saveMe())
}
override def delete(webUiPropsId: String):Box[Boolean] = WebUiProps.find(By(WebUiProps.WebUiPropsId, webUiPropsId)) match {
@ -60,11 +60,11 @@ class WebUiProps extends WebUiPropsT with LongKeyedMapper[WebUiProps] with IdPK
object WebUiPropsId extends MappedUUID(this)
object Name extends MappedString(this, 255)
object Value1 extends MappedText(this)
object Value extends MappedText(this)
override def webUiPropsId: Option[String] = Option(WebUiPropsId.get)
override def name: String = Name.get
override def value: String = Value1.get
override def value: String = Value.get
}
object WebUiProps extends WebUiProps with LongKeyedMetaMapper[WebUiProps] {

View File

@ -48,7 +48,7 @@ Berlin 13359, Germany
<div id="main-get-started">
<h2 id="get-started-part"><lift:loc locid="Get_started">Get started</lift:loc></h2>
<h2 id="get-started-part"><lift:loc locid="get_started_title">Get started</lift:loc></h2>
<div class="row">
<div class="col-md-5 main-get-started-icon">
<img class="create-account" src="/media/images/create_account.png" width="237" height="237" alt="create account"/>
@ -57,8 +57,8 @@ Berlin 13359, Germany
<img class="item-1" src="/media/images/icons/item-1.png" alt="item-1"/>
</div>
<div class="col-xs-12 col-md-5 main-get-started-text">
<h3><lift:loc locid="Create_an_account">Create an account</lift:loc></h3>
<p><lift:loc locid="Description_Create_an_account">First, create a free developer account on this sandbox and request a developer key. You will be asked to submit basic information about your app at this stage.</lift:loc><a href="/user_mgt/sign_up"> <lift:loc locid="register_for_an_account">Register for an account</lift:loc>
<h3><lift:loc locid="get_started_create_account_title">Create an account</lift:loc></h3>
<p><lift:loc locid="get_started_create_account">First, create a free developer account on this sandbox and request a developer key. You will be asked to submit basic information about your app at this stage.</lift:loc><a href="/user_mgt/sign_up"><lift:loc locid="register_for_an_account">Register for an account</lift:loc>
</a>.</p>
</div>
</div>
@ -70,8 +70,8 @@ Berlin 13359, Germany
<img class="item-2" src="/media/images/icons/item-2.png" alt="item-2"/>
</div>
<div class="col-xs-12 col-md-5 main-get-started-text">
<h3><lift:loc locid="Connect_your_app">Connect your app</lift:loc></h3>
<p><lift:loc locid="Connect_your_app_description">Use our SDKs to connect your app to the Open Bank Project APIs. Youll need your developer key, which
<h3><lift:loc locid="get_started_connect_your_app_title">Connect your app</lift:loc></h3>
<p><lift:loc locid="get_started_connect_your_app">Use our SDKs to connect your app to the Open Bank Project APIs. Youll need your developer key, which
you should have from when you created your account. Check out all the available APIs on the API
Explorer, but make sure that youre using the correct base URL.</lift:loc></p>
</div>
@ -84,12 +84,12 @@ Berlin 13359, Germany
<img class="item-3" src="/media/images/icons/item-3.png" alt="item-3"/>
</div>
<div class="col-xs-12 col-md-5 main-get-started-text">
<h3><lift:loc locid="Test_your_app">Test your app using customer data</lift:loc></h3>
<h3><lift:loc locid="get_started_test_your_app_title">Test your app using customer data</lift:loc></h3>
<p>
<lift:loc locid="Test_your_app_description">Once your app is connected, you can test it using test customer credentials.</lift:loc>
<a class="example_sandbox_credentials_link" data-lift="WebUI.exampleSandboxCredentialsLink"
href="https://github.com/OpenBankProject/OBP-API/wiki/">View sandbox customer log ons.</a>
href="https://github.com/OpenBankProject/OBP-API/wiki/"><lift:loc locid="get_started_test_your_app_sandbox_date">View sandbox customer log ons.</lift:loc></a>
</p>
</div>
</div>

View File

@ -237,7 +237,7 @@ Berlin 13359, Germany
</li>
</ul>
<br>
<div class="language-tag" data-lift="WebUI.homePage">
<div class="language-tag" data-lift="WebUI.currentPage">
<span><a href="#" >Language</a></span>
<span><a id="es" href="/" >ES</a></span>
<span><a href="/" >|</a></span>

View File

@ -362,8 +362,9 @@ class OAuthTest extends ServerSetup {
Then("we set the valid username, valid password and try to login")
val verifier = getVerifier(requestToken.value, user2.username.get, user2Password)
org.scalameta.logger.elem(verifier)
Then("we should get a message: " + accountValidationError)
println(verifier)
verifier.contains(accountValidationError) should equal (true)
}
}