Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.liftweb {
- package mapper {
- import net.liftweb.persistence.{MetaSimpleUser, SimpleUser}
- import net.liftweb.mapper._
- import net.liftweb.util.Helpers
- trait MapperUser[T <: MapperUser[T]] extends SimpleUser[T] with LongKeyedMapper[T] with IdPK {
- self: T =>
- object fn extends MappedString(this, 64)
- def firstName = fn
- object ln extends MappedString(this, 64)
- def lastName = ln
- object emailAddr extends MappedEmail(this, 128)
- def email = emailAddr
- object pw extends MappedString(this, 64)
- def password = pw
- object pw_salt extends MappedString(this, 64) {
- override def defaultValue = Helpers.randomString(10)
- }
- def passwordSalt = pw_salt
- }
- trait MetaMapperUser[ModelType <: MapperUser[ModelType]] extends MetaSimpleUser[ModelType] with LongKeyedMetaMapper[ModelType] {
- self: ModelType =>
- def getByEmail(email: String) = find(By(emailAddr, email))
- def encryptPassword(password: String, salt: String) = Helpers.hash("{"+password+"} salt={"+salt+"}")
- }
- /*
- // Example usage:
- class ExampleUser extends MapperUser[ExampleUser] {
- def getSingleton = ExampleUser
- }
- object ExampleUser extends ExampleUser with MetaMapperUser[ExampleUser] {
- }
- */
- }
- }
Add Comment
Please, Sign In to add comment