• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Scala Silhouette类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Scala中com.mohiva.play.silhouette.api.Silhouette的典型用法代码示例。如果您正苦于以下问题:Scala Silhouette类的具体用法?Scala Silhouette怎么用?Scala Silhouette使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Silhouette类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Scala代码示例。

示例1: SignupController

//设置package包名称以及导入依赖的类
package controllers

import javax.inject.{Inject, Singleton}

import com.mohiva.play.silhouette.api.Silhouette
import forms.SignupForm
import play.api.i18n.{I18nSupport, Messages, MessagesApi}
import play.api.mvc.{Action, Controller, Flash}
import utils.auth.DefaultEnv


@Singleton
class SignupController @Inject()
(
  val messagesApi: MessagesApi,
  silhouette: Silhouette[DefaultEnv]
) extends Controller with I18nSupport {

  def createUser = Action { implicit request =>
    println("trying to create!")
    SignupForm.form.bindFromRequest.fold(
      hasErrors = { form =>
        Redirect(routes.SignupController.registerPage())
          .flashing(Flash(form.data) + ("error" -> Messages("validation.errors")))
      },
      success = { signupData =>
        println(s"creating a new user $signupData")
        Redirect(routes.BookmarkController.list())
      }
    )
  }

  
  def registerPage = silhouette.UnsecuredAction { implicit request =>
    Ok(views.html.users.register(SignupForm.form))
  }
} 
开发者ID:lostMohican,项目名称:bookmaarket,代码行数:38,代码来源:SignupController.scala


示例2: CoinController

//设置package包名称以及导入依赖的类
package controllers

import javax.inject.Inject

import com.mohiva.play.silhouette.api.{Environment, Silhouette}
import com.mohiva.play.silhouette.impl.authenticators.CookieAuthenticator
import forms.CoinAddForm
import models.User
import models.coin.{Person, WorkEntry}
import models.common.Pagination
import play.api.i18n.MessagesApi
import play.api.mvc.{Action, AnyContent}

import scala.concurrent.Future


class CoinController @Inject()(
                                val messagesApi: MessagesApi,
                                val env: Environment[User, CookieAuthenticator]
                              ) extends Silhouette[User, CookieAuthenticator] {

  val itemsPerPage = 9

  
  def remove(id: Long): Action[AnyContent] = SecuredAction.async { implicit request =>
    WorkEntry.remove(id)
    Future.successful(Redirect(routes.CoinController.landing()))
  }
} 
开发者ID:wirvomgut,项目名称:curo,代码行数:30,代码来源:CoinController.scala


示例3: Application

//设置package包名称以及导入依赖的类
package controllers

import javax.inject.Inject

import scala.concurrent.Future
import com.mohiva.play.silhouette.api.Silhouette
import com.mohiva.play.silhouette.impl.providers.SocialProviderRegistry
import play.api.mvc._
import play.api.i18n.{I18nSupport, MessagesApi}
import utils.auth.CookieEnv

class Application @Inject() (
                              val messagesApi: MessagesApi,
                              silhouette: Silhouette[CookieEnv],
                              socialProviderRegistry: SocialProviderRegistry,
                              implicit val webJarAssets: WebJarAssets) extends Controller with I18nSupport {

  import silhouette._

  def index = UserAwareAction.async { implicit request =>
    Future.successful(Ok(views.html.index(request.identity, request.authenticator.map(_.loginInfo))))
  }

  def profile = SecuredAction { implicit request =>
    Ok(views.html.profile(request.identity, request.authenticator.loginInfo, socialProviderRegistry))
  }
} 
开发者ID:tm-sukehiro,项目名称:play-hands-on,代码行数:28,代码来源:Application.scala


示例4: RestApi

//设置package包名称以及导入依赖的类
package controllers

import javax.inject.Inject

import scala.concurrent.Future
import com.mohiva.play.silhouette.api.Silhouette
import play.api.libs.json._
import play.api.mvc._
import play.api.i18n.{I18nSupport, Messages, MessagesApi}
import models.User
import User._
import com.mohiva.play.silhouette.api.actions.SecuredErrorHandler
import utils.auth.CookieEnv

class RestApi @Inject() (
                          val messagesApi: MessagesApi,
                          val silhouette: Silhouette[CookieEnv]) extends Controller with I18nSupport {

  import silhouette._

  def profile = SecuredAction.async { implicit request =>
    val json = Json.toJson(request.identity.profileFor(request.authenticator.loginInfo).get)
    val prunedJson = json.transform(
      (__ \ 'loginInfo).json.prune andThen
        (__ \ 'passordInfo).json.prune andThen
        (__ \ 'oauth1Info).json.prune)
    prunedJson.fold(
      _ => Future.successful(InternalServerError(Json.obj("error" -> Messages("error.profileError")))),
      js => Future.successful(Ok(js))
    )
  }

  val errorHandler = new SecuredErrorHandler {
    override def onNotAuthenticated(implicit request: RequestHeader) = {
      Future.successful(Unauthorized(Json.obj("error" -> Messages("error.profileUnauth"))))
    }
    override def onNotAuthorized(implicit request: RequestHeader) = {
      Future.successful(Forbidden("local.not.authorized"))
    }
  }
} 
开发者ID:tm-sukehiro,项目名称:play-hands-on,代码行数:42,代码来源:RestApi.scala


示例5: OAuth2Controller

//设置package包名称以及导入依赖的类
package controllers

import java.security.SecureRandom
import javax.inject.{Inject, Singleton}

import auth.{DefaultEnv, OAuthDataHandlerImpl}
import com.mohiva.play.silhouette.api.Silhouette
import models.daos.AccessTokenDAO
import play.api.Configuration
import play.api.libs.json.Json
import play.api.mvc.{Controller, Request, Result}

import scala.concurrent.{ExecutionContext, Future}
import scala.concurrent.ExecutionContext.Implicits._
import scalaoauth2.provider.{AuthorizationHandler, OAuth2Provider, OAuthGrantType, TokenEndpoint}


@Singleton
class OAuth2Controller @Inject() (
    override val tokenEndpoint: TokenEndpoint,
    config: Configuration,
    secureRandom: SecureRandom,
    accessTokenDAO: AccessTokenDAO,
    silhouette: Silhouette[DefaultEnv]) extends Controller with OAuth2Provider {

    def accessToken = silhouette.UserAwareAction.async { implicit request =>
        request.identity match {
            case Some(user) =>
                issueAccessToken(new OAuthDataHandlerImpl(config, secureRandom, accessTokenDAO, Some(user)))
            case _ => Future.successful(Redirect(routes.AuthController.getSignIn()))
        }
    }

    override def issueAccessToken[A, U](handler: AuthorizationHandler[U])(implicit request: Request[A], ctx: ExecutionContext): Future[Result] = {
        tokenEndpoint.handleRequest(request, handler).map {
            case Left(e) => new Status(e.statusCode)(responseOAuthErrorJson(e)).withHeaders(responseOAuthErrorHeader(e))
            case Right(r) =>
                r.authInfo.redirectUri match {
                    case Some(uri) if request.grantType == OAuthGrantType.IMPLICIT =>
                        Redirect(s"$uri#token=${r.accessToken}")
                    case _ =>
                        Ok(Json.toJson(responseAccessToken(r))).withHeaders("Cache-Control" -> "no-store", "Pragma" -> "no-cache")
                }
        }
    }

} 
开发者ID:coompany,项目名称:ideas,代码行数:48,代码来源:OAuth2Controller.scala


示例6: EmployeeController

//设置package包名称以及导入依赖的类
package controllers

import com.mohiva.play.silhouette.api.Silhouette
import com.omis.{EmpDetails, UserReg}
import play.api.i18n.{I18nSupport, Messages, MessagesApi}
import play.api.libs.json.Json
import repositories.Employee
import services.EmployeeService
import utils.auth.DefaultEnv

import scala.concurrent.{ExecutionContext, Future}
import scala.util.Random

class EmployeeController(
  silhouette: Silhouette[DefaultEnv],
  val messagesApi: MessagesApi, employeeService: EmployeeService
)(implicit val ec: ExecutionContext)
    extends BaseController(silhouette) with I18nSupport {
  def createEmp = silhouette.SecuredAction.async(parse.json) { req =>
    if (req.identity.role == "admin") {
      req.body.validate[EmpDetails].map { data =>
        val codeList = Seq("AE", "BG", "NQ", "ZB", "TA", "OM", "IE", "PL", "LE", "AR", "AV", "DA", "FO")
        val rand = new Random(System.currentTimeMillis())
        val random_index = rand.nextInt(codeList.length)
        val result = codeList(random_index)
        employeeService.createEmpWithRole(Employee(
          java.util.UUID.randomUUID(),
          result, java.util.UUID.randomUUID(), java.util.UUID.randomUUID(), java.time.LocalDateTime.now(), java.time.LocalDateTime.now()
        ), "teacher", data).flatMap(
          e => Future(Ok(e))
        )
      }.recoverTotal {
        case error =>
          Future.successful(Unauthorized(Json.obj("message" -> Messages("Invalid data"))))
      }
    } else {
      Future(Forbidden)
    }

  }

  def getAllEmp = withAdminSession("allEmp") {
    _ =>
      employeeService.getALl().map {
        e => Ok(Json.toJson(e))
      }
  }

  def getEmp = withSession("getProfile") {
    req =>
      {
        println(req.identity.id)
        employeeService.findEmpDetailsById(req.identity.id).map {
          case Some(e) => Ok(Json.toJson(e))
          case None => NotFound
        }
      }
  }
} 
开发者ID:iriddhi,项目名称:mis,代码行数:60,代码来源:EmployeeController.scala


示例7: BaseController

//设置package包名称以及导入依赖的类
package controllers

import com.mohiva.play.silhouette.api.Silhouette
import com.mohiva.play.silhouette.api.actions.{SecuredRequest, UserAwareRequest}
import play.api.libs.json.{JsValue, Reads}
import play.api.mvc._
import utils.AppLogger
import utils.auth.DefaultEnv

import scala.concurrent.{Future}

abstract class BaseController(silhouette: Silhouette[DefaultEnv]) extends Controller with AppLogger {

  protected def unmarshalJsValue[R](request: Request[JsValue])(block: R => Future[Result])(implicit rds: Reads[R]): Future[Result] =
    request.body.validate[R](rds).fold(
      valid = block,
      invalid = e => {
      val error = e.mkString
      log.error(error)
      Future.successful(BadRequest(error))
    }
    )

  def withoutSession(action: String)(block: UserAwareRequest[DefaultEnv, AnyContent] => Future[Result]) = {
    silhouette.UserAwareAction.async { implicit request =>
      block(request)
    }
  }

  def withSession(action: String)(block: (SecuredRequest[DefaultEnv, AnyContent]) => Future[Result]) = {
    silhouette.UserAwareAction.async { implicit request =>
      request.identity match {
        case Some(u) =>
          val auth = request.authenticator.getOrElse(throw new IllegalStateException("You're not logged in."))
          block(SecuredRequest(u, auth, request))
        case None =>
          Future.successful(Unauthorized("You are not authorized to access this resource"))
      }
    }
  }

  def withAdminSession(action: String)(block: (SecuredRequest[DefaultEnv, AnyContent]) => Future[Result]) = {
    silhouette.UserAwareAction.async { implicit request =>
      request.identity match {
        case Some(u) =>
          if (u.role == "admin") {
            val auth = request.authenticator.getOrElse(throw new IllegalStateException("You're not logged in."))
            block(SecuredRequest(u, auth, request))
          } else {
            Future.successful(Unauthorized("You are not authorized to access this resource"))
          }

        case None =>
          Future.successful(Unauthorized("You are not authorized to access this resource"))
      }
    }
  }
} 
开发者ID:iriddhi,项目名称:mis,代码行数:59,代码来源:BaseController.scala


示例8: ViewController

//设置package包名称以及导入依赖的类
package controllers

import com.mohiva.play.silhouette.api.Silhouette
import play.api.Configuration
import play.api.i18n.{I18nSupport, MessagesApi}
import utils.auth.DefaultEnv
import scala.concurrent.{ExecutionContext, Future}

class ViewController(
  val messagesApi: MessagesApi,
  silhouette: Silhouette[DefaultEnv],
  implicit val webJarAssets: WebJarAssets,
  implicit val config: Configuration,
  implicit val ec: ExecutionContext
)
    extends BaseController(silhouette) with I18nSupport {

  def index = withoutSession("index") { implicit request =>
    Future(Ok(html.app(  )))
  }

  def bundleUrl(projectName: String): Option[String] = {
    val name = projectName.toLowerCase
    Seq(s"$name-opt-bundle.js", s"$name-fastopt-bundle.js")
      .find(name => getClass.getResource(s"/public/$name") != null)
      .map(controllers.routes.Assets.versioned(_).url)
  }

} 
开发者ID:iriddhi,项目名称:mis,代码行数:30,代码来源:ViewController.scala


示例9: BasicActorCtrl

//设置package包名称以及导入依赖的类
package controllers



import javax.inject.Inject

import akka.actor.ActorSystem
import akka.stream.Materializer
import com.mohiva.play.silhouette.api.{HandlerResult, Silhouette}
import models.daos.actors.ChatActorFactory
import play.api.Logger
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.libs.concurrent.Execution.Implicits._
import play.api.libs.json.JsValue
import play.api.libs.streams.ActorFlow
import play.api.mvc._
import utils.DefaultEnv

import scala.concurrent.Future

class BasicActorCtrl @Inject()(
    val messagesApi: MessagesApi,
    implicit val mat: Materializer,
    implicit val actorSystem: ActorSystem,
    val chatActorFactory: ChatActorFactory,
    silhouette: Silhouette[DefaultEnv]
) extends Controller with I18nSupport {

  val log = Logger("IDP." + this.getClass.getSimpleName);

  def send(eventName: String, username: String, token: String) = WebSocket.acceptOrResult[JsValue, JsValue] {
    request =>
      {
        //log.debug(s"new query string:  ${request.getQueryString("X-Auth-Token")}")
        val tmpRequest = request.copy(headers = new Headers(Seq("X-Auth-Token" -> token)))
        implicit val req = Request(tmpRequest, AnyContentAsEmpty)
        silhouette.SecuredRequestHandler { securedRequest =>
          Future.successful(HandlerResult(Ok, Some(securedRequest.identity)))
        }.map {
          case HandlerResult(r, Some(user)) => {
            Right(ActorFlow.actorRef(chatActorFactory.props(username, eventName, _)))
          }
          case HandlerResult(r, None) => {
            Left(r)
          }
        }
      }
  }
} 
开发者ID:seyuf,项目名称:play-swagger-silhouette-actors,代码行数:50,代码来源:BasicActorCtrl.scala


示例10: Auth

//设置package包名称以及导入依赖的类
package utils.auth.deadbolt

import javax.inject.{Inject, Singleton}

import be.objectify.deadbolt.scala.DeadboltActions
import com.mohiva.play.silhouette.api.Silhouette
import models.Roles
import play.api.mvc.{BodyParser, BodyParsers, Result, Results}
import utils.auth.DefaultEnv

import scala.concurrent.Future


@Singleton
class Auth @Inject()(deadboltActions: DeadboltActions, silhouette: Silhouette[DefaultEnv])
  extends Results with BodyParsers {

  def SubjectPresent[B](parser: BodyParser[B] = parse.anyContent)(block: SecureRequest[B] => Future[Result]) =
    silhouette.SecuredAction.async(parser) { implicit req =>
      deadboltActions.SubjectPresent()(parser)(block.compose(_ => new SecureRequest(req)))(req)
    }

  def Restrict[B](parser: BodyParser[B] = parse.anyContent)(role: Roles.Role)(block: SecureRequest[B] => Future[Result]) =
    silhouette.SecuredAction.async(parser) { implicit request =>
      deadboltActions.Restrict(role.group)(parser)(block.compose(_ => new SecureRequest(request)))(request)
    }

} 
开发者ID:dexmo007,项目名称:play-sil-seed-exp,代码行数:29,代码来源:Auth.scala


示例11: AboutController

//设置package包名称以及导入依赖的类
package controllers

import javax.inject.Inject

import com.mohiva.play.silhouette.api.Silhouette
import play.api.i18n.{ I18nSupport, MessagesApi }
import play.api.mvc.{ Action, Controller }
import utils.auth.DefaultEnv

class AboutController @Inject() (
  val messagesApi: MessagesApi,
  silhouette: Silhouette[DefaultEnv])
  extends Controller with I18nSupport {

  def index = silhouette.UserAwareAction { implicit request =>
    Ok(views.html.about(request.identity))
  }

  def help = silhouette.UserAwareAction { implicit request =>
    Redirect(routes.AboutController.index())
  }

  def technologies = silhouette.UserAwareAction { implicit request =>
    Ok(views.html.technologies(request.identity))
  }
} 
开发者ID:fstiehle,项目名称:de.htwg.wt.nmm,代码行数:27,代码来源:AboutController.scala


示例12: LocalizationController

//设置package包名称以及导入依赖的类
package controllers

import javax.inject.Inject

import com.mohiva.play.silhouette.api.Silhouette
import play.api.i18n.{ I18nSupport, MessagesApi, Lang }
import play.api.mvc.Controller
import utils.auth.DefaultEnv

class LocalizationController @Inject() (
  val messagesApi: MessagesApi,
  silhouette: Silhouette[DefaultEnv])
  extends Controller with I18nSupport {

  def langDE = silhouette.UserAwareAction { implicit request =>
    val referrer = request.headers.get(REFERER).getOrElse("/")
    Redirect(referrer).withLang(Lang("de"))
  }

  def langEN = silhouette.UserAwareAction { implicit request =>
    val referrer = request.headers.get(REFERER).getOrElse("/")
    Redirect(referrer).withLang(Lang("en"))
  }
} 
开发者ID:fstiehle,项目名称:de.htwg.wt.nmm,代码行数:25,代码来源:LocalizationController.scala


示例13: ProductController

//设置package包名称以及导入依赖的类
package controllers

import scala.concurrent.Future
import javax.inject._

import com.mohiva.play.silhouette.api.Silhouette
import com.mohiva.play.silhouette.api.repositories.AuthInfoRepository
import com.mohiva.play.silhouette.api.util.Clock
import com.mohiva.play.silhouette.impl.providers.{CredentialsProvider, SocialProviderRegistry}
import forms.ProductForm
import models.Product
import models.daos.ProductDAO
import models.services.UserService
import play.api.Configuration
import play.api.i18n.I18nSupport
import play.api.i18n.MessagesApi
import play.api.libs.concurrent.Execution.Implicits._
import play.api.mvc.Controller
import utils.auth.DefaultEnv

@Singleton
class ProductController @Inject()(val messagesApi: MessagesApi,
                                  silhouette: Silhouette[DefaultEnv],
                                  userService: UserService,
                                  authInfoRepository: AuthInfoRepository,
                                  credentialsProvider: CredentialsProvider,
                                  socialProviderRegistry: SocialProviderRegistry,
                                  configuration: Configuration,
                                  clock: Clock,
                                  productDAO: ProductDAO,
                                  implicit val webJarAssets: WebJarAssets)
  extends Controller with I18nSupport {

  private val logger = org.slf4j.LoggerFactory.getLogger(this.getClass)


  def list = silhouette.SecuredAction.async { implicit request =>
    productDAO.all().map { products =>
      logger.info(s"Calling index: products = ${products}")
      Ok(views.html.products.list(request.identity, ProductForm.form, products))
    }
  }

  def add = silhouette.SecuredAction.async { implicit request =>
    ProductForm.form.bindFromRequest.fold(
      form => Future.successful(BadRequest(views.html.products.details(request.identity,ProductForm.form))),
      data => {
        val product = Product(
          ean = data.ean,
          name = data.name,
          description = data.description
        )
        productDAO.insert(product).map(_ => Redirect(routes.ProductController.list))
      }
    )
  }

} 
开发者ID:vahana-team,项目名称:play-slick-silhouette-postgres,代码行数:59,代码来源:ProductController.scala


示例14: UserResourceController

//设置package包名称以及导入依赖的类
package com.clemble.loveit.thank.controller

import javax.inject.{Inject, Singleton}

import com.clemble.loveit.common.util.AuthEnv
import com.clemble.loveit.thank.service.repository.UserResourceRepository
import com.mohiva.play.silhouette.api.Silhouette
import play.api.mvc.Controller

import scala.concurrent.ExecutionContext

@Singleton
case class UserResourceController @Inject()(
                                             repo: UserResourceRepository,
                                             silhouette: Silhouette[AuthEnv],
                                             implicit val ec: ExecutionContext
                                           ) extends Controller {

  def getMy() = silhouette.SecuredAction.async(implicit req => {
    val fUserResource = repo.find(req.identity.id)
    fUserResource.map(_ match {
      case Some(res) => Ok(res)
      case None => NotFound
    })
  })

} 
开发者ID:thankyo,项目名称:thank,代码行数:28,代码来源:UserResourceController.scala


示例15: UserSupportedProjectController

//设置package包名称以及导入依赖的类
package com.clemble.loveit.thank.controller

import javax.inject.Inject

import com.clemble.loveit.common.model.UserID
import com.clemble.loveit.common.util.AuthEnv
import com.clemble.loveit.thank.service.UserSupportedProjectsService
import com.mohiva.play.silhouette.api.Silhouette
import play.api.libs.json.Json
import play.api.mvc.Controller

import scala.concurrent.ExecutionContext

class UserSupportedProjectController @Inject()(
                                                supportedProjectsService: UserSupportedProjectsService,
                                                silhouette: Silhouette[AuthEnv],
                                                implicit val ec: ExecutionContext
                                              ) extends Controller {

  def getSupported(supporter: UserID) = silhouette.SecuredAction.async(implicit req => {
    supportedProjectsService.
      getSupported(supporter).
      map(projects => Ok(Json.toJson(projects)))
  })

} 
开发者ID:thankyo,项目名称:thank,代码行数:27,代码来源:UserSupportedProjectController.scala


示例16: UserStatController

//设置package包名称以及导入依赖的类
package com.clemble.loveit.thank.controller

import java.time.YearMonth
import javax.inject.Inject

import com.clemble.loveit.common.util.AuthEnv
import com.clemble.loveit.thank.service.repository.UserStatRepo
import com.mohiva.play.silhouette.api.Silhouette
import play.api.libs.json.Json
import play.api.mvc.Controller

import scala.concurrent.ExecutionContext

class UserStatController @Inject()(
                                    statRepo: UserStatRepo,
                                    silhouette: Silhouette[AuthEnv],
                                    implicit val ec: ExecutionContext
                                  ) extends Controller {

  def getMy(year: Int, month: Int) = silhouette.SecuredAction.async(implicit req => {
    val user = req.identity.id;
    val yearMonth = YearMonth.of(year, month)
    statRepo.get(req.identity.id, yearMonth).map(stat => Ok(Json.toJson(stat)))
  })

} 
开发者ID:thankyo,项目名称:thank,代码行数:27,代码来源:UserStatController.scala


示例17: ROVerificationController

//设置package包名称以及导入依赖的类
package com.clemble.loveit.thank.controller

import javax.inject.Inject

import com.clemble.loveit.common.model.Resource
import com.clemble.loveit.common.util.AuthEnv
import com.clemble.loveit.thank.service.ROVerificationService
import com.mohiva.play.silhouette.api.Silhouette
import play.api.libs.json.Json
import play.api.mvc.Controller

import scala.concurrent.ExecutionContext

case class ROVerificationController @Inject()(
                                               service: ROVerificationService,
                                               silhouette: Silhouette[AuthEnv],
                                               implicit val ec: ExecutionContext
                                                    ) extends Controller {

  def removeMy() = silhouette.SecuredAction.async(implicit req => {
    val fRemove = service.remove(req.identity.id)
    fRemove.map(res => Ok(Json.toJson(res)))
  })

  def createMy() = silhouette.SecuredAction.async(parse.json[Resource])(implicit req => {
    val fVerification = service.create(req.identity.id, req.body)
    fVerification.map(Created(_))
  })

  def verifyMy() = silhouette.SecuredAction.async(implicit req => {
    val fVerification = service.verify(req.identity.id)
    fVerification.map(_ match {
      case Some(res) => Ok(res)
      case None => NotFound
    })
  })

} 
开发者ID:thankyo,项目名称:thank,代码行数:39,代码来源:ROVerificationController.scala


示例18: InvitationController

//设置package包名称以及导入依赖的类
package com.clemble.loveit.user.controller

import javax.inject.{Inject, Singleton}

import com.clemble.loveit.common.util.AuthEnv
import com.clemble.loveit.user.model.Invitation
import com.clemble.loveit.user.service.InvitationService
import com.mohiva.play.silhouette.api.repositories.AuthInfoRepository
import com.mohiva.play.silhouette.api.{Logger, Silhouette}
import com.mohiva.play.silhouette.impl.providers.SocialProviderRegistry
import play.api.libs.json._
import play.api.mvc.Controller

import scala.concurrent.{ExecutionContext, Future}

@Singleton
case class InvitationController @Inject()(
                                           invitationService: InvitationService,
                                           silhouette: Silhouette[AuthEnv],
                                           authInfoRepository: AuthInfoRepository,
                                           socialProviderRegistry: SocialProviderRegistry,
                                           implicit val ec: ExecutionContext
                                         ) extends Controller with Logger {

  def invite() = silhouette.SecuredAction.async(parse.json[JsObject].map(_ \ "linkOrEmail"))(implicit req => {
    req.body match {
      case JsDefined(JsString(linkOrEmail)) =>
        val inv = Invitation(linkOrEmail, req.identity.id)
        invitationService.
          save(inv).
          map(res => Ok(Json.toJson(res)))
      case _ =>
        Future.successful(BadRequest("linkOrEmail field is missing"))
    }
  })

} 
开发者ID:thankyo,项目名称:thank,代码行数:38,代码来源:InvitationController.scala


示例19: UserController

//设置package包名称以及导入依赖的类
package com.clemble.loveit.user.controller

import com.clemble.loveit.user.service.UserService
import com.clemble.loveit.common.util.{AuthEnv}
import javax.inject.{Inject, Singleton}
import com.mohiva.play.silhouette.api.Silhouette
import play.api.mvc.Controller

import scala.concurrent.ExecutionContext

@Singleton
case class UserController @Inject()(
                                     userService: UserService,
                                     silhouette: Silhouette[AuthEnv],
                                     implicit val ec: ExecutionContext
                                   ) extends Controller {

  def getMy() = silhouette.SecuredAction.async(implicit req => {
    import com.clemble.loveit.user.model.User.userWriteable
    val realId = req.identity.id
    val fUserOpt = userService.findById(realId)
    fUserOpt.map(userOpt => Ok(userOpt.get))
  })

} 
开发者ID:thankyo,项目名称:thank,代码行数:26,代码来源:UserController.scala


示例20: MonthlyLimitController

//设置package包名称以及导入依赖的类
package com.clemble.loveit.payment.controller

import javax.inject.Inject

import com.clemble.loveit.common.util.AuthEnv
import com.clemble.loveit.payment.model.Money
import com.clemble.loveit.payment.service.repository.MonthlyLimitRepository
import com.mohiva.play.silhouette.api.Silhouette
import play.api.mvc.Controller

import scala.concurrent.ExecutionContext

class MonthlyLimitController @Inject()(
                                        repo: MonthlyLimitRepository,
                                        silhouette: Silhouette[AuthEnv],
                                        implicit val ec: ExecutionContext
                                      ) extends Controller {

  def getMonthlyLimit = silhouette.SecuredAction.async(implicit req => {
    val user = req.identity.id
    repo.getMonthlyLimit(user).map(_ match {
      case Some(limit) => Ok(limit)
      case None => NotFound
    })
  })

  def setMonthlyLimit = silhouette.SecuredAction.async(parse.json[Money])(implicit req => {
    val user = req.identity.id
    val fLimit = repo.setMonthlyLimit(user, req.body)
    fLimit.map(_ match {
      case true => Ok(req.body)
      case false => InternalServerError("Failed to update user")
    })
  })

} 
开发者ID:thankyo,项目名称:thank,代码行数:37,代码来源:MonthlyLimitController.scala



注:本文中的com.mohiva.play.silhouette.api.Silhouette类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Scala Named类代码示例发布时间:2022-05-23
下一篇:
Scala Xor类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap