Commit f704bb71 by Tuomas Riihimäki

Korjattu kuvanlähetys. Listty primefaces.jar

1 parent f26d08e4
...@@ -156,17 +156,15 @@ public class UserBean implements UserBeanLocal { ...@@ -156,17 +156,15 @@ public class UserBean implements UserBeanLocal {
@Override @Override
@RolesAllowed(SpecialPermission.S_USER) @RolesAllowed(SpecialPermission.S_USER)
public UserImage uploadImage(Integer userid, String contentType, byte[] image, String filename, String description) throws PermissionDeniedException { public UserImage uploadImage(User user, String contentType, byte[] image, String filename, String description) throws PermissionDeniedException {
User user = permbean.getCurrentUser();
logger.debug("uploading image to userid {}", userid); user = userFacade.merge(user);
if (userid == null || userid.equals(0)) { logger.debug("uploading image to userid {}", user);
userid = user.getId();
}
if (!user.getId().equals(userid)) { if (!user.equals(permbean.getCurrentUser())) {
permbean.fatalPermission(UserPermission.MODIFY, "usert tried to save picture to userid " + userid + " without sufficient permissions!"); permbean.fatalPermission(UserPermission.MODIFY, "usert tried to save picture to userid " + user + " without sufficient permissions!");
user = userFacade.find(userid);
} }
UserImage userimage = new UserImage(user); UserImage userimage = new UserImage(user);
userimage.setMimeType(contentType); userimage.setMimeType(contentType);
userimage.setImageData(image); userimage.setImageData(image);
......
...@@ -29,7 +29,7 @@ public interface UserBeanLocal { ...@@ -29,7 +29,7 @@ public interface UserBeanLocal {
// void fatalNotLoggedIn(); // void fatalNotLoggedIn();
UserImage uploadImage(Integer userid, String contentType, byte[] image, String filename, String description) throws PermissionDeniedException; UserImage uploadImage(User user, String contentType, byte[] image, String filename, String description) throws PermissionDeniedException;
UserImage findUserImage(int id) throws PermissionDeniedException; UserImage findUserImage(int id) throws PermissionDeniedException;
......
...@@ -92,7 +92,7 @@ public class User extends GenericEntity { ...@@ -92,7 +92,7 @@ public class User extends GenericEntity {
@Column(name = "phone") @Column(name = "phone")
private String phone = ""; private String phone = "";
@OneToOne @OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "current_image_id", referencedColumnName = "id") @JoinColumn(name = "current_image_id", referencedColumnName = "id")
private UserImage currentImage; private UserImage currentImage;
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>LanBortalWeb</display-name> <display-name>LanBortalWeb</display-name>
<session-config> <session-config>
<session-timeout>30</session-timeout> <session-timeout>30</session-timeout>
...@@ -47,6 +50,17 @@ ...@@ -47,6 +50,17 @@
<url-pattern>*.jsf</url-pattern> <url-pattern>*.jsf</url-pattern>
<url-pattern>/faces/*</url-pattern> <url-pattern>/faces/*</url-pattern>
</servlet-mapping> </servlet-mapping>
<filter>
<display-name>PrimefacesFileupload</display-name>
<filter-name>PrimeFacesFileupload</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFacesFileupload</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter> <filter>
<display-name>HostnameFilter</display-name> <display-name>HostnameFilter</display-name>
<filter-name>HostnameFilter</filter-name> <filter-name>HostnameFilter</filter-name>
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:c="http://java.sun.com/jsp/jstl/core"
> >
<f:view locale="#{sessionHandler.locale}"> <f:view contentType="text/html" locale="#{sessionHandler.locale}">
<h:head> <h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><h:outputText value="#{layoutView.getHeader()}" /></title> <title><h:outputText value="#{layoutView.getHeader()}" /></title>
......
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<composite:interface>
</composite:interface>
<composite:implementation>
<h:outputScript target="head" library="script" name="jquery.min.js" />
<h:outputScript target="head" library="jpegcam" name="webcam.js" />
<h:outputScript target="head">
webcam.set_api_url( '#{request.contextPath}/UploadServlet?type=userimage&amp;id=#{userView.selectedUser.id}' );
webcam.set_hook('onComplete', 'my_completion_handler');
webcam.set_swf_url('#{request.contextPath}/resources/jpegcam/Webcam.swf');
webcam.set_shutter_sound(true,'#{request.contextPath}/resources/jpegcam/shutter.mp3');
function my_completion_handler(msg) {
// alert("Completition handler executed" + msg);
window.location.href=window.location.href;
}
</h:outputScript>
<button onclick="$('#webcamcontainer').prepend(webcam.get_html(320, 240));$('#webcamcontainer').show();$(this).hide();">#{i18n['userimage.webcam']}</button>
<div id="webcamcontainer" style="display: none;"></div>
<p>Voit lisätä kuvan kävijälippuasi varten. Näin nopeutat asiointiasi tapahtumaan tullessasi.</p>
<p>
Kuvasta on pystyttävä tunnistamaan ongelmitta kortin omistaja. Tästä johtuen kuvan tulee olla selkeä, eikä kuvassa saa
olla useita henkilöitä. Ohjeita hyvän tunnistekuvan ottamiseksi löytyy <a
href="http://www.poliisi.fi/poliisi/home.nsf/files/Passikuvaohje_26-02-2008_FI/$file/Passikuvaohje_26-02-2008_FI.pdf"
>poliisin passikuvaohjeesta.</a>
</p>
<form
onsubmit="window.open('', 'imagesubmitpopup', 'height=240,width=320'); this.target='imagesubmitpopup'; return true; "
action="#{request.contextPath}/UploadServlet?type=userimage" enctype="multipart/form-data" method="post"
>
<input type="hidden" name="id" value="#{userView.user.id}" />
<!-- <h:outputLabel value="#{i18n['imagefile.file']}" /> -->
<input type="file" name="file" />
<!-- <h:outputLabel value="#{i18n['imagefile.description']}"/><input type="text" name="description" /> -->
<input type="submit" name="submit" value="#{i18n['user.imagesubmit']}" />
</form>
<h2>#{i18n['user.thisIsCurrentImage']}</h2>
<h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" />
<h:panelGroup rendered="#{!empty userView.user.currentImage}">
<img width="300" src="#{request.contextPath}/Userimage?imageid=#{userView.user.currentImage.id}" alt="image" />
</h:panelGroup>
</composite:implementation>
</html>
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.prime.com.tr/ui"
> >
<h:body> <h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml"> <ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
...@@ -17,7 +17,56 @@ ...@@ -17,7 +17,56 @@
</ui:define> </ui:define>
<ui:define name="content"> <ui:define name="content">
<users:sendImage />
<h:outputScript target="head" library="script" name="jquery.min.js" />
<h:outputScript target="head" library="jpegcam" name="webcam.js" />
<h:outputScript target="head">
webcam.set_api_url( '#{request.contextPath}/UploadServlet?type=userimage&amp;id=#{userView.selectedUser.id}' );
webcam.set_hook('onComplete', 'my_completion_handler');
webcam.set_swf_url('#{request.contextPath}/resources/jpegcam/Webcam.swf');
webcam.set_shutter_sound(true,'#{request.contextPath}/resources/jpegcam/shutter.mp3');
function my_completion_handler(msg) {
// alert("Completition handler executed" + msg);
window.location.href="#{request.contextPath}/user/sendPicture.jsf?userid=#{userView.user.id}";
}
</h:outputScript>
<button
onclick="$('#webcamcontainer').prepend(webcam.get_html(320, 240));$('#webcamcontainer').show();$(this).hide();"
>#{i18n['userimage.webcam']}</button>
<div id="webcamcontainer" style="display: none;"></div>
<p>Voit lisätä kuvan kävijälippuasi varten. Näin nopeutat asiointiasi tapahtumaan tullessasi.</p>
<p>
Kuvasta on pystyttävä tunnistamaan ongelmitta kortin omistaja. Tästä johtuen kuvan tulee olla selkeä, eikä kuvassa
saa olla useita henkilöitä. Ohjeita hyvän tunnistekuvan ottamiseksi löytyy <a
href="http://www.poliisi.fi/poliisi/home.nsf/files/Passikuvaohje_26-02-2008_FI/$file/Passikuvaohje_26-02-2008_FI.pdf"
>poliisin passikuvaohjeesta.</a>
</p>
<h:form enctype="multipart/form-data">
<p:fileUpload value="#{userView.image}" mode="simple" />
<h:commandButton action="#{userView.sendImage}" value="#{i18n['user.imagesubmit']}" />
</h:form>
<h2>#{i18n['user.thisIsCurrentImage']}</h2>
<h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" />
<h:panelGroup rendered="#{!empty userView.user.currentImage}">
<img width="300" src="#{request.contextPath}/Userimage?imageid=#{userView.user.currentImage.id}" alt="image" />
</h:panelGroup>
</ui:define> </ui:define>
</ui:composition> </ui:composition>
......
...@@ -274,6 +274,7 @@ user.accountEventHeader=Tilitapahtumat ...@@ -274,6 +274,7 @@ user.accountEventHeader=Tilitapahtumat
user.address=Osoite user.address=Osoite
user.bank=Pankki user.bank=Pankki
user.bankaccount=Pankkitili user.bankaccount=Pankkitili
user.imageUploaded=Kuva lhetetty.
user.create=Luo k\u00e4ytt\u00e4j\u00e4 user.create=Luo k\u00e4ytt\u00e4j\u00e4
user.createdmessage=K\u00e4ytt\u00e4j\u00e4tunnus on luotu onnistuneesti. Voit nyt kirjautua sis\u00e4\u00e4n. user.createdmessage=K\u00e4ytt\u00e4j\u00e4tunnus on luotu onnistuneesti. Voit nyt kirjautua sis\u00e4\u00e4n.
......
...@@ -110,7 +110,7 @@ public class UploadServlet extends HttpServlet { ...@@ -110,7 +110,7 @@ public class UploadServlet extends HttpServlet {
String type = request.getParameter("type"); String type = request.getParameter("type");
if (type.equals("userimage")) { if (type.equals("userimage")) {
logger.debug("Uploading userimage for user {}"); logger.debug("Uploading userimage for user {}");
UserImage userimage = userbean.uploadImage(destId, contenttype, imagedata, filename, description); UserImage userimage = userbean.uploadImage(userbean.findById(destId), contenttype, imagedata, filename, description);
utilbean.convertImage(userimage.getUser()); utilbean.convertImage(userimage.getUser());
} else if (type.equals("mapimage")) { } else if (type.equals("mapimage")) {
eventmapbean.sendImage(destId, imagedata); eventmapbean.sendImage(destId, imagedata);
......
...@@ -7,6 +7,7 @@ import javax.enterprise.inject.Produces; ...@@ -7,6 +7,7 @@ import javax.enterprise.inject.Produces;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import org.primefaces.model.UploadedFile;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -14,6 +15,7 @@ import fi.insomnia.bortal.beans.PermissionDeniedException; ...@@ -14,6 +15,7 @@ import fi.insomnia.bortal.beans.PermissionDeniedException;
import fi.insomnia.bortal.beans.UserBeanLocal; import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.apps.UserPermission; import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.model.UserImage;
import fi.insomnia.bortal.web.annotations.LoggedIn; import fi.insomnia.bortal.web.annotations.LoggedIn;
import fi.insomnia.bortal.web.annotations.SelectedUser; import fi.insomnia.bortal.web.annotations.SelectedUser;
import fi.insomnia.bortal.web.cdiview.GenericCDIView; import fi.insomnia.bortal.web.cdiview.GenericCDIView;
...@@ -30,6 +32,7 @@ public class UserView extends GenericCDIView { ...@@ -30,6 +32,7 @@ public class UserView extends GenericCDIView {
@EJB @EJB
private transient UserBeanLocal userbean; private transient UserBeanLocal userbean;
private Integer userid; private Integer userid;
private UploadedFile image;
private User user; private User user;
@Inject @Inject
...@@ -66,6 +69,19 @@ public class UserView extends GenericCDIView { ...@@ -66,6 +69,19 @@ public class UserView extends GenericCDIView {
return user; return user;
} }
public String sendImage() {
try {
UserImage userimage = userbean.uploadImage(user, getImage().getContentType(), getImage().getContents(), getImage().getFileName(), "");
user = userimage.getUser();
} catch (PermissionDeniedException e) {
super.addFaceMessage("user.imageUploadFailed");
}
super.addFaceMessage("user.imageUploaded");
return null;
}
public void initCreateView() { public void initCreateView() {
if (super.requirePermissions(UserPermission.CREATE_NEW)) { if (super.requirePermissions(UserPermission.CREATE_NEW)) {
user = new User(); user = new User();
...@@ -147,4 +163,12 @@ public class UserView extends GenericCDIView { ...@@ -147,4 +163,12 @@ public class UserView extends GenericCDIView {
public String getPasswordcheck() { public String getPasswordcheck() {
return passwordcheck; return passwordcheck;
} }
public UploadedFile getImage() {
return image;
}
public void setImage(UploadedFile image) {
this.image = image;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!