package models;
import java.io.Serializable;
import java.util.List;
import com.feth.play.module.pa.user.EmailIdentity;
import com.google.common.collect.ImmutableList;
public class CacheableUser implements IdentifiableUser, EmailIdentity,
Serializable {
private static final long serialVersionUID = 2956403030598144283L;
private final String id;
private final String provider;
private final String email;
private final String name;
private final String jackrabbitUserId;
private final List<String> roles;
public CacheableUser(String provider, User user, Iterable<String> roles) {
this.id = user.getId();
this.provider = provider;
this.email = user.getEmail();
this.name = user.getName();
this.jackrabbitUserId = user.getJackrabbitUserId();
this.roles = ImmutableList.copyOf(roles);
}
@Override
public String getId() { return id; }
public String getIdentifier() { return id; }
@Override
public String getProvider() { return provider; }
@Override
public String getEmail() { return email; }
@Override
public String getName() { return name; }
public String getJackrabbitUserId() { return jackrabbitUserId; }
@Override
public String toString() {
return String.format("%s <%s>", name, email);
}
public boolean hasRole(String name) {
for (String role : roles) {
if (role.equals(name))
return true;
}
return false;
}
public List<String> getRoles() {
return roles;
}
}