franta-hg@51: package cz.frantovo.nekurak.web; franta-hg@51: 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@145: private HledacSluzby hledac = new HledacSluzby(); franta-hg@145: private static final Logger log = Logger.getLogger(RegistraceUzivatele.class.getSimpleName()); franta-hg@145: private Map uzivatele = Collections.synchronizedMap(new HashMap()); franta-hg@145: private String token; franta-hg@51: franta-hg@145: /** franta-hg@145: * Přidáme uživatelský účet do mapy místo abychom použili prostou proměnnou. franta-hg@145: * Uživatel si totiž může otevřít víc registračních formulářů, franta-hg@145: * postupně je vyplnit a pak potvrdit jeden z nich. franta-hg@145: * Takto nedojde k přepsání údajů z předchozích vyplněných formulářů. franta-hg@145: */ franta-hg@145: public void setUzivatel(UzivatelPredRegistraci uzivatel) { franta-hg@145: uzivatele.put(uzivatel.getToken(), uzivatel); franta-hg@145: } franta-hg@51: franta-hg@145: public void setToken(String token) { franta-hg@145: this.token = token; franta-hg@145: } franta-hg@51: franta-hg@145: /** franta-hg@145: * @return null, pokud je vše v pořádku. franta-hg@145: * Jinak vrací chybovou hlášku (resp. klíč k lokalizaci) franta-hg@145: */ franta-hg@145: public String getDokonciRegistraci() { franta-hg@51: franta-hg@145: UzivatelPredRegistraci u = uzivatele.get(token); franta-hg@51: franta-hg@145: if (u == null) { franta-hg@145: /** Chybný token – uživatel se snaží dokončit neexistující registraci */ franta-hg@145: return "registrace.vyjimka.token"; franta-hg@145: } else { franta-hg@145: try { franta-hg@145: hledac.getUzivatelEJB().registrujUzivatele(u.getUzivatel()); franta-hg@145: } catch (Exception e) { franta-hg@145: log.log(Level.WARNING, "Chyba při registraci uživatele.", e); franta-hg@145: return "registrace.vyjimka"; franta-hg@145: } franta-hg@145: return null; franta-hg@145: } franta-hg@51: } franta-hg@51: }