package kickr.db.entity.user; import java.security.Principal; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.validation.constraints.NotNull; import kickr.db.entity.BaseEntity; import org.hibernate.validator.constraints.Email; /** * * @author nikku */ @Entity @Table(name="kickr_user") @NamedQueries({ @NamedQuery(name = "User.byName", query = "SELECT u FROM User u WHERE u.name = :name") }) public class User extends BaseEntity implements Principal { @NotNull @Column(unique = true) private String name; @NotNull private String password; @Email @Column(unique = true) private String email; private int permissions = Role.toPermissions(Role.USER); public User() { } public User(String name, String email) { this.name = name; this.email = email; } @Override public String getName() { return name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public int getPermissions() { return permissions; } public void setPermissions(int permissions) { this.permissions = permissions; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public boolean hasRole(String roleName) { Role role = Role.valueOf(roleName.toUpperCase()); return role.isContained(permissions); } }