in src/main/java/com/amazon/photosharing/facade/ShareFacade.java [59:83]
public Share validateSharePermissions(String p_hash, User p_user) throws IllegalAccessError {
CriteriaBuilder builder = em().getCriteriaBuilder();
CriteriaQuery<Share> search = builder.createQuery(Share.class);
Root<Share> root = search.from(Share.class);
search.where(builder.equal(root.get("hash"), p_hash));
try {
Share result = em().createQuery(search)
.setHint("org.hibernate.cacheable",true)
.getSingleResult();
//private access to not public share
if (result.getSharedWith() != null) {
//not logged in or logged in access to share not shared with
if (p_user == null || (p_user != null && !(p_user.getId().equals(result.getSharedWith().getId()) || p_user.getId().equals(result.getUser().getId())))){
throw new IllegalAccessError();
}
}
return result;
} catch (NoResultException ex) {
return null;
}
}