Oddělení požadavku na registraci od samotného uživatele.
Robustnější návrh.
1.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/UzivatelEJB.java Thu Mar 04 22:42:34 2010 +0100
1.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/UzivatelEJB.java Fri Mar 05 10:28:34 2010 +0100
1.3 @@ -1,6 +1,7 @@
1.4 package cz.frantovo.nekurak.ejb;
1.5
1.6 import cz.frantovo.nekurak.dao.UzivatelDAO;
1.7 +import cz.frantovo.nekurak.dto.PozadavekNaRegistraciUzivatele;
1.8 import cz.frantovo.nekurak.dto.Uzivatel;
1.9 import cz.frantovo.nekurak.util.Hash;
1.10 import cz.frantovo.nekurak.vyjimky.NecekanaVyjimka;
1.11 @@ -21,8 +22,9 @@
1.12 private UzivatelDAO uzivatelDao;
1.13
1.14 /** Uživatele může zakládat kdokoli – uživatel se registruje sám. */
1.15 - public void zalozUzivatele(Uzivatel u) throws NekurakVyjimka {
1.16 + public void registrujUzivatele(PozadavekNaRegistraciUzivatele p) throws NekurakVyjimka {
1.17 try {
1.18 + Uzivatel u = p.getUzivatel();
1.19 /** Heslo musíme před uložení zahashovat, aby se uživatel mohl přihlásit. */
1.20 u.setHeslo(Hash.hashuj(u.getHeslo()));
1.21 uzivatelDao.uloz(u);
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/PozadavekNaRegistraciUzivatele.java Fri Mar 05 10:28:34 2010 +0100
2.3 @@ -0,0 +1,74 @@
2.4 +package cz.frantovo.nekurak.dto;
2.5 +
2.6 +import java.io.Serializable;
2.7 +
2.8 +/**
2.9 + * Uživatel se registruje na webu.
2.10 + * Tato třída obsahuje jen ty údaje, které se vyplňují do registračního formuláře.
2.11 + * Nakonec se převede na instanci třídy Uzivatel a uloží do databáze.
2.12 + * @author fiki
2.13 + */
2.14 +public class PozadavekNaRegistraciUzivatele implements Serializable {
2.15 +
2.16 + /** Uživatelské jméno */
2.17 + private String prezdivka;
2.18 + /** Heslo ve tvaru, v jakém má být uloženo do databáze */
2.19 + private String heslo;
2.20 + /** Křestní jméno */
2.21 + private String jmeno;
2.22 + private String prijmeni;
2.23 + private String email;
2.24 +
2.25 + public String getPrezdivka() {
2.26 + return prezdivka;
2.27 + }
2.28 +
2.29 + public void setPrezdivka(String prezdivka) {
2.30 + this.prezdivka = prezdivka;
2.31 + }
2.32 +
2.33 + public String getHeslo() {
2.34 + return heslo;
2.35 + }
2.36 +
2.37 + public void setHeslo(String heslo) {
2.38 + this.heslo = heslo;
2.39 + }
2.40 +
2.41 + public String getJmeno() {
2.42 + return jmeno;
2.43 + }
2.44 +
2.45 + public void setJmeno(String jmeno) {
2.46 + this.jmeno = jmeno;
2.47 + }
2.48 +
2.49 + public String getPrijmeni() {
2.50 + return prijmeni;
2.51 + }
2.52 +
2.53 + public void setPrijmeni(String prijmeni) {
2.54 + this.prijmeni = prijmeni;
2.55 + }
2.56 +
2.57 + public String getEmail() {
2.58 + return email;
2.59 + }
2.60 +
2.61 + public void setEmail(String email) {
2.62 + this.email = email;
2.63 + }
2.64 +
2.65 + /** Převede údaje z registrace do instance třídy Uzivatel */
2.66 + public Uzivatel getUzivatel() {
2.67 + Uzivatel u = new Uzivatel();
2.68 +
2.69 + u.setPrezdivka(prezdivka);
2.70 + u.setHeslo(heslo);
2.71 + u.setJmeno(jmeno);
2.72 + u.setPrijmeni(prijmeni);
2.73 + u.setEmail(email);
2.74 +
2.75 + return u;
2.76 + }
2.77 +}
3.1 --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/UzivatelRemote.java Thu Mar 04 22:42:34 2010 +0100
3.2 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/UzivatelRemote.java Fri Mar 05 10:28:34 2010 +0100
3.3 @@ -1,6 +1,6 @@
3.4 package cz.frantovo.nekurak.ejb;
3.5
3.6 -import cz.frantovo.nekurak.dto.Uzivatel;
3.7 +import cz.frantovo.nekurak.dto.PozadavekNaRegistraciUzivatele;
3.8 import cz.frantovo.nekurak.vyjimky.NekurakVyjimka;
3.9 import javax.ejb.Remote;
3.10
3.11 @@ -11,5 +11,6 @@
3.12 @Remote
3.13 public interface UzivatelRemote {
3.14
3.15 - public void zalozUzivatele(Uzivatel u) throws NekurakVyjimka;
3.16 + /** Registrace nového uživatele */
3.17 + public void registrujUzivatele(PozadavekNaRegistraciUzivatele p) throws NekurakVyjimka;
3.18 }
4.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/RegistraceUzivatele.java Thu Mar 04 22:42:34 2010 +0100
4.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/RegistraceUzivatele.java Fri Mar 05 10:28:34 2010 +0100
4.3 @@ -45,7 +45,7 @@
4.4 return "registrace.vyjimka.token";
4.5 } else {
4.6 try {
4.7 - hledac.getUzivatelEJB().zalozUzivatele(u.getUzivatel());
4.8 + hledac.getUzivatelEJB().registrujUzivatele(u.getUzivatel());
4.9 } catch (Exception e) {
4.10 log.log(Level.WARNING, "Chyba při registraci uživatele.", e);
4.11 return "registrace.vyjimka";
5.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/UzivatelPredRegistraci.java Thu Mar 04 22:42:34 2010 +0100
5.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/UzivatelPredRegistraci.java Fri Mar 05 10:28:34 2010 +0100
5.3 @@ -1,6 +1,6 @@
5.4 package cz.frantovo.nekurak.web;
5.5
5.6 -import cz.frantovo.nekurak.dto.Uzivatel;
5.7 +import cz.frantovo.nekurak.dto.PozadavekNaRegistraciUzivatele;
5.8 import cz.frantovo.nekurak.util.Hash;
5.9 import java.util.logging.Level;
5.10 import java.util.logging.Logger;
5.11 @@ -12,14 +12,14 @@
5.12 public class UzivatelPredRegistraci {
5.13
5.14 private static final Logger log = Logger.getLogger(UzivatelPredRegistraci.class.getSimpleName());
5.15 - private Uzivatel uzivatel;
5.16 + private PozadavekNaRegistraciUzivatele uzivatel;
5.17 private final String token = generujToken();
5.18
5.19 - public Uzivatel getUzivatel() {
5.20 + public PozadavekNaRegistraciUzivatele getUzivatel() {
5.21 return uzivatel;
5.22 }
5.23
5.24 - public void setUzivatel(Uzivatel uzivatel) {
5.25 + public void setUzivatel(PozadavekNaRegistraciUzivatele uzivatel) {
5.26 this.uzivatel = uzivatel;
5.27 }
5.28
6.1 --- a/java/nekurak.net-web/web/WEB-INF/casti/registrovatUzivatele.jsp Thu Mar 04 22:42:34 2010 +0100
6.2 +++ b/java/nekurak.net-web/web/WEB-INF/casti/registrovatUzivatele.jsp Fri Mar 05 10:28:34 2010 +0100
6.3 @@ -5,7 +5,7 @@
6.4 xmlns:fn="http://java.sun.com/jsp/jstl/functions"
6.5 version="2.0">
6.6
6.7 - <jsp:useBean id="uzivatel" class="cz.frantovo.nekurak.dto.Uzivatel" scope="request"/>
6.8 + <jsp:useBean id="uzivatel" class="cz.frantovo.nekurak.dto.PozadavekNaRegistraciUzivatele" scope="request"/>
6.9 <jsp:useBean id="uzivatelPredRegistraci" class="cz.frantovo.nekurak.web.UzivatelPredRegistraci" scope="request"/>
6.10 <jsp:useBean id="registraceUzivatele" class="cz.frantovo.nekurak.web.RegistraceUzivatele" scope="session"/>
6.11
7.1 --- a/java/nekurak.net-web/web/styl.css Thu Mar 04 22:42:34 2010 +0100
7.2 +++ b/java/nekurak.net-web/web/styl.css Fri Mar 05 10:28:34 2010 +0100
7.3 @@ -144,4 +144,4 @@
7.4
7.5 .registraceKontrolaUdaju {
7.6 color: gray;
7.7 -}
7.8 \ No newline at end of file
7.9 +}