Commit ee1d7493 by Tuukka Kivilahti

Merge branch 'master' of tkfftk@dev.intra.insomnia.fi:/data/bortal

Conflicts:
	code/LanBortalWeb/WebContent/WEB-INF/faces-config.xml
2 parents 2da241d9 b22ca1de
Showing with 109 additions and 35 deletions
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
package fi.insomnia.bortal.beans; package fi.insomnia.bortal.beans;
import fi.insomnia.bortal.RoleBeanLocal;
import fi.insomnia.bortal.facade.RoleFacade; import fi.insomnia.bortal.facade.RoleFacade;
import fi.insomnia.bortal.model.Role; import fi.insomnia.bortal.model.Role;
import java.util.List; import java.util.List;
......
package fi.insomnia.bortal.beans;
import javax.ejb.Stateless;
/**
* Session Bean implementation class SercurityBean
*/
@Stateless
public class SecurityBean implements SecurityBeanLocal {
/**
* Default constructor.
*/
public SecurityBean() {
// TODO Auto-generated constructor stub
}
@Override
public void log(Exception permissionDeniedException) {
// TODO Auto-generated method stub
}
}
...@@ -10,8 +10,6 @@ import javax.ejb.Stateless; ...@@ -10,8 +10,6 @@ import javax.ejb.Stateless;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.RolePermission;
import fi.insomnia.bortal.SessionHandlerBeanLocal;
import fi.insomnia.bortal.facade.UserFacade; import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.model.Role; import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight; import fi.insomnia.bortal.model.RoleRight;
......
...@@ -9,7 +9,6 @@ import javax.ejb.Stateless; ...@@ -9,7 +9,6 @@ import javax.ejb.Stateless;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.UserBeanLocal;
import fi.insomnia.bortal.facade.UserFacade; import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* and open the template in the editor. * and open the template in the editor.
*/ */
package fi.insomnia.bortal; package fi.insomnia.bortal.beans;
import fi.insomnia.bortal.model.Role; import fi.insomnia.bortal.model.Role;
import java.util.List; import java.util.List;
......
package fi.insomnia.bortal; package fi.insomnia.bortal.beans;
public enum RolePermission { public enum RolePermission {
READ, WRITE, EXECUTE READ, WRITE, EXECUTE
......
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
@Local
public interface SecurityBeanLocal {
void log(Exception permissionDeniedException);
}
package fi.insomnia.bortal; package fi.insomnia.bortal.beans;
import javax.ejb.Local; import javax.ejb.Local;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
......
<?xml version="1.0"?> <?xml version="1.0"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" <faces-config
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
version="2.0"> http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
<application> version="2.0"
<resource-bundle> >
<base-name>i18n</base-name> <application>
<var>i18n</var> <resource-bundle>
</resource-bundle> <base-name>i18n</base-name>
<message-bundle>resources.i18n</message-bundle> <var>i18n</var>
<!-- Legal Country codes: http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm --> </resource-bundle>
<!-- Assigned Country codes: --> <message-bundle>resources.i18n</message-bundle>
<!-- Insomnia: IN (INDIA) --> <!-- Legal Country codes: http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm -->
<!-- Stream: ST (SAO TOME AND PRINCIPE ) --> <!-- Assigned Country codes: -->
<!-- Vector VE (VENEZUELA, BOLIVARIAN REPUBLIC OF) --> <!-- Insomnia: IN (INDIA) -->
<locale-config> <!-- Stream: ST (SAO TOME AND PRINCIPE ) -->
<default-locale>fi</default-locale> <!-- Vector VE (VENEZUELA, BOLIVARIAN REPUBLIC OF) -->
<supported-locale>fi_IN_XII</supported-locale> <locale-config>
<supported-locale>en_ST_v7</supported-locale> <default-locale>fi</default-locale>
<supported-locale>fi_IN_XII</supported-locale>
<supported-locale>en_ST_v7</supported-locale>
</locale-config> </locale-config>
</application> </application>
<navigation-rule> <navigation-rule>
<from-view-id>/user/list.xhtml</from-view-id> <from-view-id>/user/list.xhtml</from-view-id>
<navigation-case> <navigation-case>
...@@ -57,6 +60,14 @@ ...@@ -57,6 +60,14 @@
<to-view-id>/modulePossibleReturnValues.xhtml</to-view-id> <to-view-id>/modulePossibleReturnValues.xhtml</to-view-id>
</navigation-case> </navigation-case>
</navigation-rule> </navigation-rule>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>permissionDenied</from-outcome>
<to-view-id>/permissionDenied.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config> </faces-config>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</composite:interface> </composite:interface>
<composite:implementation> <composite:implementation>
<h:form> <h:form>
<h:panelGrid columns="2"> <h:panelGrid columns="2">
<h:outputLabel value="#{i18n['user.nick']}:" /><h:outputLabel value="#{userView.user.nick}" /> <h:outputLabel value="#{i18n['user.nick']}:" /><h:outputLabel value="#{userView.user.nick}" />
......
package fi.insomnia.bortal.exceptions;
import fi.insomnia.bortal.beans.SecurityBeanLocal;
public class PermissionDeniedException extends RuntimeException {
public PermissionDeniedException(String message, SecurityBeanLocal bean) {
super(message);
bean.log(this);
}
/**
*
*/
private static final long serialVersionUID = 7909254489997475124L;
}
...@@ -10,8 +10,8 @@ import javax.ejb.EJB; ...@@ -10,8 +10,8 @@ import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped; import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedBean;
import fi.insomnia.bortal.RolePermission; import fi.insomnia.bortal.beans.RolePermission;
import fi.insomnia.bortal.SessionHandlerBeanLocal; import fi.insomnia.bortal.beans.SessionHandlerBeanLocal;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
/** /**
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
package fi.insomnia.bortal.view; package fi.insomnia.bortal.view;
import fi.insomnia.bortal.RoleBeanLocal; import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.model.Role; import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
import java.util.List; import java.util.List;
......
...@@ -4,19 +4,27 @@ import java.util.List; ...@@ -4,19 +4,27 @@ import java.util.List;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped; import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel; import javax.faces.model.ListDataModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.UserBeanLocal; import fi.insomnia.bortal.beans.SecurityBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.exceptions.PermissionDeniedException;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
@ManagedBean(name = "userView") @ManagedBean(name = "userView")
@SessionScoped @SessionScoped
public class UserView { public class UserView {
@ManagedProperty("#{sessionHandler}")
private SessionHandler sessionhandler;
@EJB @EJB
private UserBeanLocal userBean; private UserBeanLocal userBean;
private static final Logger logger = LoggerFactory.getLogger(UserView.class); private static final Logger logger = LoggerFactory.getLogger(UserView.class);
...@@ -24,6 +32,8 @@ public class UserView { ...@@ -24,6 +32,8 @@ public class UserView {
private ListDataModel<User> items; private ListDataModel<User> items;
private String nick; private String nick;
private String password; private String password;
@EJB
private SecurityBeanLocal securitybean;
public String edit() { public String edit() {
setUser(items.getRowData()); setUser(items.getRowData());
...@@ -35,6 +45,11 @@ public class UserView { ...@@ -35,6 +45,11 @@ public class UserView {
} }
public String createUser() { public String createUser() {
if (!sessionhandler.canWrite("userManagement")) {
// Give message to administration what happened here.
throw new PermissionDeniedException("User " + sessionhandler.getUser() + " does not have permission to create user!",securitybean);
}
logger.info("Saving user"); logger.info("Saving user");
// Luodaan uusi kÔøΩyttÔøΩjÔøΩ UserBeanin funktiolla createNewUser jolle // Luodaan uusi kÔøΩyttÔøΩjÔøΩ UserBeanin funktiolla createNewUser jolle
// annetaan parametrina pakolliset tiedot ( nick ja salasana ) // annetaan parametrina pakolliset tiedot ( nick ja salasana )
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!