Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def find(loginInfo: LoginInfo): Future[Option[User]] = {
- val userQuery = for {
- dbLoginInfo <- loginInfoQuery(loginInfo)
- dbUserLoginInfo <- slickUserLoginInfos.filter(_.loginInfoId === dbLoginInfo.id)
- dbUser <- slickUsers.filter(_.id === dbUserLoginInfo.userID)
- dbUserPermission <- slickUserPermissions.filter(_.userID === dbUser.id)
- dbPermission <- slickPermissions.filter(_.id === dbUserPermission.permissionId)
- dbUserRole <- slickUserRoles.filter(_.userID === dbUser.id)
- dbRole <- slickPermissions.filter(_.id === dbUserRole.roleId)
- } yield (dbUser, dbPermission, dbRole)
- db.run(userQuery.result.headOption).map { dbUserOption =>
- dbUserOption.map {
- case (user, permissions, roles) =>
- User(UUID.fromString(user.userID),
- user.firstName,
- user.lastName,
- user.fullName,
- user.jobTitle,
- loginInfo,
- user.email,
- user.emailConfirmed,
- Some(List()),
- Some(List()),
- Some(List()),
- user.enabled)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement