Commit 6839caff by Tuomas Riihimäki

Merge branch 'master' into groupmgmt

Conflicts:
	code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/BootstrapBean.java
2 parents dd0d268f 00a42dce
......@@ -35,7 +35,8 @@ 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 products ALTER COLUMN vat TYPE NUMERIC(4,3)" });
dbUpdates.add(new String[] { "ALTER TABLE actionlog_messages DROP COLUMN crew" });
dbUpdates.add(new String[] {
dbUpdates.add(new String[] { "delete from application_permissions where application ilike '%terminal%'" });
dbUpdates.add(new String[] {
"ALTER TABLE organisation_roles ADD ldap_role boolean not null default false",
"ALTER TABLE organisation_roles add ldap_weight integer NOT NULL default 100"
});
......
......@@ -236,6 +236,7 @@ public class MenuBean implements MenuBeanLocal {
contentnavi.addPage(menuitemfacade.findOrCreate("/pages/list"), 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/manage"), null).setVisible(false);
MenuNavigation lognavi = adminevent.addPage(null, null);
lognavi.setKey("topnavi.log");
......
......@@ -81,9 +81,9 @@ import fi.codecrew.moya.model.User;
SpecialPermission.S_USER,
SpecialPermission.S_ANONYMOUS,
TerminalPermission.S_CASHIER_TERMINAL,
TerminalPermission.S_CUSTOMER_TERMINAL,
TerminalPermission.S_SELFHELP_TERMINAL,
TerminalPermission.S_INFO_TERMINAL,
TerminalPermission.S_USER_TERMINAL,
TerminalPermission.S_ADMIN_TERMINAL,
CompoPermission.S_MANAGE,
CompoPermission.S_VOTE,
......
......@@ -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">
<dependency-type>uses</dependency-type>
</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>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<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">
<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">
<display-name>moya-ear</display-name>
<module>
<ejb>moya-beans-0.2.0.jar</ejb>
......@@ -19,5 +16,13 @@
<context-root>/EventMgmt</context-root>
</web>
</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>
</application>
\ No newline at end of file
......@@ -97,6 +97,12 @@
<artifactId>commons-digester</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>fi.codecrew.moya</groupId>
<artifactId>moya-terminal-web</artifactId>
<version>0.2.0</version>
<type>war</type>
</dependency>
</dependencies>
<repositories>
......
<?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">
<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>index.html</welcome-file>
<welcome-file>index.wtf</welcome-file>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
......@@ -13,11 +19,12 @@
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.wtf</url-pattern>
<url-pattern>/faces/*</url-pattern>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
......@@ -26,25 +33,63 @@
<param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
<filter>
<display-name>PrimefacesFileupload</display-name>
<filter-name>PrimeFacesFileupload</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<!--
<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>
<filter-name>PrimefacesFileupload</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
-->
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>certificate</realm-name>
</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>
<display-name>Resource that needs cert auth</display-name>
<web-resource-collection>
<web-resource-name>BortalTerminalWebResource</web-resource-name>
<url-pattern>/faces/*</url-pattern>
<url-pattern>*.wtf</url-pattern>
<url-pattern>*.jsf</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>TERMINAL</role-name>
......@@ -52,7 +97,9 @@
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</security-constraint> -->
<persistence-unit-ref>
<persistence-unit-ref-name>BortalEMF</persistence-unit-ref-name>
</persistence-unit-ref>
......
......@@ -39,5 +39,15 @@
<artifactId>moya-beans-client</artifactId>
<version>0.2.0</version>
</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>
</project>
\ No newline at end of file
......@@ -17,7 +17,7 @@ import fi.codecrew.moya.clientutils.BortalLocalContextHolder;
import fi.codecrew.moya.enums.apps.IAppPermission;
import fi.codecrew.moya.model.EventUser;
@Named()
@Named(value="terminalSessionHandler")
@RequestScoped
public class SessionHandler {
......
......@@ -10,7 +10,7 @@ public class CashierView extends AbstractView {
private static final long serialVersionUID = -4415449134790807417L;
public void initCreateView() {
if (super.requirePermissions(TerminalPermission.CASHIER)) {
if (super.requirePermissions(TerminalPermission.INFO)) {
super.beginConversation();
}
}
......
......@@ -10,7 +10,7 @@ public class CustomerView extends AbstractView {
private static final long serialVersionUID = -8746462342138568821L;
public void initCreateView() {
if (super.requirePermissions(TerminalPermission.CUSTOMER)) {
if (super.requirePermissions(TerminalPermission.USER)) {
super.beginConversation();
}
}
......
package fi.codecrew.moya.terminal.view;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;
......@@ -8,18 +9,19 @@ import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.enums.apps.TerminalPermission;
@Named
@RequestScoped
public class RedirectView {
@EJB
PermissionBeanLocal permissionBean;
private PermissionBeanLocal permissionBean;
public void redirectByPermissions() throws Exception {
FacesContext fcont = FacesContext.getCurrentInstance();
if (permissionBean.hasPermission(TerminalPermission.CASHIER)) {
if (permissionBean.hasPermission(TerminalPermission.INFO)) {
fcont.getApplication().getNavigationHandler()
.handleNavigation(fcont, null, "/cashier");
} else if (permissionBean.hasPermission(TerminalPermission.CUSTOMER)) {
} else if (permissionBean.hasPermission(TerminalPermission.USER)) {
fcont.getApplication().getNavigationHandler()
.handleNavigation(fcont, null, "/customer");
} else {
......@@ -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;
*/
public enum TerminalPermission implements IAppPermission {
CASHIER, // ("Access cashier terminal functions"),
CUSTOMER, // ("Access client terminal functions"),
SELFHELP, // ("Self help terminal")
INFO,
USER,
ADMIN,
;
// public static final String S_TERMINAL = "TERMINAL";
public static final String S_CASHIER_TERMINAL = "TERMINAL/CASHIER";
public static final String S_CUSTOMER_TERMINAL = "TERMINAL/CUSTOMER";
public static final String S_SELFHELP_TERMINAL = "TERMINAL/SELFHELP";
public static final String S_INFO_TERMINAL = "TERMINAL/INFO";
public static final String S_USER_TERMINAL = "TERMINAL/USER";
public static final String S_ADMIN_TERMINAL = "TERMINAL/ADMIN";
private final String fullName;
private final String key;
......
......@@ -22,6 +22,5 @@
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
......@@ -12,7 +12,7 @@
<f:event type="preRenderView" listener="#{sitePageView.initManage}" />
</f:metadata>
<ui:define name="content">
<pages:edit commitaction="#{sitePageView.saveSite()}" commitvalue="#{i18n['sitepage.save']}" />
<pages:edit commitaction="#{sitePageView.saveSite()}" commitvalue="#{i18n['sitepage.save']}" />
</ui:define>
......
......@@ -43,7 +43,7 @@
</f:facet>
<h:outputText value="#{bill.billNumber}" />
</p:column>
<p:column>
<p:column rendered="#{billListView.canWriteBill}">
<f:facet name="header">
<h:outputText value="${i18n['bill.referencenumber']}" />
</f:facet>
......@@ -88,6 +88,9 @@
</h:commandButton>
<h:outputText rendered="#{bill.paidDate != null}" value="#{i18n['bill.isPaid']}" />
</p:column>
<p:column rendered="#{!billListView.canWriteBill}">
<h:outputText rendered="#{bill.paidDate != null}" value="#{i18n['bill.isPaid']}" />
</p:column>
</p:dataTable>
......
......@@ -59,7 +59,7 @@
</h:panelGrid>
<p:editor value="#{cont.content}" />
<p:editor value="#{cont.content}" height="800" />
</div>
</ui:repeat>
......
......@@ -110,8 +110,9 @@
<section id="main" class="flex2">
<div class="container top">
<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}" />
<p:ajax update="@all" event="change" />
</p:selectOneButton>
</h:form>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!