From c6d32c5d4296e7447f0e5bb2da921e04fb23a90b Mon Sep 17 00:00:00 2001 From: vlad Date: Fri, 28 Jul 2017 02:09:51 -0700 Subject: Users hierarchy simplification --- src/main/scala/xyz/driver/core/auth.scala | 23 +++++++++++++++++++---- src/test/scala/xyz/driver/core/AuthTest.scala | 10 +++++++++- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/main/scala/xyz/driver/core/auth.scala b/src/main/scala/xyz/driver/core/auth.scala index 5dea2db..7b589ba 100644 --- a/src/main/scala/xyz/driver/core/auth.scala +++ b/src/main/scala/xyz/driver/core/auth.scala @@ -1,6 +1,6 @@ package xyz.driver.core -import xyz.driver.core.domain.Email +import xyz.driver.core.domain.{Email, PhoneNumber} import scalaz.Equal @@ -16,12 +16,27 @@ object auth { trait User { def id: Id[User] - def roles: Set[Role] } - final case class BasicUser(id: Id[User], roles: Set[Role]) extends User - final case class AuthToken(value: String) + + final case class AuthUser(id: Id[AuthUser], + userId: Id[User], + email: Email, + emailVerified: Boolean, + phoneNumber: Option[PhoneNumber], + phoneVerified: Boolean, + isBlocked: Boolean, + roles: Set[Role]) + + final case class AuthTokenUserInfo(id: Id[User], + authUserId: Id[AuthUser], + email: Email, + emailVerified: Boolean, + audience: String, + roles: Set[Role]) + extends User + final case class RefreshToken(value: String) final case class PermissionsToken(value: String) diff --git a/src/test/scala/xyz/driver/core/AuthTest.scala b/src/test/scala/xyz/driver/core/AuthTest.scala index 9018a3e..9abc7e0 100644 --- a/src/test/scala/xyz/driver/core/AuthTest.scala +++ b/src/test/scala/xyz/driver/core/AuthTest.scala @@ -9,6 +9,7 @@ import org.scalatest.mock.MockitoSugar import org.scalatest.{FlatSpec, Matchers} import pdi.jwt.{Jwt, JwtAlgorithm} import xyz.driver.core.auth._ +import xyz.driver.core.domain.Email import xyz.driver.core.logging._ import xyz.driver.core.rest._ @@ -51,7 +52,14 @@ class AuthTest extends FlatSpec with Matchers with MockitoSugar with ScalatestRo override def authenticatedUser(implicit ctx: ServiceRequestContext): OptionT[Future, User] = OptionT.optionT[Future] { if (ctx.contextHeaders.keySet.contains(AuthProvider.AuthenticationTokenHeader)) { - Future.successful(Some(BasicUser(Id[User]("1"), Set(TestRole)))) + Future.successful(Some(AuthTokenUserInfo( + Id[User]("1"), + authUserId = Id[AuthUser]("2"), + Email("foo", "bar"), + emailVerified = true, + audience = "driver", + roles = Set(TestRole) + ))) } else { Future.successful(Option.empty[User]) } -- cgit v1.2.3