/*
 * Created on 22.12.2003
 *
 * To change the template for this generated file go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
package cz.triangle.dostal.prace.action;

import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.hibernate.Hibernate;
import net.sf.hibernate.Session;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import struts.HibernatePlugIn;
import cz.triangle.dostal.prace.Prace;

/**
 * @author xrusr01
 *
 * To change the template for this generated type comment go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
public class UzivateleVstupAction extends Action {
	public static String SUCCESS = "vypis";
	public static String CHYBA = "chyba";

	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		Session session = HibernatePlugIn.sessionFactory(request).openSession();
		try {
			HttpSession httpSession = request.getSession();

			if (request.isUserInRole("admin")){
				request.setAttribute("admin", new Boolean(true));			
			}

			//jestlize je admin nacteni uzivatelu
				List uzivatele = session.find("from Uzivatel as uzivatel where uzivatel.konec>=? and (uzivatel.skryty<>true or uzivatel.skryty is null) order by uzivatel.prijmeni, uzivatel.jmeno", new Date(), Hibernate.DATE);
				request.setAttribute("uzivatele", uzivatele);

			List prace = session.find("from Prace as prace where prace.casOd=prace.casDo");
			HashMap hm = new HashMap();
			for (Iterator iter = prace.iterator(); iter.hasNext();) {
				Prace element = (Prace) iter.next();
				hm.put(element.getId_uzivatel(),element.getUkol().getAkce().getNazev()+", "+element.getUkol().getNazev());
			}
			request.setAttribute("cinnosti", hm);

		} catch (Exception e) {
			request.setAttribute(CHYBA, "Napodařilo se načíst položky.");
		}

		if (session != null) {
			session.close();
		}
		return mapping.findForward(SUCCESS);
	}

}
