java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/RegistraceUzivatele.java
author František Kučera <franta-hg@frantovo.cz>
Thu Mar 04 14:09:21 2010 +0100 (2010-03-04)
changeset 52 4c0408690ebf
parent 51 d01685a7e07d
child 53 d76be0124c40
permissions -rw-r--r--
Hashování hesla, generování náhodného tokenu, částečný převod chyb na uživatelsky přijatelné hlášky.
franta-hg@51
     1
package cz.frantovo.nekurak.web;
franta-hg@51
     2
franta-hg@52
     3
import cz.frantovo.nekurak.vyjimky.NekurakVyjimka;
franta-hg@51
     4
import java.util.Collections;
franta-hg@51
     5
import java.util.HashMap;
franta-hg@51
     6
import java.util.Map;
franta-hg@52
     7
import java.util.logging.Level;
franta-hg@52
     8
import java.util.logging.Logger;
franta-hg@51
     9
franta-hg@51
    10
/**
franta-hg@51
    11
 *
franta-hg@51
    12
 * @author fiki
franta-hg@51
    13
 */
franta-hg@51
    14
public class RegistraceUzivatele {
franta-hg@51
    15
franta-hg@51
    16
    private HledacSluzby hledac = new HledacSluzby();
franta-hg@52
    17
    private static final Logger log = Logger.getLogger(RegistraceUzivatele.class.getSimpleName());
franta-hg@51
    18
    private Map<String, UzivatelPredRegistraci> uzivatele = Collections.synchronizedMap(new HashMap<String, UzivatelPredRegistraci>());
franta-hg@51
    19
    private String token;
franta-hg@51
    20
franta-hg@51
    21
    public void setUzivatel(UzivatelPredRegistraci uzivatel) {
franta-hg@51
    22
	uzivatele.put(uzivatel.getToken(), uzivatel);
franta-hg@51
    23
    }
franta-hg@51
    24
franta-hg@51
    25
    public void setToken(String token) {
franta-hg@51
    26
	this.token = token;
franta-hg@51
    27
    }
franta-hg@51
    28
franta-hg@52
    29
    /**
franta-hg@52
    30
     * @return true, pokud registrace proběhla, jinak vyhazuje výjimku.
franta-hg@52
    31
     * @throws NekurakVyjimka špatný token nebo chyba při zakládání uživatele
franta-hg@52
    32
     */
franta-hg@52
    33
    public String getDokonciRegistraci() {
franta-hg@51
    34
franta-hg@51
    35
	UzivatelPredRegistraci u = uzivatele.get(token);
franta-hg@51
    36
franta-hg@51
    37
	if (u == null) {
franta-hg@51
    38
	    /** Chybný token – uživatel se snaží dokončit neexistující registraci */
franta-hg@52
    39
	    return "registrace.vyjimka.token";
franta-hg@51
    40
	} else {
franta-hg@52
    41
	    try {
franta-hg@52
    42
		hledac.getUzivatelEJB().zalozUzivatele(u.getUzivatel());
franta-hg@52
    43
	    } catch (Exception e) {
franta-hg@52
    44
		log.log(Level.WARNING, "Chyba při registraci uživatele.", e);
franta-hg@52
    45
		return "registrace.vyjimka";
franta-hg@52
    46
	    }
franta-hg@52
    47
	    return null;
franta-hg@51
    48
	}
franta-hg@51
    49
    }
franta-hg@51
    50
}