UserPngImageServlet.java 3.04 KB
/*
 * Copyright Codecrew Ry
 * 
 * All rights reserved.
 * 
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software. 
 * 
 * Any distribution and use in source and binary forms, with or without 
 * modification is not permitted without explicit written permission from the 
 * copyright owner. 
 * 
 * A non-exclusive royalty-free right is granted to the copyright owner of the 
 * Software to use, modify and distribute all modifications to the Software in 
 * future versions of the Software. 
 * 
 */
package fi.codecrew.moya.servlet;

import javax.ejb.EJB;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.beans.CardPrintBeanLocal;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.PrintedCard;

/**
 * Servlet implementation class UploadServlet
 */

@WebServlet(urlPatterns = "/png")
public class UserPngImageServlet extends GenericImageServlet {

	public UserPngImageServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
     * 
     */
	private static final long serialVersionUID = -3359999630873773508L;

	@EJB
	private transient UserBeanLocal userbean;

	@EJB
	private transient PermissionBeanLocal permbean;
	@EJB
	private CardPrintBeanLocal cardprint;

	private CardTemplateBeanLocal cardbean;

	private static final Logger logger = LoggerFactory.getLogger(UserPngImageServlet.class);

	// /dydata/(userimage|...)/stuff...

	@Override
	protected ImageMover getImagedata() {
		EventUser usr = permbean.getCurrentUser();
		logger.info("Trying to print imagedata for user {}", usr);
		ImageMover ret = new ImageMover();

		if (usr != null) {
			PrintedCard card = cardbean.checkPrintedCard(usr);
			try {
				byte[] img = cardprint.constructPNG(card);
				if (img.length > 0)
				{
					ret.setData(img);
					ret.setImagetype("image/png");
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

		if (ret.getImagetype() == null) {
			ret.setResponse(HttpServletResponse.SC_NOT_FOUND);
		}
		return ret;

	}
	// protected ImageMover getImagedata2() {
	// ImageMover ret = new ImageMover();
	// UserImage image =
	// userbean.findUserimageFORCE(super.getIdParam("imageid"));
	// if (image != null) { // &&
	// // if (permbean.isCurrentUser(image.getUser()) ||
	// // permbean.hasPermission(UserPermission.MODIFY) ||
	// // lhMatcher.matcher(request.getLocalAddr()).matches())
	// // {
	// ret.setData(image.getImageData());
	// ret.setImagetype(image.getMimeType());
	// // }
	// // else
	// // {
	// // ret.setResponse(HttpServletResponse.SC_FORBIDDEN);
	// // }
	//
	// } else
	// {
	// ret.setResponse(HttpServletResponse.SC_NOT_FOUND);
	// }
	// return ret;
	//
	// }
}