franta-hg@51: package cz.frantovo.nekurak.web; franta-hg@51: franta-hg@52: import cz.frantovo.nekurak.vyjimky.NekurakVyjimka; franta-hg@51: import java.util.Collections; franta-hg@51: import java.util.HashMap; franta-hg@51: import java.util.Map; franta-hg@52: import java.util.logging.Level; franta-hg@52: import java.util.logging.Logger; franta-hg@51: franta-hg@51: /** franta-hg@51: * franta-hg@51: * @author fiki franta-hg@51: */ franta-hg@51: public class RegistraceUzivatele { franta-hg@51: franta-hg@51: private HledacSluzby hledac = new HledacSluzby(); franta-hg@52: private static final Logger log = Logger.getLogger(RegistraceUzivatele.class.getSimpleName()); franta-hg@51: private Map uzivatele = Collections.synchronizedMap(new HashMap()); franta-hg@51: private String token; franta-hg@51: franta-hg@53: /** franta-hg@53: * Přidáme uživatelský účet do mapy místo abychom použili prostou proměnnou. franta-hg@53: * Uživatel si totiž může otevřít víc registračních formulářů, franta-hg@53: * postupně je vyplnit a pak potvrdit jeden z nich. franta-hg@53: * Takto nedojde k přepsání údajů z předchozích vyplněných formulářů. franta-hg@53: */ franta-hg@51: public void setUzivatel(UzivatelPredRegistraci uzivatel) { franta-hg@51: uzivatele.put(uzivatel.getToken(), uzivatel); franta-hg@51: } franta-hg@51: franta-hg@51: public void setToken(String token) { franta-hg@51: this.token = token; franta-hg@51: } franta-hg@51: franta-hg@52: /** franta-hg@52: * @return true, pokud registrace proběhla, jinak vyhazuje výjimku. franta-hg@52: * @throws NekurakVyjimka špatný token nebo chyba při zakládání uživatele franta-hg@52: */ franta-hg@52: public String getDokonciRegistraci() { franta-hg@51: franta-hg@51: UzivatelPredRegistraci u = uzivatele.get(token); franta-hg@51: franta-hg@51: if (u == null) { franta-hg@51: /** Chybný token – uživatel se snaží dokončit neexistující registraci */ franta-hg@52: return "registrace.vyjimka.token"; franta-hg@51: } else { franta-hg@52: try { franta-hg@52: hledac.getUzivatelEJB().zalozUzivatele(u.getUzivatel()); franta-hg@52: } catch (Exception e) { franta-hg@52: log.log(Level.WARNING, "Chyba při registraci uživatele.", e); franta-hg@52: return "registrace.vyjimka"; franta-hg@52: } franta-hg@52: return null; franta-hg@51: } franta-hg@51: } franta-hg@51: }