Commit d59a8755 by Tuomas Riihimäki

Puljattu riippuvuuksia ja muutettu databaseprojektin generointi automaagiseksi EAR riippuvuudeksi

1 parent 4a03aef1
Showing with 181 additions and 306 deletions
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<projects> <projects>
<project>LanBortalBeans</project> <project>LanBortalBeans</project>
<project>LanBortalBeansClient</project> <project>LanBortalBeansClient</project>
<project>LanBortalDatabase</project>
<project>LanBortalUtilities</project> <project>LanBortalUtilities</project>
<project>LanBortalWeb</project> <project>LanBortalWeb</project>
</projects> </projects>
......
...@@ -49,5 +49,8 @@ ...@@ -49,5 +49,8 @@
<dependent-module archiveName="barcode4j.jar" deploy-path="/lib" handle="module:/classpath/lib/LanBortal/ExtraLibs/barcode4j.jar"> <dependent-module archiveName="barcode4j.jar" deploy-path="/lib" handle="module:/classpath/lib/LanBortal/ExtraLibs/barcode4j.jar">
<dependency-type>uses</dependency-type> <dependency-type>uses</dependency-type>
</dependent-module> </dependent-module>
<dependent-module archiveName="LanBortalDatabase.jar" deploy-path="/lib" handle="module:/resource/LanBortalDatabase/LanBortalDatabase">
<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"?>
<faceted-project> <faceted-project>
<runtime name="GlassFish 3.1"/>
<fixed facet="jst.ear"/> <fixed facet="jst.ear"/>
<installed facet="jst.ear" version="5.0"/> <installed facet="jst.ear" version="5.0"/>
<installed facet="sun.facet" version="9"/> <installed facet="sun.facet" version="9"/>
......
...@@ -2,7 +2,12 @@ ...@@ -2,7 +2,12 @@
<classpath> <classpath>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish 3.1">
<attributes>
<attribute name="owner.project.facets" value="jst.utility"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes> <attributes>
<attribute name="owner.project.facets" value="java"/> <attribute name="owner.project.facets" value="java"/>
</attributes> </attributes>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<faceted-project> <faceted-project>
<runtime name="GlassFish 3.1"/>
<fixed facet="java"/> <fixed facet="java"/>
<fixed facet="jst.utility"/> <fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/> <installed facet="jst.utility" version="1.0"/>
......
...@@ -4,11 +4,17 @@ ...@@ -4,11 +4,17 @@
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry combineaccessrules="false" kind="src" path="/LanBortalBeansClient"/> <classpathentry combineaccessrules="false" kind="src" path="/LanBortalBeansClient"/>
<classpathentry combineaccessrules="false" kind="src" path="/LanBortalAuthModuleClient"/> <classpathentry combineaccessrules="false" kind="src" path="/LanBortalAuthModuleClient"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish 3.1">
<attributes>
<attribute name="owner.project.facets" value="jst.ejb"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes> <attributes>
<attribute name="owner.project.facets" value="java"/> <attribute name="owner.project.facets" value="java"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/> <classpathentry kind="src" path="/LanBortalDatabase"/>
<classpathentry kind="output" path="build/classes"/> <classpathentry kind="output" path="build/classes"/>
</classpath> </classpath>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<faceted-project> <faceted-project>
<runtime name="GlassFish 3.1"/>
<fixed facet="jst.ejb"/> <fixed facet="jst.ejb"/>
<fixed facet="jst.java"/> <fixed facet="jst.java"/>
<installed facet="jst.java" version="6.0"/> <installed facet="jst.java" version="6.0"/>
......
Manifest-Version: 1.0 Manifest-Version: 1.0
Class-Path: lib/LanBortalDatabase.jar Class-Path: lib/PDFjet.jar
lib/LanBortalDatabase.jar lib/LanBortalAuthModuleClient.jar
lib/PDFjet.jar lib/LanBortalDatabase.jar
lib/LanBortalAuthModuleClient.jar
...@@ -8,13 +8,14 @@ import javax.persistence.PersistenceContext; ...@@ -8,13 +8,14 @@ import javax.persistence.PersistenceContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.clientutils.BortalLocalContextHolder;
import fi.insomnia.bortal.exceptions.PermissionDeniedException; import fi.insomnia.bortal.exceptions.PermissionDeniedException;
import fi.insomnia.bortal.facade.EventFacade; import fi.insomnia.bortal.facade.EventFacade;
import fi.insomnia.bortal.facade.EventOrganiserFacade; import fi.insomnia.bortal.facade.EventOrganiserFacade;
import fi.insomnia.bortal.model.EventOrganiser; import fi.insomnia.bortal.model.EventOrganiser;
import fi.insomnia.bortal.model.LanEvent; import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.utilities.BortalLocalContextHolder;
/** /**
* Session Bean implementation class EventBean * Session Bean implementation class EventBean
...@@ -81,6 +82,7 @@ public class EventBean implements EventBeanLocal { ...@@ -81,6 +82,7 @@ public class EventBean implements EventBeanLocal {
return settings; return settings;
} }
@Override
public LanEvent getCurrentEvent() { public LanEvent getCurrentEvent() {
LanEvent ret = getEventByHostname(BortalLocalContextHolder.getHostname()); LanEvent ret = getEventByHostname(BortalLocalContextHolder.getHostname());
...@@ -108,6 +110,7 @@ public class EventBean implements EventBeanLocal { ...@@ -108,6 +110,7 @@ public class EventBean implements EventBeanLocal {
} }
@Override
public String flushCache() { public String flushCache() {
return eventFacade.flushCache(); return eventFacade.flushCache();
......
...@@ -19,6 +19,8 @@ import javax.persistence.PersistenceContext; ...@@ -19,6 +19,8 @@ import javax.persistence.PersistenceContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.clientutils.BortalLocalContextHolder;
import fi.insomnia.bortal.enums.Permission; import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission; import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.exceptions.PermissionDeniedException; import fi.insomnia.bortal.exceptions.PermissionDeniedException;
...@@ -32,7 +34,6 @@ import fi.insomnia.bortal.model.RoleRight; ...@@ -32,7 +34,6 @@ import fi.insomnia.bortal.model.RoleRight;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.model.UserImage; import fi.insomnia.bortal.model.UserImage;
import fi.insomnia.bortal.util.MailMessage; import fi.insomnia.bortal.util.MailMessage;
import fi.insomnia.bortal.utilities.BortalLocalContextHolder;
import fi.insomnia.bortal.utilities.I18n; import fi.insomnia.bortal.utilities.I18n;
/** /**
...@@ -84,6 +85,7 @@ public class UserBean implements UserBeanLocal { ...@@ -84,6 +85,7 @@ public class UserBean implements UserBeanLocal {
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
} }
@Override
public List<User> getUsers() { public List<User> getUsers() {
fatalPermission(Permission.USER_MANAGEMENT, RolePermission.READ); fatalPermission(Permission.USER_MANAGEMENT, RolePermission.READ);
...@@ -104,14 +106,17 @@ public class UserBean implements UserBeanLocal { ...@@ -104,14 +106,17 @@ public class UserBean implements UserBeanLocal {
return ret; return ret;
} }
@Override
public User getUser(String nick) { public User getUser(String nick) {
return userFacade.findByLogin(nick); return userFacade.findByLogin(nick);
} }
@Override
public boolean isCurrentUser(User user) { public boolean isCurrentUser(User user) {
return (context.getCallerPrincipal() == null || user == null) ? false : context.getCallerPrincipal().getName().equals(user.getLogin()); return (context.getCallerPrincipal() == null || user == null) ? false : context.getCallerPrincipal().getName().equals(user.getLogin());
} }
@Override
public boolean isLoggedIn() { public boolean isLoggedIn() {
return !getAnonUser().equals(getCurrentUser()) || getCurrentUser().isSuperadmin(); return !getAnonUser().equals(getCurrentUser()) || getCurrentUser().isSuperadmin();
} }
...@@ -131,6 +136,7 @@ public class UserBean implements UserBeanLocal { ...@@ -131,6 +136,7 @@ public class UserBean implements UserBeanLocal {
* Makes sure default user and public role exist and the user is member of * Makes sure default user and public role exist and the user is member of
* the role. * the role.
*/ */
@Override
public User getAnonUser() { public User getAnonUser() {
User defaultUser = userFacade.findByLogin(DEFAULT_USER_LOGIN); User defaultUser = userFacade.findByLogin(DEFAULT_USER_LOGIN);
if (defaultUser == null) { if (defaultUser == null) {
...@@ -144,6 +150,7 @@ public class UserBean implements UserBeanLocal { ...@@ -144,6 +150,7 @@ public class UserBean implements UserBeanLocal {
return defaultUser; return defaultUser;
} }
@Override
public boolean hasPermission(Permission target, RolePermission permission) { public boolean hasPermission(Permission target, RolePermission permission) {
User user = getCurrentUser(); User user = getCurrentUser();
...@@ -308,6 +315,7 @@ public class UserBean implements UserBeanLocal { ...@@ -308,6 +315,7 @@ public class UserBean implements UserBeanLocal {
return ret; return ret;
} }
@Override
public List<User> searchName(String name) { public List<User> searchName(String name) {
return userFacade.searchForName(name); return userFacade.searchForName(name);
} }
......
...@@ -4,10 +4,16 @@ ...@@ -4,10 +4,16 @@
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry combineaccessrules="false" kind="src" path="/LanBortalAuthModuleClient"/> <classpathentry combineaccessrules="false" kind="src" path="/LanBortalAuthModuleClient"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish 3.1">
<attributes> <attributes>
<attribute name="owner.project.facets" value="jst.utility;#system#"/> <attribute name="owner.project.facets" value="jst.utility"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="/LanBortalUtilities"/>
<classpathentry kind="output" path="ejbModule"/> <classpathentry kind="output" path="ejbModule"/>
</classpath> </classpath>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<faceted-project> <faceted-project>
<runtime name="GlassFish 3.1"/>
<fixed facet="jst.utility"/> <fixed facet="jst.utility"/>
<fixed facet="jst.java"/> <fixed facet="jst.java"/>
<installed facet="jst.utility" version="1.0"/> <installed facet="jst.utility" version="1.0"/>
......
...@@ -2,21 +2,22 @@ ...@@ -2,21 +2,22 @@
<classpath> <classpath>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry combineaccessrules="false" kind="src" path="/LanBortalUtilities"/> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"> <classpathentry kind="con" path="eclipse.fproj.jdt.libprov.osgi/jpt.jpa">
<attributes> <attributes>
<attribute name="owner.project.facets" value="jst.utility;#system#"/> <attribute name="org.eclipse.jst.component.dependency" value="../"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish 3.1">
<attributes> <attributes>
<attribute name="owner.project.facets" value="java"/> <attribute name="owner.project.facets" value="jst.utility"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="eclipse.fproj.jdt.libprov.osgi/jpt.jpa"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes> <attributes>
<attribute name="org.eclipse.jst.component.dependency" value="../"/> <attribute name="owner.project.facets" value="java"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" path="/LanBortalUtilities"/>
<classpathentry kind="output" path="build/classes"/> <classpathentry kind="output" path="build/classes"/>
</classpath> </classpath>
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/> <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="LanBortalDatabase"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="LanBortalDatabase"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;resources&gt;&#10;&lt;item path=&quot;/LanBortalDatabase/src&quot; type=&quot;2&quot;/&gt;&#10;&lt;/resources&gt;}"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;resources&gt;&#10;&lt;item path=&quot;/LanBortalDatabase/src&quot; type=&quot;2&quot;/&gt;&#10;&lt;/resources&gt;}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/LanBortalDatabase/jarbuild.xml}"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/LanBortalDatabase/jarbuild.xml}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/> <stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
......
<root>
<facet id="jpt.jpa">
<node name="libprov">
<attribute name="provider-id" value="eclipselink-210-osgi-bundles-library-provider"/>
</node>
<node name="osgi-bundles-container">
<attribute name="bundles" value="javax.persistence:[2.0.0,2.1.0);org.eclipse.persistence.core:[2.1.0,2.2.0);org.eclipse.persistence.jpa:[2.1.0,2.2.0);org.eclipse.persistence.asm:[2.1.0,2.2.0);org.eclipse.persistence.antlr:[2.1.0,2.2.0)"/>
<attribute name="label" value="EclipseLink 2.1.x"/>
</node>
</facet>
</root>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<faceted-project> <faceted-project>
<runtime name="GlassFish 3.1"/>
<fixed facet="jst.utility"/> <fixed facet="jst.utility"/>
<fixed facet="jst.java"/> <fixed facet="jst.java"/>
<fixed facet="jpt.jpa"/> <fixed facet="jpt.jpa"/>
......
Manifest-Version: 1.0 Manifest-Version: 1.0
Class-Path:
...@@ -2,11 +2,15 @@ ...@@ -2,11 +2,15 @@
<classpath> <classpath>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="src" path="/LanBortalBeansClient"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish 3.1">
<attributes> <attributes>
<attribute name="owner.project.facets" value="jst.utility;#system#"/> <attribute name="owner.project.facets" value="jst.utility"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="output" path="build/classes"/> <classpathentry kind="output" path="build/classes"/>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<faceted-project> <faceted-project>
<runtime name="GlassFish 3.1"/>
<fixed facet="jst.java"/> <fixed facet="jst.java"/>
<fixed facet="jst.utility"/> <fixed facet="jst.utility"/>
<installed facet="jst.java" version="6.0"/> <installed facet="jst.java" version="6.0"/>
......
package fi.insomnia.bortal.utilities;
import java.util.HashMap;
import java.util.Map;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.RoleRight;
public class BeanContextHolder {
private Map<Permission, Map<RolePermission, Boolean>> rightcache = new HashMap<Permission, Map<RolePermission, Boolean>>();
public Boolean hasPermission(Permission target, RolePermission permission) {
Map<RolePermission, Boolean> permmap = rightcache.get(target);
if (permmap == null) {
permmap = new HashMap<RolePermission, Boolean>();
rightcache.put(target, permmap);
}
return permmap.get(permission);
}
public void setPermission(Permission target, RolePermission permission, Boolean ret) {
Map<RolePermission, Boolean> permmap = rightcache.get(target);
if (permmap == null) {
permmap = new HashMap<RolePermission, Boolean>();
rightcache.put(target, permmap);
}
permmap.put(permission, ret);
}
public void setPermission(RoleRight rr) {
if (rr.isExecute()) {
setPermission(rr.getPermission(), RolePermission.EXECUTE, true);
}
if (rr.isWrite()) {
setPermission(rr.getPermission(), RolePermission.WRITE, true);
}
if (rr.isRead()) {
setPermission(rr.getPermission(), RolePermission.READ, true);
}
}
}
\ No newline at end of file
package fi.insomnia.bortal.utilities;
import java.util.HashMap;
import java.util.Map;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.RoleRight;
public class BortalLocalContextHolder {
private static final ThreadLocal<BortalLocalContextHolder> THREAD_WITH_CONTEXT = new ThreadLocal<BortalLocalContextHolder>();
private String hostname;
private Map<Permission, Map<RolePermission, Boolean>> rightcache = new HashMap<Permission, Map<RolePermission, Boolean>>();
public BortalLocalContextHolder() {
}
public static void setHostname(String hostname) {
getThread().hostname = hostname;
}
public static String getHostname() {
return getThread().getHolderHostname();
}
public static void cleanupThread() {
if (THREAD_WITH_CONTEXT != null) {
THREAD_WITH_CONTEXT.remove();
}
}
public String getHolderHostname() {
return hostname;
}
public static Boolean hasPermission(Permission target, RolePermission permission) {
return getThread().hasHolderPermission(target, permission);
}
private static BortalLocalContextHolder getThread() {
if (THREAD_WITH_CONTEXT.get() == null) {
THREAD_WITH_CONTEXT.set(new BortalLocalContextHolder());
}
return THREAD_WITH_CONTEXT.get();
}
private Boolean hasHolderPermission(Permission target, RolePermission permission) {
Map<RolePermission, Boolean> permmap = rightcache.get(target);
if (permmap == null) {
permmap = new HashMap<RolePermission, Boolean>();
rightcache.put(target, permmap);
}
return permmap.get(permission);
}
public static void setPermission(Permission target, RolePermission permission, Boolean ret) {
getThread().setHolderPermission(target, permission, ret);
}
private void setHolderPermission(Permission target, RolePermission permission, Boolean ret) {
Map<RolePermission, Boolean> permmap = rightcache.get(target);
if (permmap == null) {
permmap = new HashMap<RolePermission, Boolean>();
rightcache.put(target, permmap);
}
permmap.put(permission, ret);
}
public static void setPermission(RoleRight rr) {
if (rr.isExecute()) {
setPermission(rr.getPermission(), RolePermission.EXECUTE, true);
}
if (rr.isWrite()) {
setPermission(rr.getPermission(), RolePermission.WRITE, true);
}
if (rr.isRead()) {
setPermission(rr.getPermission(), RolePermission.READ, true);
}
}
public static BortalLocalContextHolder getInstance() {
return getThread();
}
}
\ No newline at end of file
...@@ -4,11 +4,16 @@ ...@@ -4,11 +4,16 @@
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/> <classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> <classpathentry kind="con" path="com.sun.portlet.plugin.library.portlet20"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish 3.1">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes> <attributes>
<attribute name="owner.project.facets" value="java"/> <attribute name="owner.project.facets" value="java"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="com.sun.portlet.plugin.library.portlet20"/>
<classpathentry kind="output" path="build/classes"/> <classpathentry kind="output" path="build/classes"/>
</classpath> </classpath>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<faceted-project> <faceted-project>
<runtime name="GlassFish 3.1"/>
<fixed facet="jst.web"/> <fixed facet="jst.web"/>
<fixed facet="jst.java"/> <fixed facet="jst.java"/>
<installed facet="jst.java" version="6.0"/> <installed facet="jst.java" version="6.0"/>
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
/> />
<div style="float: left"> <div style="float: left">
<div id="headerbox"><tools:isLoggedIn>#{sessionHandler.loginname}</tools:isLoggedIn><tools:loginLogout /></div> <div id="headerbox"><tools:isLoggedIn>#{sessionHandler.currentUser.nick}</tools:isLoggedIn><tools:loginLogout /></div>
......
...@@ -7,42 +7,42 @@ ...@@ -7,42 +7,42 @@
> >
<h:body> <h:body>
<ui:composition> <ui:composition>
<ul> <ul id="mainmenu">
<li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'frontpage'?'selected':''}"><h:link outcome="/index" <li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'frontpage'?'selected':''}"><h:link outcome="/index"
value="#{i18n['topmenu.frontpage']}" value="#{i18n['topmenu.frontpage']}"
/></li> />
</li>
<tools:isLoggedIn> <tools:isLoggedIn>
<li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'user'?'selected':''}"> <li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'user'?'selected':''}"><h:link
<h:link outcome="/user/editself" value="#{i18n['topmenu.usersPreferences']}" /> outcome="/user/editself" value="#{i18n['topmenu.usersPreferences']}"
</li> /></li>
<!-- <div class="link#{i18n[util.concat(thispage,'.pagegroup')] == 'shop'?'a': ''}"><h:link <li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'shop'?'selected': ''}">
outcome="/product/createBill" value="#{i18n['topmenu.shoppings']}" /></div> <h:link outcome="/product/createBill" value="#{i18n['topmenu.shoppings']}" />
--> </li>
</tools:isLoggedIn> </tools:isLoggedIn>
<tools:canExecute target="POLL"> <tools:canExecute target="POLL">
<li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'poll'?'selected': ''}"><h:link outcome="/poll/start" <li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'poll'?'selected': ''}"><h:link outcome="/poll/start"
value="#{i18n['topmenu.poll']}" value="#{i18n['topmenu.poll']}"
/></li> />
</li>
</tools:canExecute> </tools:canExecute>
<li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'placemap'?'selected':''}"><h:link <!-- <li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'placemap'?'selected':''}"><h:link
outcome="/place/placemap" value="#{i18n['topmenu.placemap']}" outcome="/place/placemap" value="#{i18n['topmenu.placemap']}"
/></li> /></li>
-->
<tools:canRead target="USER_MANAGEMENT"> <tools:canRead target="USER_MANAGEMENT">
<li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'admin'?'selected':''}"><h:link outcome="/product/list" <li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'admin'?'selected':''}"><h:link
value="#{i18n['topmenu.adminfront']}" outcome="/product/list" value="#{i18n['topmenu.adminfront']}"
/></li> />
</li>
<li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'rfidshop'?'selected':''}"><h:link <li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'rfidshop'?'selected':''}"><h:link
outcome="/shop/showReaderEvents" value="#{i18n['topmenu.rfidshop']}" outcome="/shop/showReaderEvents" value="#{i18n['topmenu.rfidshop']}"
/></li> />
</li>
</tools:canRead> </tools:canRead>
<tools:canRead target="GAME">
<li class="#{i18n[util.concat(thispage,'.pagegroup')] == 'game'?'selected':''}"><h:link outcome="/game/start"
value="#{i18n['topmenu.game']}"
/></li>
</tools:canRead>
</ul> </ul>
</ui:composition> </ui:composition>
......
...@@ -17,7 +17,8 @@ ...@@ -17,7 +17,8 @@
<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="#{i18n['global.eventname']}" /> - <h:outputText <title><h:outputText value="#{i18n['global.eventname']}" /> - <h:outputText
value="#{i18n[util.concat(thispage,'.header') ] }" value="#{i18n[util.concat(thispage,'.header') ] }"
/></title> />
</title>
</h:head> </h:head>
<h:body> <h:body>
<div id="topheader"> <div id="topheader">
...@@ -26,15 +27,17 @@ ...@@ -26,15 +27,17 @@
<div id="container"> <div id="container">
<div id="page"> <div id="page">
<div id="leftnav"> <div id="leftnav">
<h1> <tools:isLoggedIn>
<tools:isLoggedIn>#{sessionHandler.loginname}</tools:isLoggedIn> <h1>#{sessionHandler.currentUser.nick}</h1>
</h1> </tools:isLoggedIn>
<ui:include src="menu.xhtml" /> <ui:include src="menu.xhtml" />
<hr/> <hr />
<ui:include src="sidebar-#{i18n[util.concat(thispage,'.pagegroup')]}.xhtml" /> <tools:isLoggedIn>
<ui:include src="sidebar-#{i18n[util.concat(thispage,'.pagegroup')]}.xhtml" />
</tools:isLoggedIn>
<ul> <ul>
<li><tools:loginLogout /> <li><tools:loginLogout /></li>
</li>
</ul> </ul>
</div> </div>
<div id="content"> <div id="content">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<title></title> <title></title>
</h:head> </h:head>
<h:body> <h:body>
<ui:composition template="/layout/insomnia1/template.xhtml"> <ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.permissionDenied" /> <ui:param name="thispage" value="page.permissionDenied" />
<ui:define name="content"> <ui:define name="content">
<h1>#{i18n['permissiondenied.header']}</h1> <h1>#{i18n['permissiondenied.header']}</h1>
......
body
{
body {
background-color: #C8C8C8; background-color: #C8C8C8;
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
font-size: 12px; font-size: 12px;
...@@ -10,57 +11,54 @@ body ...@@ -10,57 +11,54 @@ body
background-repeat: repeat-x; background-repeat: repeat-x;
} }
.even .even {
{ background-color: #353540;
background-color: #353540;
} }
.odd
{ .odd {
background-color: #555560; background-color: #555560;
} }
img img {
{
border: 0px; border: 0px;
} }
p
{ p {
margin: 2px 0px 7px 0px; margin: 2px 0px 7px 0px;
} }
#content a
{ #content a {
text-decoration: none; text-decoration: none;
color: #aaaaaa; color: #aaaaaa;
border: 0px; border: 0px;
} }
#content a:hover
{ #content a:hover {
color: #ffffff; color: #ffffff;
background-color: #E45F00; background-color: #E45F00;
} }
#container #container {
{
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
width: 1000px; width: 1000px;
text-align: left; text-align: left;
} }
#page
{ #page {
width: 1000px; width: 1000px;
padding: 20px; padding: 20px;
padding-bottom: 0px; padding-bottom: 0px;
} }
#nav
{ #nav {
height: 32px; height: 32px;
text-align: center; text-align: center;
padding-left: 120px; padding-left: 120px;
} }
#navitem
{ #navitem {
color: #ffffff; color: none;
float: left; float: left;
margin: 7px 0px 0px 20px; margin: 7px 0px 0px 20px;
padding: 2px 10px 2px 10px; padding: 2px 10px 2px 10px;
...@@ -68,8 +66,7 @@ p ...@@ -68,8 +66,7 @@ p
letter-spacing: 1px; letter-spacing: 1px;
} }
#leftnav h1 #leftnav h1 {
{
margin: 0; margin: 0;
padding: 2px 6px; padding: 2px 6px;
background-color: #666666; background-color: #666666;
...@@ -78,34 +75,29 @@ p ...@@ -78,34 +75,29 @@ p
font-size: 1.1em; font-size: 1.1em;
} }
#leftnav a #leftnav a {
{
color: #ffffff; color: #ffffff;
text-decoration: none; text-decoration: none;
} }
#leftnav a:hover #leftnav a:hover {
{
text-decoration: underline; text-decoration: underline;
} }
#leftnav hr #leftnav hr {
{
margin: 0; margin: 0;
padding: 0; padding: 0;
height: 6px; height: 6px;
background-color: #dddddd; background-color: none;
border-width: 0; border-width: 0;
} }
#leftnav ul, #leftnav ul ul
{ #leftnav ul,#leftnav ul ul {
padding: 0; padding: 0;
margin: 0; margin: 0;
} }
#leftnav li li #leftnav li li {
{
color: #ffffff; color: #ffffff;
float: left; float: left;
padding: 4px 0px 4px 10px; padding: 4px 0px 4px 10px;
...@@ -115,43 +107,38 @@ margin: 0; ...@@ -115,43 +107,38 @@ margin: 0;
list-style-type: none; list-style-type: none;
} }
#leftnav li #leftnav li {
{
color: #ffffff; color: #ffffff;
padding: 4px 0px 4px 10px; padding: 4px 0px 4px 10px;
background-color: #444444; background-color: #444444;
width: 190px; width: 190px;
margin-top: 0px; margin-top: 0px;
margin-bottom: 1px; margin-bottom: 1px;
list-style-type: none; list-style-type: none;
} }
#topheader
{ #topheader {
width: 100%; width: 100%;
height: 77px; height: 77px;
background-color: #3e3e3e; background-color: #3e3e3e;
padding: 0px; padding: 0px;
margin: 0px; margin: 0px;
} }
h1,h2,h3,h4
{ h1,h2,h3,h4 {
background-color: #222222; background-color: #222222;
border-width: 0 0 4px 0; border-width: 0 0 2px 0;
border-style: solid; border-style: solid;
border-color: #FF7200; border-color: #FF7200;
padding: 2px 2px 2px 10px; padding: 2px 2px 2px 10px;
margin: 0 -20px; margin: 0 -20px;
} }
#lighttext
{ #lighttext {
color: #bbbbbb; color: #bbbbbb;
} }
#content #content {
{
width: 742px; width: 742px;
float: left; float: left;
height: auto !important; height: auto !important;
...@@ -161,8 +148,7 @@ h1,h2,h3,h4 ...@@ -161,8 +148,7 @@ h1,h2,h3,h4
padding: 0 20px 20px; padding: 0 20px 20px;
} }
#content p #content p {
{
border: 0px; border: 0px;
border-style: solid; border-style: solid;
border-color: #c0c0c0; border-color: #c0c0c0;
...@@ -173,8 +159,8 @@ h1,h2,h3,h4 ...@@ -173,8 +159,8 @@ h1,h2,h3,h4
padding-left: 20px; padding-left: 20px;
padding-right: 20px; padding-right: 20px;
} }
#copyright
{ #copyright {
background-repeat: repeat-x; background-repeat: repeat-x;
text-align: right; text-align: right;
color: #666666; color: #666666;
...@@ -184,66 +170,60 @@ h1,h2,h3,h4 ...@@ -184,66 +170,60 @@ h1,h2,h3,h4
padding-right: 10px; padding-right: 10px;
font-size: 11px; font-size: 11px;
} }
#leftnav
{ #leftnav {
float: left; float: left;
width: 200px; width: 200px;
margin-left: 5px; margin-left: 5px;
margin-right: 5px; margin-right: 5px;
background-color: #ffffff; background-color: none;
} }
input {
input
{
background: #6f6f6f; background: #6f6f6f;
border-style: solid; border-style: solid;
border: 1px inset #222222; border: 1px inset #222222;
color: #ffffff; color: #ffffff;
} }
input.btn
{ input.btn {
background: #6f6f6f; background: #6f6f6f;
border-style: solid; border-style: solid;
border: 1px outset #222222; border: 1px outset #222222;
color: #ffffff; color: #ffffff;
} }
textarea
{ textarea {
background: #6f6f6f; background: #6f6f6f;
border-style: solid; border-style: solid;
border: 1px inset #222222; border: 1px inset #222222;
color: #ffffff; color: #ffffff;
} }
#introform
{ #introform {
color: #ffffff; color: #ffffff;
float: left; float: left;
background-color: #44444a; background-color: #44444a;
width: 180px; width: 180px;
margin-bottom: 3px; margin-bottom: 3px;
} }
#date
{ #date {
color: #999999; color: #999999;
} }
table.packetTable table.packetTable {
{ border-style: solid;
border-style:solid;
border-width: 0px 0 1px 1px; border-width: 0px 0 1px 1px;
border-color: black; border-color: black;
border-spacing: 0px; border-spacing: 0px;
margin: 1em 0 1em 0; margin: 1em 0 1em 0;
} }
table.packetTable tr td
{ table.packetTable tr td {
border-style:solid; border-style: solid;
border-width: 1px 1px 0 0; border-width: 1px 1px 0 0;
padding: 1px 5px 1px 5px; padding: 1px 5px 1px 5px;
border-color: black; border-color: black;
border-spacing: 0px; border-spacing: 0px;
} }
\ No newline at end of file
...@@ -18,8 +18,8 @@ import org.slf4j.Logger; ...@@ -18,8 +18,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal; import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.clientutils.BortalLocalContextHolder;
import fi.insomnia.bortal.exceptions.PermissionDeniedException; import fi.insomnia.bortal.exceptions.PermissionDeniedException;
import fi.insomnia.bortal.utilities.BortalLocalContextHolder;
/** /**
* Servlet Filter implementation class HostnameFilter * Servlet Filter implementation class HostnameFilter
...@@ -38,6 +38,7 @@ public class HostnameFilter implements Filter { ...@@ -38,6 +38,7 @@ public class HostnameFilter implements Filter {
/** /**
* @see Filter#destroy() * @see Filter#destroy()
*/ */
@Override
public void destroy() { public void destroy() {
// Nothing... // Nothing...
} }
...@@ -45,6 +46,7 @@ public class HostnameFilter implements Filter { ...@@ -45,6 +46,7 @@ public class HostnameFilter implements Filter {
/** /**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/ */
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = null; HttpServletRequest httpRequest = null;
...@@ -102,6 +104,7 @@ public class HostnameFilter implements Filter { ...@@ -102,6 +104,7 @@ public class HostnameFilter implements Filter {
/** /**
* @see Filter#init(FilterConfig) * @see Filter#init(FilterConfig)
*/ */
@Override
public void init(FilterConfig fConfig) throws ServletException { public void init(FilterConfig fConfig) throws ServletException {
// Nothing... // Nothing...
} }
...@@ -110,8 +113,9 @@ public class HostnameFilter implements Filter { ...@@ -110,8 +113,9 @@ public class HostnameFilter implements Filter {
String ret = null; String ret = null;
if (sess != null) { if (sess != null) {
Object retObj = sess.getAttribute(EventBeanLocal.HTTP_URL_HOSTNAME); Object retObj = sess.getAttribute(EventBeanLocal.HTTP_URL_HOSTNAME);
if (retObj != null) if (retObj != null) {
ret = retObj.toString(); ret = retObj.toString();
}
} }
return ret; return ret;
} }
......
...@@ -8,9 +8,9 @@ package fi.insomnia.bortal.handler; ...@@ -8,9 +8,9 @@ package fi.insomnia.bortal.handler;
import java.util.TimeZone; import java.util.TimeZone;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.faces.bean.ManagedBean; import javax.enterprise.context.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -28,8 +28,8 @@ import fi.insomnia.bortal.web.converter.RoleConverter; ...@@ -28,8 +28,8 @@ import fi.insomnia.bortal.web.converter.RoleConverter;
* *
* @author tuukka * @author tuukka
*/ */
@ManagedBean(name = "sessionHandler") @Named()
@SessionScoped @RequestScoped
public class SessionHandler { public class SessionHandler {
private static final Logger logger = LoggerFactory.getLogger(SessionHandler.class); private static final Logger logger = LoggerFactory.getLogger(SessionHandler.class);
...@@ -41,10 +41,6 @@ public class SessionHandler { ...@@ -41,10 +41,6 @@ public class SessionHandler {
@EJB @EJB
private UserBeanLocal userbean; private UserBeanLocal userbean;
/** Creates a new instance of SessionHandler */
public SessionHandler() {
}
public TimeZone getTimezone() { public TimeZone getTimezone() {
return TimeZone.getTimeZone("Europe/Helsinki"); return TimeZone.getTimeZone("Europe/Helsinki");
} }
...@@ -147,10 +143,6 @@ public class SessionHandler { ...@@ -147,10 +143,6 @@ public class SessionHandler {
} }
public String getLoginname() {
return userbean.getCurrentUser().getLogin();
}
public User getCurrentUser() { public User getCurrentUser() {
return userbean.getCurrentUser(); return userbean.getCurrentUser();
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!