public Share validateSharePermissions()

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;
    	}
	}