feature/Add User Information Page

This commit is contained in:
Marko Milić 2021-09-13 15:41:49 +02:00
parent 1ce686a62a
commit ff3cf0e935
5 changed files with 133 additions and 2 deletions

View File

@ -510,6 +510,7 @@ class Boot extends MdcLoggable {
Menu("Dummy user tokens", "Get Dummy user tokens") / "dummy-user-tokens" >> AuthUser.loginFirst,
Menu("Validate OTP", "Validate OTP") / "otp" >> AuthUser.loginFirst,
Menu("User Information", "User Information") / "user-information",
Menu("User Invitation", "User Invitation") / "user-invitation",
Menu("User Invitation Info", "User Invitation Info") / "user-invitation-info",
Menu("User Invitation Invalid", "User Invitation Invalid") / "user-invitation-invalid",

View File

@ -501,7 +501,7 @@ import net.liftweb.util.Helpers._
case _ => ""
}
} else {
""
"This information is not allowed at this instance."
}
}

View File

@ -0,0 +1,66 @@
/**
Open Bank Project - API
Copyright (C) 2011-2019, TESOBE GmbH.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Email: contact@tesobe.com
TESOBE GmbH.
Osloer Strasse 16/17
Berlin 13359, Germany
This product includes software developed at
TESOBE (http://www.tesobe.com/)
*/
package code.snippet
import code.api.util.ErrorMessages.attemptedToOpenAnEmptyBox
import code.model.dataAccess.AuthUser
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.User
import net.liftweb.http.{RequestVar, SHtml}
import net.liftweb.util.CssSel
import net.liftweb.util.Helpers._
import scala.xml.NodeSeq
class UserInformation extends MdcLoggable {
private object idTokenVar extends RequestVar("")
private object providerVar extends RequestVar("")
private object devEmailVar extends RequestVar("")
private object usernameVar extends RequestVar("")
def show: CssSel = {
if(!AuthUser.loggedIn_?) {
"*" #> NodeSeq.Empty
} else if (AuthUser.getCurrentUser.isEmpty) {
"*" #> NodeSeq.Empty
} else {
val user: User = AuthUser.getCurrentUser.openOrThrowException(attemptedToOpenAnEmptyBox)
usernameVar.set(user.name)
devEmailVar.set(user.emailAddress)
providerVar.set(user.provider)
idTokenVar.set(AuthUser.getIDTokenOfCurrentUser)
"form" #> {
"#user-info-username" #> SHtml.text(usernameVar, usernameVar(_)) &
"#user-info-provider" #> SHtml.text(providerVar.is, providerVar(_)) &
"#user-info-email" #> SHtml.text(devEmailVar, devEmailVar(_)) &
"#user-info-id-token" #> SHtml.text(idTokenVar, idTokenVar(_))
} & "#register-consumer-success" #> ""
}
}
}

View File

@ -134,7 +134,7 @@ Berlin 13359, Germany
<li class="navitem" data-lift="Login.loggedIn" >
<!-- LOGGED IN -->
<div hidden id="logged-in-id-token"></div>
<p class="navbar-btn"><span id="loggedIn-username">username</span><a href="#" class="btn btn-default logout">Log off</a></p>
<p class="navbar-btn"><a href="/user-information"><span id="loggedIn-username">username</span></a><a href="#" class="btn btn-default logout">Log off</a></p>
</li>
</ul>
</div><!--/.nav-collapse -->

View File

@ -0,0 +1,64 @@
<!--
Open Bank Project - API
Copyright (C) 2011-2017, TESOBE GmbH
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Email: contact@tesobe.com
TESOBE GmbH
Osloerstrasse 16/17
Berlin 13359, Germany
This product includes software developed at
TESOBE (http://www.tesobe.com/)
-->
<div id="register-consumer" data-lift="surround?with=default;at=content">
<div data-lift="UserInformation.show">
<div id="register-consumer-explanation">
<h1>User Information</h1>
<form>
<style>
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
background-color: #ffffff;
}
</style>
<div id="register-consumer-success" class="wrap-text">
<div id="user-information">
<div class="form-group">
<label for="user-info-email">Email</label>
<input readonly type="text" id="user-info-email" class="form-control" aria-describedby="consumer-registration-app-name-error">
</div>
<div class="form-group">
<label for="user-info-username">Username</label>
<input readonly type="text" id="user-info-username" class="form-control" aria-describedby="consumer-registration-app-name-error">
</div>
<div class="form-group">
<label for="user-info-provider">Provider</label>
<input readonly type="text" id="user-info-provider" class="form-control" aria-describedby="consumer-registration-app-name-error">
</div>
<div class="form-group">
<label for="user-info-id-token">ID Token</label>
<input readonly type="text" id="user-info-id-token" class="form-control" aria-describedby="consumer-registration-app-name-error">
</div>
</div>
</div>
</form>
</div>
</div>
</div>