package models; import org.jcrom.annotations.JcrName; import org.jcrom.annotations.JcrNode; import org.jcrom.annotations.JcrProperty; import play.data.validation.Email; import play.data.validation.MinSize; import play.data.validation.Required; import play.libs.Crypto; import play.modules.cream.Model; import play.modules.cream.ocm.JcrQueryResult; @JcrNode(mixinTypes = { "mix:created", "mix:lastModified", "mix:referenceable" }) public class User extends Model { @JcrName @Required public String name; @JcrProperty @Required @Email public String email; @JcrProperty @MinSize(5) public String password; @JcrProperty public boolean admin; public boolean checkPassword(String password2) { return password.equals(Crypto.passwordHash(password2)); } public static JcrQueryResult<User> findByEmail(String email) { return findBy("email = %s", email); } }