Commit 55187fa6 by Tuomas Riihimäki

Merge remote-tracking branch 'origin/master' into restapistuff

2 parents 6ac4daa7 00a42dce
...@@ -35,6 +35,7 @@ public class BootstrapBean implements BootstrapBeanLocal { ...@@ -35,6 +35,7 @@ public class BootstrapBean implements BootstrapBeanLocal {
dbUpdates.add(new String[] { "ALTER TABLE site_page_content ADD COLUMN locale varchar(10)" }); dbUpdates.add(new String[] { "ALTER TABLE site_page_content ADD COLUMN locale varchar(10)" });
dbUpdates.add(new String[] { "ALTER TABLE products ALTER COLUMN vat TYPE NUMERIC(4,3)" }); dbUpdates.add(new String[] { "ALTER TABLE products ALTER COLUMN vat TYPE NUMERIC(4,3)" });
dbUpdates.add(new String[] { "ALTER TABLE actionlog_messages DROP COLUMN crew" }); dbUpdates.add(new String[] { "ALTER TABLE actionlog_messages DROP COLUMN crew" });
dbUpdates.add(new String[] { "delete from application_permissions where application ilike '%terminal%'" });
} }
@EJB @EJB
......
...@@ -236,6 +236,7 @@ public class MenuBean implements MenuBeanLocal { ...@@ -236,6 +236,7 @@ public class MenuBean implements MenuBeanLocal {
contentnavi.addPage(menuitemfacade.findOrCreate("/pages/list"), ContentPermission.MANAGE_PAGES); contentnavi.addPage(menuitemfacade.findOrCreate("/pages/list"), ContentPermission.MANAGE_PAGES);
contentnavi.addPage(menuitemfacade.findOrCreate("/pages/create"), ContentPermission.MANAGE_PAGES); contentnavi.addPage(menuitemfacade.findOrCreate("/pages/create"), ContentPermission.MANAGE_PAGES);
contentnavi.addPage(menuitemfacade.findOrCreate("/pages/edit"), null).setVisible(false); contentnavi.addPage(menuitemfacade.findOrCreate("/pages/edit"), null).setVisible(false);
contentnavi.addPage(menuitemfacade.findOrCreate("/pages/manage"), null).setVisible(false);
MenuNavigation lognavi = adminevent.addPage(null, null); MenuNavigation lognavi = adminevent.addPage(null, null);
lognavi.setKey("topnavi.log"); lognavi.setKey("topnavi.log");
......
...@@ -81,9 +81,9 @@ import fi.codecrew.moya.model.User; ...@@ -81,9 +81,9 @@ import fi.codecrew.moya.model.User;
SpecialPermission.S_USER, SpecialPermission.S_USER,
SpecialPermission.S_ANONYMOUS, SpecialPermission.S_ANONYMOUS,
TerminalPermission.S_CASHIER_TERMINAL, TerminalPermission.S_INFO_TERMINAL,
TerminalPermission.S_CUSTOMER_TERMINAL, TerminalPermission.S_USER_TERMINAL,
TerminalPermission.S_SELFHELP_TERMINAL, TerminalPermission.S_ADMIN_TERMINAL,
CompoPermission.S_MANAGE, CompoPermission.S_MANAGE,
CompoPermission.S_VOTE, CompoPermission.S_VOTE,
......
...@@ -74,5 +74,8 @@ ...@@ -74,5 +74,8 @@
<dependent-module archiveName="commons-logging-1.1.1.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"> <dependent-module archiveName="commons-logging-1.1.1.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar">
<dependency-type>uses</dependency-type> <dependency-type>uses</dependency-type>
</dependent-module> </dependent-module>
<dependent-module archiveName="moya-terminal-web-0.2.0.war" deploy-path="/" handle="module:/resource/MoyaTerminalWeb/MoyaTerminalWeb">
<dependency-type>uses</dependency-type>
</dependent-module>
</wb-module> </wb-module>
</project-modules> </project-modules>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd" version="7">
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd"
version="7">
<display-name>moya-ear</display-name> <display-name>moya-ear</display-name>
<module> <module>
<ejb>moya-beans-0.2.0.jar</ejb> <ejb>moya-beans-0.2.0.jar</ejb>
...@@ -19,5 +16,13 @@ ...@@ -19,5 +16,13 @@
<context-root>/EventMgmt</context-root> <context-root>/EventMgmt</context-root>
</web> </web>
</module> </module>
<module>
<web>
<web-uri>moya-terminal-web-0.2.0.war</web-uri>
<context-root>/MoyaTerminalWeb</context-root>
</web>
</module>
<library-directory>lib</library-directory> <library-directory>lib</library-directory>
</application> </application>
\ No newline at end of file
...@@ -97,6 +97,12 @@ ...@@ -97,6 +97,12 @@
<artifactId>commons-digester</artifactId> <artifactId>commons-digester</artifactId>
<version>2.1</version> <version>2.1</version>
</dependency> </dependency>
<dependency>
<groupId>fi.codecrew.moya</groupId>
<artifactId>moya-terminal-web</artifactId>
<version>0.2.0</version>
<type>war</type>
</dependency>
</dependencies> </dependencies>
<repositories> <repositories>
......
<?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_3_0.xsd" id="WebApp_ID" version="3.0"> <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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>MoyaTerminalWeb</display-name> <display-name>MoyaTerminalWeb</display-name>
<context-param>
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<welcome-file-list> <welcome-file-list>
<welcome-file>index.html</welcome-file> <welcome-file>index.html</welcome-file>
<welcome-file>index.wtf</welcome-file> <welcome-file>index.jsf</welcome-file>
</welcome-file-list> </welcome-file-list>
<session-config> <session-config>
<session-timeout>30</session-timeout> <session-timeout>30</session-timeout>
</session-config> </session-config>
...@@ -13,11 +19,12 @@ ...@@ -13,11 +19,12 @@
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup> <load-on-startup>1</load-on-startup>
</servlet> </servlet>
<servlet-mapping> <servlet-mapping>
<servlet-name>Faces Servlet</servlet-name> <servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.wtf</url-pattern> <url-pattern>*.jsf</url-pattern>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping> </servlet-mapping>
<context-param> <context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name> <param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value> <param-value>Development</param-value>
...@@ -26,25 +33,63 @@ ...@@ -26,25 +33,63 @@
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name> <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value> <param-value>true</param-value>
</context-param> </context-param>
<filter>
<display-name>PrimefacesFileupload</display-name> <!--
<filter-name>PrimeFacesFileupload</filter-name> <filter>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> <display-name>PrimefacesFileupload</display-name>
</filter> <filter-name>PrimefacesFileupload</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping> <filter-mapping>
<filter-name>PrimeFacesFileupload</filter-name> <filter-name>PrimefacesFileupload</filter-name>
<servlet-name>Faces Servlet</servlet-name> <servlet-name>Faces Servlet</servlet-name>
</filter-mapping> </filter-mapping>
-->
<login-config> <login-config>
<auth-method>CLIENT-CERT</auth-method> <auth-method>CLIENT-CERT</auth-method>
<realm-name>certificate</realm-name> <realm-name>certificate</realm-name>
</login-config> </login-config>
<security-constraint>
<display-name>Forbidden resource</display-name>
<web-resource-collection>
<web-resource-name>Forbidden</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
<url-pattern>/layout/*</url-pattern>
<url-pattern>/resources/tools/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>Thou shall not read the sources or use utils directly
</description>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<display-name>Resource that needs cert auth</display-name>
<web-resource-collection>
<web-resource-name>Forbidden</web-resource-name>
<url-pattern>/info/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>TERMINAL/INFO</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!--
<security-constraint> <security-constraint>
<display-name>Resource that needs cert auth</display-name> <display-name>Resource that needs cert auth</display-name>
<web-resource-collection> <web-resource-collection>
<web-resource-name>BortalTerminalWebResource</web-resource-name> <web-resource-name>BortalTerminalWebResource</web-resource-name>
<url-pattern>/faces/*</url-pattern> <url-pattern>/faces/*</url-pattern>
<url-pattern>*.wtf</url-pattern> <url-pattern>*.jsf</url-pattern>
</web-resource-collection> </web-resource-collection>
<auth-constraint> <auth-constraint>
<role-name>TERMINAL</role-name> <role-name>TERMINAL</role-name>
...@@ -52,7 +97,9 @@ ...@@ -52,7 +97,9 @@
<user-data-constraint> <user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee> <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint> </user-data-constraint>
</security-constraint> </security-constraint> -->
<persistence-unit-ref> <persistence-unit-ref>
<persistence-unit-ref-name>BortalEMF</persistence-unit-ref-name> <persistence-unit-ref-name>BortalEMF</persistence-unit-ref-name>
</persistence-unit-ref> </persistence-unit-ref>
......
...@@ -39,5 +39,15 @@ ...@@ -39,5 +39,15 @@
<artifactId>moya-beans-client</artifactId> <artifactId>moya-beans-client</artifactId>
<version>0.2.0</version> <version>0.2.0</version>
</dependency> </dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>4.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -17,7 +17,7 @@ import fi.codecrew.moya.clientutils.BortalLocalContextHolder; ...@@ -17,7 +17,7 @@ import fi.codecrew.moya.clientutils.BortalLocalContextHolder;
import fi.codecrew.moya.enums.apps.IAppPermission; import fi.codecrew.moya.enums.apps.IAppPermission;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
@Named() @Named(value="terminalSessionHandler")
@RequestScoped @RequestScoped
public class SessionHandler { public class SessionHandler {
......
...@@ -10,7 +10,7 @@ public class CashierView extends AbstractView { ...@@ -10,7 +10,7 @@ public class CashierView extends AbstractView {
private static final long serialVersionUID = -4415449134790807417L; private static final long serialVersionUID = -4415449134790807417L;
public void initCreateView() { public void initCreateView() {
if (super.requirePermissions(TerminalPermission.CASHIER)) { if (super.requirePermissions(TerminalPermission.INFO)) {
super.beginConversation(); super.beginConversation();
} }
} }
......
...@@ -10,7 +10,7 @@ public class CustomerView extends AbstractView { ...@@ -10,7 +10,7 @@ public class CustomerView extends AbstractView {
private static final long serialVersionUID = -8746462342138568821L; private static final long serialVersionUID = -8746462342138568821L;
public void initCreateView() { public void initCreateView() {
if (super.requirePermissions(TerminalPermission.CUSTOMER)) { if (super.requirePermissions(TerminalPermission.USER)) {
super.beginConversation(); super.beginConversation();
} }
} }
......
package fi.codecrew.moya.terminal.view; package fi.codecrew.moya.terminal.view;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import javax.inject.Named; import javax.inject.Named;
...@@ -8,18 +9,19 @@ import fi.codecrew.moya.beans.PermissionBeanLocal; ...@@ -8,18 +9,19 @@ import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.enums.apps.TerminalPermission; import fi.codecrew.moya.enums.apps.TerminalPermission;
@Named @Named
@RequestScoped
public class RedirectView { public class RedirectView {
@EJB @EJB
PermissionBeanLocal permissionBean; private PermissionBeanLocal permissionBean;
public void redirectByPermissions() throws Exception { public void redirectByPermissions() throws Exception {
FacesContext fcont = FacesContext.getCurrentInstance(); FacesContext fcont = FacesContext.getCurrentInstance();
if (permissionBean.hasPermission(TerminalPermission.CASHIER)) { if (permissionBean.hasPermission(TerminalPermission.INFO)) {
fcont.getApplication().getNavigationHandler() fcont.getApplication().getNavigationHandler()
.handleNavigation(fcont, null, "/cashier"); .handleNavigation(fcont, null, "/cashier");
} else if (permissionBean.hasPermission(TerminalPermission.CUSTOMER)) { } else if (permissionBean.hasPermission(TerminalPermission.USER)) {
fcont.getApplication().getNavigationHandler() fcont.getApplication().getNavigationHandler()
.handleNavigation(fcont, null, "/customer"); .handleNavigation(fcont, null, "/customer");
} else { } else {
...@@ -27,4 +29,4 @@ public class RedirectView { ...@@ -27,4 +29,4 @@ public class RedirectView {
} }
} }
} }
package fi.codecrew.moya.terminal.view;
import java.io.Serializable;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.PermissionBeanLocal;
@Named
@RequestScoped
public class TestView implements Serializable {
private static final long serialVersionUID = -2872232867536069020L;
private static final Logger logger = LoggerFactory.getLogger(TestView.class);
@EJB
private transient PermissionBeanLocal permissionBean;
public String getPrincipal() {
logger.debug("PermissionBean: {}", permissionBean);
return permissionBean.getPrincipal();
}
}
...@@ -11,16 +11,16 @@ import fi.codecrew.moya.enums.BortalApplication; ...@@ -11,16 +11,16 @@ import fi.codecrew.moya.enums.BortalApplication;
*/ */
public enum TerminalPermission implements IAppPermission { public enum TerminalPermission implements IAppPermission {
CASHIER, // ("Access cashier terminal functions"), INFO,
CUSTOMER, // ("Access client terminal functions"), USER,
SELFHELP, // ("Self help terminal") ADMIN,
; ;
// public static final String S_TERMINAL = "TERMINAL"; // public static final String S_TERMINAL = "TERMINAL";
public static final String S_CASHIER_TERMINAL = "TERMINAL/CASHIER"; public static final String S_INFO_TERMINAL = "TERMINAL/INFO";
public static final String S_CUSTOMER_TERMINAL = "TERMINAL/CUSTOMER"; public static final String S_USER_TERMINAL = "TERMINAL/USER";
public static final String S_SELFHELP_TERMINAL = "TERMINAL/SELFHELP"; public static final String S_ADMIN_TERMINAL = "TERMINAL/ADMIN";
private final String fullName; private final String fullName;
private final String key; private final String key;
......
...@@ -22,6 +22,5 @@ ...@@ -22,6 +22,5 @@
<attribute name="owner.project.facets" value="jst.web"/> <attribute name="owner.project.facets" value="jst.web"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="output" path="target/classes"/> <classpathentry kind="output" path="target/classes"/>
</classpath> </classpath>
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<f:event type="preRenderView" listener="#{sitePageView.initManage}" /> <f:event type="preRenderView" listener="#{sitePageView.initManage}" />
</f:metadata> </f:metadata>
<ui:define name="content"> <ui:define name="content">
<pages:edit commitaction="#{sitePageView.saveSite()}" commitvalue="#{i18n['sitepage.save']}" /> <pages:edit commitaction="#{sitePageView.saveSite()}" commitvalue="#{i18n['sitepage.save']}" />
</ui:define> </ui:define>
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</f:facet> </f:facet>
<h:outputText value="#{bill.billNumber}" /> <h:outputText value="#{bill.billNumber}" />
</p:column> </p:column>
<p:column> <p:column rendered="#{billListView.canWriteBill}">
<f:facet name="header"> <f:facet name="header">
<h:outputText value="${i18n['bill.referencenumber']}" /> <h:outputText value="${i18n['bill.referencenumber']}" />
</f:facet> </f:facet>
...@@ -88,6 +88,9 @@ ...@@ -88,6 +88,9 @@
</h:commandButton> </h:commandButton>
<h:outputText rendered="#{bill.paidDate != null}" value="#{i18n['bill.isPaid']}" /> <h:outputText rendered="#{bill.paidDate != null}" value="#{i18n['bill.isPaid']}" />
</p:column> </p:column>
<p:column rendered="#{!billListView.canWriteBill}">
<h:outputText rendered="#{bill.paidDate != null}" value="#{i18n['bill.isPaid']}" />
</p:column>
</p:dataTable> </p:dataTable>
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
</h:panelGrid> </h:panelGrid>
<p:editor value="#{cont.content}" /> <p:editor value="#{cont.content}" height="800" />
</div> </div>
</ui:repeat> </ui:repeat>
......
...@@ -110,8 +110,9 @@ ...@@ -110,8 +110,9 @@
<section id="main" class="flex2"> <section id="main" class="flex2">
<div class="container top"> <div class="container top">
<h:form id="selectLanguage"> <h:form id="selectLanguage">
<p:selectOneButton id="langselect" styleClass="languageSelector" value="#{sessionStore.locale}" onchange="this.form.submit()" converter="#{localeConverter}"> <p:selectOneButton id="langselect" styleClass="languageSelector" value="#{sessionStore.locale}" immediate="true" converter="#{localeConverter}">
<f:selectItems value="#{localeSelectorView.availableLocales}" var="loc" itemValue="#{loc.locale}" itemLabel="#{loc.locale.displayName}" /> <f:selectItems value="#{localeSelectorView.availableLocales}" var="loc" itemValue="#{loc.locale}" itemLabel="#{loc.locale.displayName}" />
<p:ajax update="@all" event="change" />
</p:selectOneButton> </p:selectOneButton>
</h:form> </h:form>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!