diff options
Diffstat (limited to 'src/main/scala/xyz/driver/common/domain/User.scala')
-rw-r--r-- | src/main/scala/xyz/driver/common/domain/User.scala | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/src/main/scala/xyz/driver/common/domain/User.scala b/src/main/scala/xyz/driver/common/domain/User.scala deleted file mode 100644 index 83d861f..0000000 --- a/src/main/scala/xyz/driver/common/domain/User.scala +++ /dev/null @@ -1,74 +0,0 @@ -package xyz.driver.common.domain - -import java.time.LocalDateTime - -import xyz.driver.common.logging._ -import xyz.driver.common.domain.User.Role -import xyz.driver.common.utils.Utils - -case class User(id: LongId[User], - email: Email, - name: String, - role: Role, - passwordHash: PasswordHash, - latestActivity: Option[LocalDateTime], - deleted: Option[LocalDateTime]) - -object User { - - sealed trait Role extends Product with Serializable { - - /** - * Bit representation of this role - */ - def bit: Int - - def is(that: Role): Boolean = this == that - - def oneOf(roles: Role*): Boolean = roles.contains(this) - - def oneOf(roles: Set[Role]): Boolean = roles.contains(this) - } - - object Role extends PhiLogging { - case object RecordAdmin extends Role {val bit = 1 << 0} - case object RecordCleaner extends Role {val bit = 1 << 1} - case object RecordOrganizer extends Role {val bit = 1 << 2} - case object DocumentExtractor extends Role {val bit = 1 << 3} - case object TrialSummarizer extends Role {val bit = 1 << 4} - case object CriteriaCurator extends Role {val bit = 1 << 5} - case object TrialAdmin extends Role {val bit = 1 << 6} - case object EligibilityVerifier extends Role{val bit = 1 << 7} - case object TreatmentMatchingAdmin extends Role{val bit = 1 << 8} - case object RoutesCurator extends Role{val bit = 1 << 9} - - val RepRoles = Set[Role](RecordAdmin, RecordCleaner, RecordOrganizer, DocumentExtractor) - - val TcRoles = Set[Role](TrialSummarizer, CriteriaCurator, TrialAdmin) - - val TreatmentMatchingRoles = Set[Role](RoutesCurator, EligibilityVerifier, TreatmentMatchingAdmin) - - val All = RepRoles ++ TcRoles ++ TreatmentMatchingRoles - - def apply(bitMask: Int): Role = { - def extractRole(role: Role): Set[Role] = - if ((bitMask & role.bit) != 0) Set(role) else Set.empty[Role] - - val roles = All.flatMap(extractRole) - roles.size match { - case 1 => roles.head - case _ => - logger.error(phi"Can't convert a bit mask ${Unsafe(bitMask)} to any role") - throw new IllegalArgumentException() - } - } - - implicit def toPhiString(x: Role): PhiString = Unsafe(Utils.getClassSimpleName(x.getClass)) - } - - implicit def toPhiString(x: User): PhiString = { - import x._ - phi"User(id=$id, role=$role)" - } - -} |