diff --git a/src/main/scala/code/lib/ObpAPI.scala b/src/main/scala/code/lib/ObpAPI.scala index ce9f7f5e..d5629778 100644 --- a/src/main/scala/code/lib/ObpAPI.scala +++ b/src/main/scala/code/lib/ObpAPI.scala @@ -57,7 +57,9 @@ object ObpAPI extends Loggable { } } - + def currentUser : Box[CurrentUserJson]= { + ObpGet("/v2.0.0/users/current").flatMap(_.extractOpt[CurrentUserJson]) + } @@ -534,6 +536,13 @@ object ObpJson { full_name: Option[String], logo: Option[String], website: Option[String]) + + case class CurrentUserJson(user_id: String, + email: String, + provider_id: String, + provider: String, + display_name: String + ) case class UserJson(id: Option[String], provider: Option[String], diff --git a/src/main/scala/code/snippet/Login.scala b/src/main/scala/code/snippet/Login.scala index 01e266ab..712a80ee 100644 --- a/src/main/scala/code/snippet/Login.scala +++ b/src/main/scala/code/snippet/Login.scala @@ -36,7 +36,7 @@ import net.liftweb.http.js.JsCmd import net.liftweb.util.Helpers import Helpers._ import net.liftweb.http.SHtml -import code.lib.OAuthClient +import code.lib.{ObpAPI, OAuthClient} import net.liftweb.http.js.JsCmds.Noop class Login { @@ -44,6 +44,7 @@ class Login { // TODO show currently logged-in user / name private def loggedIn = { ".logged-out *" #> "" & + ".username *" #> ObpAPI.currentUser.map(u => u.display_name) & "#logout [onclick+]" #> SHtml.onEvent(s => { OAuthClient.logoutAll() Noop diff --git a/src/main/webapp/templates-hidden/default.html b/src/main/webapp/templates-hidden/default.html index 8ac5dc41..7d48e779 100755 --- a/src/main/webapp/templates-hidden/default.html +++ b/src/main/webapp/templates-hidden/default.html @@ -80,6 +80,7 @@ along with this program. If not, see www.gnu.org/licenses/ Log out icon +