All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mle.play.controllers.AccountController.scala Maven / Gradle / Ivy

The newest version!
package com.mle.play.controllers

import com.mle.play.auth.BasicCredentials
import play.api.data.Form
import play.api.data.Forms._
import play.api.mvc.{AnyContent, Controller, Request, RequestHeader}

/**
 *
 * @author mle
 */
trait AccountController extends Controller with BaseSecurity {
  val INTENDED_URI = "intended_uri"
  val FEEDBACK = "feedback"
  val userFormKey = "username"
  val passFormKey = "password"
  val rememberMeKey = "remember"

  val oldPassKey = "oldPassword"
  val newPassKey = "newPassword"
  val newPassAgainKey = "newPasswordAgain"

  val loginForm = Form[BasicCredentials](mapping(
    userFormKey -> nonEmptyText,
    passFormKey -> nonEmptyText
  )(BasicCredentials.apply)(BasicCredentials.unapply)
    .verifying("Invalid credentials.", creds => validateCredentials(creds)))

  def changePasswordForm(implicit request: Request[AnyContent]) = Form(tuple(
    oldPassKey -> nonEmptyText.verifying("Incorrect old password.", pass => validateCredentials(BasicCredentials(authenticate(request).get.user, pass))),
    newPassKey -> nonEmptyText,
    newPassAgainKey -> nonEmptyText
  ).verifying("The new password was incorrectly repeated.", in => in match {
    case (_, newPass, newPassAgain) => newPass == newPassAgain
  }))

  protected def logUnauthorized(implicit request: RequestHeader) {
    log warn s"Unauthorized request: ${request.path} from: ${request.remoteAddress}"
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy