package org.pac4j.play.deadbolt2;
import be.objectify.deadbolt.java.models.Permission;
import be.objectify.deadbolt.java.models.Role;
import be.objectify.deadbolt.java.models.Subject;
import org.pac4j.core.profile.CommonProfile;
import java.util.ArrayList;
import java.util.List;
/**
* The deadbolt subject built from the pac4j user profile.
*
* @author Jerome Leleu
* @since 2.6.0
*/
public class Pac4jSubject implements Subject {
private String id;
private List<Pac4jRole> roles = new ArrayList<>();
private List<Pac4jPermission> permissions = new ArrayList<>();
public Pac4jSubject(final CommonProfile profile) {
id = profile.getId();
for (final String role : profile.getRoles()) {
roles.add(new Pac4jRole(role));
}
for (final String permission : profile.getPermissions()) {
permissions.add(new Pac4jPermission(permission));
}
}
@Override
public List<? extends Role> getRoles() {
return roles;
}
@Override
public List<? extends Permission> getPermissions() {
return permissions;
}
@Override
public String getIdentifier() {
return id;
}
}