# HG changeset patch # User František Kučera # Date 1275980957 -7200 # Node ID 1bbff3f5181ffc834bb37e58c7d40c963d96e0d5 # Parent 420d7024f6f4ed23a10fc734616cc42a2096406d komentáře – escapování a EJB diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Tue Jun 08 07:37:05 2010 +0200 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/ejb/PodnikEJB.java Tue Jun 08 09:09:17 2010 +0200 @@ -1,11 +1,15 @@ package cz.frantovo.nekurak.ejb; import cz.frantovo.nekurak.dao.PodnikDAO; +import cz.frantovo.nekurak.dto.Komentar; import cz.frantovo.nekurak.dto.Podnik; import cz.frantovo.nekurak.dto.VysledekHlasovani; import cz.frantovo.nekurak.ext.Geo; import cz.frantovo.nekurak.ext.Geo.Souradnice; +import cz.frantovo.nekurak.ext.Texy; +import cz.frantovo.nekurak.util.Komentare; import java.util.Collection; +import java.util.Date; import java.util.logging.Logger; import javax.annotation.Resource; import javax.annotation.security.RolesAllowed; @@ -74,4 +78,27 @@ public VysledekHlasovani getVysledekHlasovani(int podnik) { return podnikDAO.getVysledekHlasovani(podnik); } + + @RolesAllowed("opravneny") + public void komentuj(Komentar k) { + k.setUzivatel(ctx.getCallerPrincipal().getName()); + k.setDatum(new Date()); + + /** Převedeme na XML */ + switch (k.getTyp()) { + case PROSTY_TEXT: + k.setKomentar(Komentare.upravProstyText(k.getKomentar())); + k.setKomentar(Komentare.obal(k.getKomentar())); + break; + case TEXY: + Texy t = new Texy(); + k.setKomentar(t.preved(k.getKomentar())); + k.setKomentar(Komentare.obal(k.getKomentar())); + break; + } + + + /** Zkontrolujeme XML */ + log.severe("Komentář: " + k.getNadpis() + " | " + k.getKomentar() + " | " + k.getTyp()); + } } diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java Tue Jun 08 07:37:05 2010 +0200 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/Komentar.java Tue Jun 08 09:09:17 2010 +0200 @@ -14,6 +14,21 @@ private Date datum; private String nadpis; private String komentar; + private TYP typ; + + public TYP getTyp() { + return typ; + } + + public void setTyp(TYP typ) { + this.typ = typ; + } + + public enum TYP { + PROSTY_TEXT, + XHTML, + TEXY + } public int getId() { return id; diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java Tue Jun 08 07:37:05 2010 +0200 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/ejb/PodnikRemote.java Tue Jun 08 09:09:17 2010 +0200 @@ -1,5 +1,6 @@ package cz.frantovo.nekurak.ejb; +import cz.frantovo.nekurak.dto.Komentar; import cz.frantovo.nekurak.dto.Podnik; import cz.frantovo.nekurak.dto.VysledekHlasovani; import java.util.Collection; @@ -35,4 +36,9 @@ * @return agregované výsledky hlasování pro daný podnik */ public VysledekHlasovani getVysledekHlasovani(int podnik); + + /** + * @param k komentář, který se má přidat k podniku + */ + public void komentuj(Komentar k); } diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties Tue Jun 08 07:37:05 2010 +0200 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/preklady_cs.properties Tue Jun 08 09:09:17 2010 +0200 @@ -86,4 +86,11 @@ komentare.komentovat=Komentovat! komentare.nadpis=Nadpis komentare.tlacitkoOdeslat=Vlo\u017Eit koment\u00E1\u0159 -komentare.napsal=Napsal \ No newline at end of file +komentare.napsal=Napsal +komentar.odeslat.nadpis=Vlo\u017Een\u00ED koment\u00E1\u0159e +komentar.odeslat.ok=Koment\u00E1\u0159 byl \u00FAsp\u011B\u0161n\u011B vlo\u017Een +komentar.odeslat.pokracujte=pokra\u010Dujte na str\u00E1nku podniku +komentar.typ.prostyText=Prost\u00FD text +komentar.typ.xhtml=XHTML form\u00E1tovan\u00FD text +komentar.typ.texy=Texy form\u00E1tovan\u00FD text + diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/util/Komentare.java Tue Jun 08 09:09:17 2010 +0200 @@ -0,0 +1,32 @@ +package cz.frantovo.nekurak.util; + +/** + * Validátor komentářů + * @author fiki + */ +public class Komentare { + + /** + * Escapuje XML a doplní XHTML zalomení na konce řádků. + * @param komentar prostý text zadaný uživatelem + * @return XHTML komentář bez kořenového elementu + */ + public static String upravProstyText(String komentar) { + komentar = escapujXML(komentar); + return "

" + komentar.replaceAll("\n", "
") + "

"; + } + + /** + * + * @param komentar vstupní XHTML + * @return XHTML obalené kořenovým elementem + */ + public static String obal(String komentar) { + return "
" + komentar + "
"; + } + + private static String escapujXML(String str) { + return str.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'"); + + } +} diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/OdeslatKomentar.java Tue Jun 08 09:09:17 2010 +0200 @@ -0,0 +1,18 @@ +package cz.frantovo.nekurak.web; + +import cz.frantovo.nekurak.dto.Komentar; +import java.util.logging.Logger; + +/** + * + * @author fiki + */ +public class OdeslatKomentar { + + private HledacSluzby hledac = new HledacSluzby(); + private static final Logger log = Logger.getLogger(OdeslatKomentar.class.getSimpleName()); + + public void setKomentar(Komentar k) { + hledac.getPodnikEJB().komentuj(k); + } +} diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp Tue Jun 08 09:09:17 2010 +0200 @@ -0,0 +1,32 @@ + + + + + + + + + + +

+ + + + + + + +

+ , + . +

+ + +
+ +
diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-web/web/WEB-INF/tags/nekurak/komentareVypis.tag --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/komentareVypis.tag Tue Jun 08 07:37:05 2010 +0200 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/komentareVypis.tag Tue Jun 08 09:09:17 2010 +0200 @@ -27,8 +27,16 @@
-
-
+ +
+ +
+ +
diff -r 420d7024f6f4 -r 1bbff3f5181f java/nekurak.net-web/web/index.jsp --- a/java/nekurak.net-web/web/index.jsp Tue Jun 08 07:37:05 2010 +0200 +++ b/java/nekurak.net-web/web/index.jsp Tue Jun 08 09:09:17 2010 +0200 @@ -40,6 +40,9 @@ + + +