java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/UzivatelEJB.java
changeset 145 0efefbf5f8b6
parent 85 063871cec626
child 186 b0f7d9ab4a07
     1.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/UzivatelEJB.java	Tue Mar 23 16:11:07 2010 +0100
     1.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/UzivatelEJB.java	Sun Jun 20 14:46:47 2010 +0200
     1.3 @@ -27,58 +27,58 @@
     1.4  @Stateless
     1.5  public class UzivatelEJB implements UzivatelRemote {
     1.6  
     1.7 -    @EJB
     1.8 -    private UzivatelDAO uzivatelDao;
     1.9 -    @EJB
    1.10 -    private Postak postak;
    1.11 -    private static final Logger log = Logger.getLogger(UzivatelEJB.class.getSimpleName());
    1.12 -    private Map<Locale, ResourceBundle> lokalizace = new HashMap<Locale, ResourceBundle>();
    1.13 +	@EJB
    1.14 +	private UzivatelDAO uzivatelDao;
    1.15 +	@EJB
    1.16 +	private Postak postak;
    1.17 +	private static final Logger log = Logger.getLogger(UzivatelEJB.class.getSimpleName());
    1.18 +	private Map<Locale, ResourceBundle> lokalizace = new HashMap<Locale, ResourceBundle>();
    1.19  
    1.20 -    /** Uživatele může zakládat kdokoli – uživatel se registruje sám. */
    1.21 -    public void registrujUzivatele(PozadavekNaRegistraciUzivatele p) throws NekurakVyjimka {
    1.22 -	try {
    1.23 -	    Uzivatel u = p.getUzivatel();
    1.24 -	    /** Heslo musíme před uložení zahashovat, aby se uživatel mohl přihlásit. */
    1.25 -	    u.setHeslo(Hash.hashuj(u.getHeslo()));
    1.26 -	    uzivatelDao.zaloz(u);
    1.27 -	    posliRegistracniEmail(p);
    1.28 -	} catch (NoSuchAlgorithmException e) {
    1.29 -	    /** Nemělo by nastat */
    1.30 -	    throw new NecekanaVyjimka("Neexistující hashovací algoritmus.", e);
    1.31 -	} catch (UnsupportedEncodingException e) {
    1.32 -	    /** Nemělo by nastat */
    1.33 -	    throw new NecekanaVyjimka("Nepodporované kódování znaků.", e);
    1.34 -	}
    1.35 -    }
    1.36 -
    1.37 -    private ResourceBundle getLokalizace(Locale jazyk) {
    1.38 -	if (jazyk == null) {
    1.39 -	    jazyk = Locale.getDefault();
    1.40 +	/** Uživatele může zakládat kdokoli – uživatel se registruje sám. */
    1.41 +	public void registrujUzivatele(PozadavekNaRegistraciUzivatele p) throws NekurakVyjimka {
    1.42 +		try {
    1.43 +			Uzivatel u = p.getUzivatel();
    1.44 +			/** Heslo musíme před uložení zahashovat, aby se uživatel mohl přihlásit. */
    1.45 +			u.setHeslo(Hash.hashuj(u.getHeslo()));
    1.46 +			uzivatelDao.zaloz(u);
    1.47 +			posliRegistracniEmail(p);
    1.48 +		} catch (NoSuchAlgorithmException e) {
    1.49 +			/** Nemělo by nastat */
    1.50 +			throw new NecekanaVyjimka("Neexistující hashovací algoritmus.", e);
    1.51 +		} catch (UnsupportedEncodingException e) {
    1.52 +			/** Nemělo by nastat */
    1.53 +			throw new NecekanaVyjimka("Nepodporované kódování znaků.", e);
    1.54 +		}
    1.55  	}
    1.56  
    1.57 -	if (lokalizace.get(jazyk) == null) {
    1.58 -	    lokalizace.put(jazyk, ResourceBundle.getBundle("cz.frantovo.nekurak.preklady", jazyk));
    1.59 +	private ResourceBundle getLokalizace(Locale jazyk) {
    1.60 +		if (jazyk == null) {
    1.61 +			jazyk = Locale.getDefault();
    1.62 +		}
    1.63 +
    1.64 +		if (lokalizace.get(jazyk) == null) {
    1.65 +			lokalizace.put(jazyk, ResourceBundle.getBundle("cz.frantovo.nekurak.preklady", jazyk));
    1.66 +		}
    1.67 +
    1.68 +		return lokalizace.get(jazyk);
    1.69  	}
    1.70  
    1.71 -	return lokalizace.get(jazyk);
    1.72 -    }
    1.73 -
    1.74 -    private void posliRegistracniEmail(PozadavekNaRegistraciUzivatele p) {
    1.75 -	try {
    1.76 -	    String email = p.getEmail();
    1.77 -	    if (Postak.isAdresaOk(email)) {
    1.78 -		ResourceBundle rb = getLokalizace(p.getJazyk());
    1.79 -		String jmeno = p.getJmeno() + " " + p.getPrijmeni();
    1.80 -		String predmet = rb.getString("registrace.email.predmet");
    1.81 -		Object[] hodnotyTextu = {jmeno, p.getPrezdivka()};
    1.82 -		String text = new MessageFormat(rb.getString("registrace.email.text"), p.getJazyk()).format(hodnotyTextu);
    1.83 -		postak.odesliZpravu(new Adresa(email, jmeno), null, predmet, text);
    1.84 -	    } else {
    1.85 -		log.log(Level.WARNING, "E-mailová adresa buď chybí nebo je chybná → neodesíláme registrační e-mail. Uživatel: " + p.getPrezdivka());
    1.86 -	    }
    1.87 -	} catch (NekurakVyjimka e) {
    1.88 -	    /** e-mail je jen informační → pokud se ho nepodaří odeslat, nemusíme stornovat registraci. */
    1.89 -	    log.log(Level.WARNING, "Chyba při posílání registračního e-mailu. Uživatel: " + p.getPrezdivka(), e);
    1.90 +	private void posliRegistracniEmail(PozadavekNaRegistraciUzivatele p) {
    1.91 +		try {
    1.92 +			String email = p.getEmail();
    1.93 +			if (Postak.isAdresaOk(email)) {
    1.94 +				ResourceBundle rb = getLokalizace(p.getJazyk());
    1.95 +				String jmeno = p.getJmeno() + " " + p.getPrijmeni();
    1.96 +				String predmet = rb.getString("registrace.email.predmet");
    1.97 +				Object[] hodnotyTextu = {jmeno, p.getPrezdivka()};
    1.98 +				String text = new MessageFormat(rb.getString("registrace.email.text"), p.getJazyk()).format(hodnotyTextu);
    1.99 +				postak.odesliZpravu(new Adresa(email, jmeno), null, predmet, text);
   1.100 +			} else {
   1.101 +				log.log(Level.WARNING, "E-mailová adresa buď chybí nebo je chybná → neodesíláme registrační e-mail. Uživatel: {0}", p.getPrezdivka());
   1.102 +			}
   1.103 +		} catch (NekurakVyjimka e) {
   1.104 +			/** e-mail je jen informační → pokud se ho nepodaří odeslat, nemusíme stornovat registraci. */
   1.105 +			log.log(Level.WARNING, "Chyba při posílání registračního e-mailu. Uživatel: " + p.getPrezdivka(), e);
   1.106 +		}
   1.107  	}
   1.108 -    }
   1.109  }