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 }