package fi.otavanopisto.pyramus.rest.security; import javax.inject.Inject; import fi.otavanopisto.pyramus.dao.students.StudentDAO; import fi.otavanopisto.pyramus.dao.users.StaffMemberDAO; import fi.otavanopisto.pyramus.domainmodel.users.User; import fi.otavanopisto.pyramus.security.impl.UserContextResolver; import fi.otavanopisto.security.ContextReference; public class RESTUserEntityContextResolverImpl implements UserContextResolver { @Inject private StudentDAO studentDAO; @Inject private StaffMemberDAO staffMemberDAO; @Override public boolean handlesContextReference(ContextReference contextReference) { return fi.otavanopisto.pyramus.rest.model.Student.class.isInstance(contextReference) || fi.otavanopisto.pyramus.rest.model.StaffMember.class.isInstance(contextReference); } @Override public User resolveUser(ContextReference contextReference) { if (fi.otavanopisto.pyramus.rest.model.Student.class.isInstance(contextReference)) { fi.otavanopisto.pyramus.rest.model.Student student = (fi.otavanopisto.pyramus.rest.model.Student) contextReference; Long id = student.getId(); return id != null ? studentDAO.findById(id) : null; } if (fi.otavanopisto.pyramus.rest.model.StaffMember.class.isInstance(contextReference)) { fi.otavanopisto.pyramus.rest.model.StaffMember staffMember = (fi.otavanopisto.pyramus.rest.model.StaffMember) contextReference; Long id = staffMember.getId(); return id != null ? staffMemberDAO.findById(id) : null; } return null; } }