mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 17:56:46 +00:00
feature/User Invitation Flow - POW 3
This commit is contained in:
parent
ed7c052ad0
commit
c56d2196af
@ -1171,13 +1171,20 @@ def restoreSomeSessions(): Unit = {
|
||||
}
|
||||
|
||||
override def passwordResetXhtml = {
|
||||
(<form method="post" action={S.uri}>
|
||||
<table><tr><td colspan="2">{if(S.queryString.isDefined) Helper.i18n("set.your.password") else S.?("reset.your.password")}</td></tr>
|
||||
<tr><td>{S.?("enter.your.new.password")}</td><td><input type="password" /></td></tr>
|
||||
<tr><td>{S.?("repeat.your.new.password")}</td><td><input type="password" /></td></tr>
|
||||
<tr><td> </td><td><input type="submit" /></td></tr>
|
||||
</table>
|
||||
</form>)
|
||||
<div id="recover-password" tabindex="-1">
|
||||
<h1>{if(S.queryString.isDefined) Helper.i18n("set.your.password") else S.?("reset.your.password")}</h1>
|
||||
<form action={S.uri} method="post">
|
||||
<div class="form-group">
|
||||
<label for="password">{S.?("enter.your.new.password")}</label> <span><input id="password" class="form-control" type="password" /></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="repeatpassword">{S.?("repeat.your.new.password")}</label> <span><input id="repeatpassword" class="form-control" type="password" /></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input type="submit" class="btn btn-danger" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -54,43 +54,50 @@ class UserInvitation extends MdcLoggable {
|
||||
|
||||
val secretLink = S.param("id").getOrElse("0")
|
||||
val userInvitation = UserInvitationProvider.userInvitationProvider.vend.getUserInvitationBySecretLink(secretLink.toLong)
|
||||
val firstName = userInvitation.map(_.firstName).getOrElse("None")
|
||||
firstNameVar.set(firstName)
|
||||
val lastName = userInvitation.map(_.lastName).getOrElse("None")
|
||||
lastNameVar.set(lastName)
|
||||
firstNameVar.set(userInvitation.map(_.firstName).getOrElse("None"))
|
||||
lastNameVar.set(userInvitation.map(_.lastName).getOrElse("None"))
|
||||
val email = userInvitation.map(_.email).getOrElse("None")
|
||||
devEmailVar.set(email)
|
||||
companyVar.set(userInvitation.map(_.company).getOrElse("None"))
|
||||
countryVar.set(userInvitation.map(_.country).getOrElse("None"))
|
||||
val username = firstName.toLowerCase + "." + lastName.toLowerCase()
|
||||
usernameVar.set(username)
|
||||
usernameVar.set(firstNameVar.is.toLowerCase + "." + lastNameVar.is.toLowerCase())
|
||||
|
||||
def submitButtonDefense(): Unit = {
|
||||
createResourceUser(
|
||||
provider = "OBP-User-Invitation",
|
||||
providerId = Some(usernameVar.is),
|
||||
name = Some(firstName + " " + lastName),
|
||||
email = Some(email)
|
||||
).map{ u =>
|
||||
createAuthUser(user = u, firstName = firstName, lastName = lastName, password = "")
|
||||
val resetLink = AuthUser.passwordResetUrl(u.idGivenByProvider, u.emailAddress, u.userId) + "?action=set"
|
||||
S.redirectTo(resetLink)
|
||||
}
|
||||
|
||||
if(Users.users.vend.getUserByUserName(usernameVar.is).isDefined) showErrorsForUsername()
|
||||
else if(userInvitation.map(_.status != "CREATED").getOrElse(false)) showErrorsForStatus()
|
||||
else {
|
||||
createResourceUser(
|
||||
provider = "OBP-User-Invitation",
|
||||
providerId = Some(usernameVar.is),
|
||||
name = Some(firstNameVar.is + " " + lastNameVar.is),
|
||||
email = Some(email)
|
||||
).map{ u =>
|
||||
createAuthUser(user = u, firstName = firstNameVar.is, lastName = lastNameVar.is, password = "")
|
||||
val resetLink = AuthUser.passwordResetUrl(u.idGivenByProvider, u.emailAddress, u.userId) + "?action=set"
|
||||
S.redirectTo(resetLink)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def showErrorsForUsername() = {
|
||||
val usernameError = Helper.i18n("unique.username")
|
||||
def showError(usernameError: String) = {
|
||||
S.error("register-consumer-errors", usernameError)
|
||||
register &
|
||||
"#register-consumer-errors *" #> {
|
||||
".error *" #>
|
||||
List(usernameError).map({ e=>
|
||||
List(usernameError).map({ e =>
|
||||
".errorContent *" #> e
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
def showErrorsForUsername() = {
|
||||
showError(Helper.i18n("unique.username"))
|
||||
}
|
||||
|
||||
def showErrorsForStatus() = {
|
||||
showError(Helper.i18n("user.invitation.is.already.finished"))
|
||||
}
|
||||
|
||||
def register = {
|
||||
"form" #> {
|
||||
"#country" #> SHtml.text(countryVar.is, countryVar(_)) &
|
||||
@ -103,7 +110,7 @@ class UserInvitation extends MdcLoggable {
|
||||
} &
|
||||
"#register-consumer-success" #> ""
|
||||
}
|
||||
if(Users.users.vend.getUserByUserName(username).isDefined) showErrorsForUsername() else register
|
||||
register
|
||||
}
|
||||
|
||||
private def createAuthUser(user: User, firstName: String, lastName: String, password: String): Box[AuthUser] = tryo {
|
||||
|
||||
@ -47,44 +47,26 @@ Berlin 13359, Germany
|
||||
<div class="form-group">
|
||||
<label for="firstName">First name</label>
|
||||
<input readonly type="text" name="first-name" id="firstName" class="form-control" aria-describedby="consumer-registration-first-name-error">
|
||||
<div id = "consumer-registration-first-name-error-div" class="hide">
|
||||
<span data-lift="Msg?id=consumer-registration-first-name-error"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="lastName">Last name</label>
|
||||
<input readonly type="text" name="last-name" id="lastName" class="form-control" aria-describedby="consumer-registration-app-name-error">
|
||||
<div id = "consumer-registration-last-name-error-div" class="hide">
|
||||
<span data-lift="Msg?id=consumer-registration-last-name-error"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="devEmail">Developer email</label>
|
||||
<input readonly type="text" name="app-developer" id="devEmail" class="form-control" aria-describedby="consumer-registration-app-developer-error">
|
||||
<div id = "consumer-registration-app-developer-error-div" class="hide">
|
||||
<span data-lift="Msg?id=consumer-registration-app-developer-error"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="companyName">Company</label>
|
||||
<input readonly type="text" name="app-developer" id="companyName" class="form-control" aria-describedby="consumer-registration-company-error">
|
||||
<div id = "consumer-registration-company-error-div" class="hide">
|
||||
<span data-lift="Msg?id=consumer-registration-app-developer-error"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="country">Company</label>
|
||||
<label for="country">Country</label>
|
||||
<input readonly type="text" name="country" id="country" class="form-control" aria-describedby="consumer-registration-company-error">
|
||||
<div id = "consumer-registration-country-error-div" class="hide">
|
||||
<span data-lift="Msg?id=consumer-registration-country-error"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="username">Username</label>
|
||||
<input type="text" name="username" id="username" class="form-control" aria-describedby="consumer-registration-company-error">
|
||||
<div id = "consumer-registration-username-error-div" class="hide">
|
||||
<span data-lift="Msg?id=consumer-registration-username-error"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user