Commit 1a8695ef by Tuomas Riihimäki

Removed AccessRight entity and changed it to Permission enum.

1 parent 3d951f94
Showing with 106 additions and 364 deletions
......@@ -20,17 +20,11 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.granite.builder.granitebuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.granite.builder.granitenature</nature>
</natures>
</projectDescription>
......@@ -21,11 +21,6 @@
</arguments>
</buildCommand>
<buildCommand>
<name>org.granite.builder.granitebuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.axdt.as3.imp.builder</name>
<arguments>
</arguments>
......@@ -36,7 +31,6 @@
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.granite.builder.granitenature</nature>
<nature>org.axdt.as3.imp.nature</nature>
</natures>
</projectDescription>
......@@ -11,10 +11,10 @@ import fi.insomnia.bortal.beanutil.AuthorisationBeanLocal;
import fi.insomnia.bortal.beanutil.AuthorisationBeanLocal.Right;
import fi.insomnia.bortal.beanutil.AuthorisationBeanLocal.RightType;
import fi.insomnia.bortal.beanutil.PdfPrinter;
import fi.insomnia.bortal.enums.BillFacade;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.exceptions.PermissionDeniedException;
import fi.insomnia.bortal.facade.BillFacade;
import fi.insomnia.bortal.facade.BillLineFacade;
import fi.insomnia.bortal.facade.EventFacade;
import fi.insomnia.bortal.model.Bill;
......
......@@ -18,11 +18,9 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.BeanRole;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.facade.AccessRightFacade;
import fi.insomnia.bortal.facade.EventChildGenericFacade;
import fi.insomnia.bortal.facade.RoleFacade;
import fi.insomnia.bortal.facade.RoleRightFacade;
import fi.insomnia.bortal.model.AccessRight;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
......@@ -46,8 +44,7 @@ public class RoleBean implements RoleBeanLocal {
@EJB
private UserBeanLocal userbean;
@EJB
private AccessRightFacade accessRightFacade;
private static final Logger logger = LoggerFactory.getLogger(RoleBean.class);
......@@ -82,7 +79,7 @@ public class RoleBean implements RoleBeanLocal {
roleList.remove(unit);
}
}
roleList.remove(role);
return roleList;
}
......@@ -106,10 +103,9 @@ public class RoleBean implements RoleBeanLocal {
public List<RoleRight> getRoleRights(Role r) {
List<AccessRight> rights = accessRightFacade.findAll();
List<RoleRight> ret = new ArrayList<RoleRight>();
for (AccessRight ar : rights) {
ret.add(findRoleRight(r, ar));
List<RoleRight> ret = new ArrayList<RoleRight>();
for (Permission perm : Permission.values()) {
ret.add(findRoleRight(r, perm));
}
return ret;
}
......@@ -121,29 +117,26 @@ public class RoleBean implements RoleBeanLocal {
return rrfacade.merge(row);
}
public Role getOrCreatePublicRole() {
Role ret = roleFacade.findByName(PUBLIC_ROLE_NAME);
if (ret == null) {
// public Role getOrCreatePublicRole() {
//
// Role ret = roleFacade.findByName(PUBLIC_ROLE_NAME);
// if (ret == null) {
//
// ret = roleFacade.createRole(eventBean.getCurrentEvent(), PUBLIC_ROLE_NAME);
// AccessRight perm = accessRightFacade.findByPermission(Permission.LOGIN);
// RoleRight rr = rrfacade.createRoleRight(ret, perm);
// rr.setRead(true);
// }
// return ret;
//
// }
ret = roleFacade.createRole(eventBean.getCurrentEvent(), PUBLIC_ROLE_NAME);
AccessRight perm = accessRightFacade.findByPermission(Permission.LOGIN);
RoleRight rr = rrfacade.createRoleRight(ret, perm);
rr.setRead(true);
}
return ret;
}
public RoleRight findRoleRight(Role role, Permission perm) {
AccessRight acr = accessRightFacade.findByPermission(perm);
return findRoleRight(role, acr);
}
public RoleRight findRoleRight(Role role, AccessRight acr) {
RoleRight rr = rrfacade.find(acr, role);
RoleRight rr = rrfacade.find(perm, role);
if (rr == null) {
rr = new RoleRight(role, acr, false, false, false);
rr = new RoleRight(role, perm, false, false, false);
rrfacade.create(rr);
}
return rr;
......
......@@ -18,7 +18,7 @@ import javax.persistence.Query;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.BillFacade;
import fi.insomnia.bortal.facade.BillFacade;
import fi.insomnia.bortal.facade.BillLineFacade;
import fi.insomnia.bortal.facade.CompoEntryFacade;
import fi.insomnia.bortal.facade.CompoFacade;
......
......@@ -22,11 +22,9 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.exceptions.PermissionDeniedException;
import fi.insomnia.bortal.facade.AccessRightFacade;
import fi.insomnia.bortal.facade.RoleFacade;
import fi.insomnia.bortal.facade.RoleRightFacade;
import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.model.AccessRight;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
import fi.insomnia.bortal.model.User;
......@@ -58,8 +56,6 @@ public class UserBean implements UserBeanLocal {
@EJB
private RoleBeanLocal rolebean;
@EJB
private AccessRightFacade accessRightFacade;
@EJB
private SecurityBeanLocal secubean;
......@@ -109,7 +105,7 @@ public class UserBean implements UserBeanLocal {
}
public boolean isLoggedIn() {
return !getAnonUser().equals(getCurrentUser());
return !getAnonUser().equals(getCurrentUser()) || getCurrentUser().isSuperadmin();
}
@Override
......@@ -134,11 +130,6 @@ public class UserBean implements UserBeanLocal {
defaultUser.setLogin(DEFAULT_USER_LOGIN);
userFacade.create(defaultUser);
defaultUser.setSuperadmin(true);
ArrayList<Role> userRoles = new ArrayList<Role>();
userRoles.add(rolebean.getOrCreatePublicRole());
defaultUser.setRoles(userRoles);
}
return defaultUser;
}
......@@ -152,23 +143,22 @@ public class UserBean implements UserBeanLocal {
Boolean ret = BortalLocalContextHolder.hasPermission(target, permission);
if (ret == null) {
ret = false;
AccessRight expectedRight = accessRightFacade.findByPermission(target);
Set<Role> checkedRoles = new HashSet<Role>();
List<Role> rolelist = rolefacade.findForUser(user, eventBean.getCurrentEvent());
if (getRights(rolelist, expectedRight, permission, checkedRoles)) {
if (getRights(rolelist, target, permission, checkedRoles)) {
ret = true;
}
logger.debug("Perm not found from cache. saving to cache");
logger.debug("Perm {} not found from cache. saving to cache: {}", target, ret);
BortalLocalContextHolder.setPermission(target, permission, ret);
} else {
logger.debug("VALUE from cache: {}", ret);
logger.debug("VALUE {} perm {} from cache: {}", new Object[] { target, permission, ret });
}
if (logger.isDebugEnabled()) {
long diffMs = Calendar.getInstance().getTimeInMillis() - start.getTimeInMillis();
logger.debug("Target {}, permission {} checktime {}ms", new Object[] { target, permission, diffMs });
logger.debug("User {} Target {}, permission {} checktime {}ms result: {}", new Object[] { user.getLogin(), target, permission, diffMs, ret });
}
// TODO: FIX THIS!! really bad idea....
......@@ -178,32 +168,31 @@ public class UserBean implements UserBeanLocal {
return ret;
}
private boolean getRights(Collection<Role> roles, AccessRight expectedRight, RolePermission permission, Set<Role> checkedRoles) {
private boolean getRights(Collection<Role> roles, Permission expectedRight, RolePermission permission, Set<Role> checkedRoles) {
if (roles == null || roles.isEmpty()) {
return false;
}
for (Role role : roles)
for (RoleRight rr : role.getRoleRights())// rrfacade.find(roles,
// expectedRight))
{
for (RoleRight rr : role.getRoleRights()) {
BortalLocalContextHolder.setPermission(rr);
switch (permission) {
case READ:
if (rr.isRead()) {
return true;
if (rr.getPermission().equals(expectedRight)) {
switch (permission) {
case READ:
if (rr.isRead()) {
return true;
}
break;
case WRITE:
if (rr.isWrite()) {
return true;
}
break;
case EXECUTE:
if (rr.isExecute()) {
return true;
}
}
break;
case WRITE:
if (rr.isWrite()) {
return true;
}
break;
case EXECUTE:
if (rr.isExecute()) {
return true;
}
}
}
checkedRoles.addAll(roles);
......
package fi.insomnia.bortal.facade;
import fi.insomnia.bortal.enums.Permission;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import fi.insomnia.bortal.model.AccessRight;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
@Stateless
@LocalBean
public class AccessRightFacade extends IntegerPkGenericFacade<AccessRight> {
@PersistenceContext
private EntityManager em;
public AccessRightFacade() {
super(AccessRight.class);
}
protected EntityManager getEm() {
return em;
}
/*
* public AccessRight findOrCreateByName(String target) {
*
* // Fetch access right by name TypedQuery<AccessRight> q =
* em.createQuery("SELECT a FROM AccessRight a WHERE a.name = :name",
* AccessRight.class); q.setParameter("name", target); AccessRight right =
* null; right = this.getSingleNullableResult(q);
*
* // Might not exist yet -> create if (right == null) { right = new
* AccessRight(); right.setName(target); em.persist(right); }
*
* return right; }
*/
public AccessRight findByPermission(Permission target) {
// Fetch access right by name
TypedQuery<AccessRight> q = em.createNamedQuery("AccessRight.findByName", AccessRight.class);
q.setParameter("name", target.name());
AccessRight right = null;
right = this.getSingleNullableResult(q);
if (right == null) {
right = new AccessRight(target.name());
right.setDescription(target.getDescription());
create(right);
}
return right;
}
public void find(LanEvent e, Role r) {
throw new NotImplementedException();
}
}
......@@ -10,15 +10,11 @@ import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.AccessRight;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
import fi.insomnia.bortal.model.User;
@Stateless
@LocalBean
......@@ -35,21 +31,21 @@ public class RoleRightFacade extends EventChildGenericFacade<RoleRight> {
return em;
}
public RoleRight find(AccessRight right, Role role) {
public RoleRight find(Permission permission, Role role) {
TypedQuery<RoleRight> q = this.getEm().createNamedQuery("RoleRight.findByRightAndRole", RoleRight.class);
q.setParameter("accessright", right);
q.setParameter("permission", permission);
q.setParameter("role", role);
return this.getSingleNullableResult(q);
}
public List<RoleRight> find(Collection<Role> roles, AccessRight accessright) {
public List<RoleRight> find(Collection<Role> roles, Permission permission) {
if(roles.size() == 0)
{
return new ArrayList<RoleRight>();
}
TypedQuery<RoleRight> q = getEm().createNamedQuery("RoleRight.findByRolesForAccessRight", RoleRight.class);
TypedQuery<RoleRight> q = getEm().createNamedQuery("RoleRight.findByRolesForPermission", RoleRight.class);
Set<Integer> roleids = new HashSet<Integer>();
for(Role r: roles)
{
roleids.add(r.getId().getId());
......@@ -58,11 +54,11 @@ public class RoleRightFacade extends EventChildGenericFacade<RoleRight> {
q.setParameter("eventId", eventId);
q.setParameter("roleids", roleids);
q.setParameter("accessright", accessright);
q.setParameter("permission", permission);
return q.getResultList();
}
public RoleRight createRoleRight(Role role, AccessRight perm) {
public RoleRight createRoleRight(Role role, Permission perm) {
RoleRight ret = new RoleRight(role, perm, false, false, false);
create(ret);
getEm().flush();
......
......@@ -20,17 +20,11 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.granite.builder.granitebuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.granite.builder.granitenature</nature>
</natures>
</projectDescription>
......@@ -9,13 +9,11 @@ import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
import fi.insomnia.bortal.model.User;
/**
*
*
* @author tuukka
*/
@Local
......@@ -27,17 +25,11 @@ public interface RoleBeanLocal {
public Role create(Role role);
public List<Role> getPossibleParents(Role role);
public List<RoleRight> getRoleRights(Role r);
public RoleRight mergeChanges(RoleRight row);
public Role getOrCreatePublicRole();
public List<RoleRight> getRoleRights(Role role);
// public List<Role> findRoles(User user, LanEvent currentEvent);
public List<Role> getPossibleParents(Role role);
}
......@@ -32,11 +32,6 @@
</arguments>
</buildCommand>
<buildCommand>
<name>org.granite.builder.granitebuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.axdt.as3.imp.builder</name>
<arguments>
</arguments>
......@@ -47,7 +42,6 @@
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.granite.builder.granitenature</nature>
<nature>org.axdt.as3.imp.nature</nature>
</natures>
</projectDescription>
......@@ -10,6 +10,7 @@ package fi.insomnia.bortal.enums;
*/
public enum Permission {
// NOTE. add conversion Value to RoleRight
// PERMISSION("Description"),
LOGIN("User can see loginbutton(r), create new user(w)"),
USER_MANAGEMENT("User has right to view all users(r), modify users(w), execute actions for user(x), Eg shop! "),
......@@ -37,6 +38,10 @@ public enum Permission {
Permission() {
}
public String getName()
{
return name();
}
/**
* @return the description
*/
......
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.model;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Version;
/**
* An access privilege such as a privilege to login or to work with compos.
*/
@Entity
@Table(name = "access_rights")
@NamedQueries( {
@NamedQuery(name = "AccessRight.findAll", query = "SELECT a FROM AccessRight a"),
@NamedQuery(name = "AccessRight.findByName", query = "SELECT a FROM AccessRight a WHERE a.name = :name") })
public class AccessRight implements ModelInterface {
/**
*
*/
private static final long serialVersionUID = -3786847490670470716L;
/**
* AccessRight is global entity, and thus does not have a reference to
* Event.
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Integer id;
/**
* Name of the access right. Code finds rights by this name, so this field
* should not be changed under any circumstances.
*/
@Column(name = "right_name", nullable = false, updatable = false, unique=true)
private String name;
/**
* Informative human readable description of the access right.
*/
@Lob
@Column(name = "right_description")
private String description;
/**
* Role rights that have references to this access right object.
*/
@OneToMany(mappedBy = "accessRight")
private List<RoleRight> roleRights;
@Override
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
@Version
@Column(nullable = false)
private int jpaVersionField = 0;
public AccessRight() {
}
public AccessRight(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String accessRight) {
this.name = accessRight;
}
public List<RoleRight> getRoleRightList() {
return roleRights;
}
public void setRoleRightList(List<RoleRight> roleRightList) {
this.roleRights = roleRightList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are
// not set
if (!(object instanceof AccessRight)) {
return false;
}
AccessRight other = (AccessRight) object;
if ((this.id == null && other.id != null)
|| (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "fi.insomnia.bortal.model.AccessRight[id=" + id + "]";
}
@Override
public void setJpaVersionField(int jpaVersionField) {
this.jpaVersionField = jpaVersionField;
}
@Override
public int getJpaVersionField() {
return jpaVersionField;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
......@@ -17,6 +17,7 @@ import javax.persistence.UniqueConstraint;
import javax.persistence.Version;
import org.eclipse.persistence.annotations.ConversionValue;
import org.eclipse.persistence.annotations.Convert;
import org.eclipse.persistence.annotations.ObjectTypeConverter;
import fi.insomnia.bortal.enums.Permission;
......@@ -26,11 +27,12 @@ import fi.insomnia.bortal.enums.Permission;
* @author jkj
*/
@Entity
@Table(name = "role_rights", uniqueConstraints = { @UniqueConstraint(columnNames = { "event_id", "role_id", "access_right_id" }) })
@Table(name = "role_rights", uniqueConstraints = { @UniqueConstraint(columnNames = { "event_id", "role_id", "permission" }) })
@NamedQueries({ @NamedQuery(name = "RoleRight.findAll", query = "SELECT r FROM RoleRight r"),
@NamedQuery(name = "RoleRight.findByRightAndRole", query = "SELECT r FROM RoleRight r where r.role = :role and r.accessRight = :accessright "),
@NamedQuery(name = "RoleRight.findByRolesForAccessRight", query = "SELECT rr from RoleRight rr where rr.role.id.eventId = :eventId and rr.role.id.id in :roleids and rr.accessRight = :accessright") })
@ObjectTypeConverter(name = "accessright", objectType = Permission.class, dataType = String.class, conversionValues = {
@NamedQuery(name = "RoleRight.findByRightAndRole", query = "SELECT r FROM RoleRight r where r.role = :role and r.permission = :permission "),
@NamedQuery(name = "RoleRight.findByRolesForPermission", query = "SELECT rr from RoleRight rr where rr.role.id.eventId = :eventId and rr.role.id.id in :roleids and rr.permission = :permission") })
@ObjectTypeConverter(name = "permissionconverter", objectType = Permission.class, dataType = String.class, conversionValues = {
@ConversionValue(dataValue = "LOGIN", objectValue = "LOGIN"),
@ConversionValue(dataValue = "USER_MANAGEMENT", objectValue = "USER_MANAGEMENT"),
@ConversionValue(dataValue = "TICKET_SALES", objectValue = "TICKET_SALES"),
......@@ -55,6 +57,8 @@ public class RoleRight implements EventChildInterface {
// @JoinColumn(name = "access_right_id", referencedColumnName = "id")
// @ManyToOne
// private AccessRight accessRight;
@Convert("permissionconverter")
@Column(name = "permission", nullable = false)
private Permission permission;
@JoinColumns({
......@@ -76,9 +80,9 @@ public class RoleRight implements EventChildInterface {
this.role = role;
}
public RoleRight(Role role, AccessRight right, boolean read, boolean write, boolean execute) {
public RoleRight(Role role, Permission right, boolean read, boolean write, boolean execute) {
this(role);
this.accessRight = right;
this.setPermission(right);
this.read = read;
this.write = write;
this.execute = execute;
......@@ -100,14 +104,6 @@ public class RoleRight implements EventChildInterface {
this.write = write;
}
public AccessRight getAccessRight() {
return accessRight;
}
public void setAccessRight(AccessRight accessRightsId) {
this.accessRight = accessRightsId;
}
public Role getRole() {
return role;
}
......@@ -184,4 +180,12 @@ public class RoleRight implements EventChildInterface {
public boolean isExecute() {
return execute;
}
public void setPermission(Permission permission) {
this.permission = permission;
}
public Permission getPermission() {
return permission;
}
}
......@@ -25,11 +25,6 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.granite.builder.granitebuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
......@@ -37,6 +32,5 @@
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.axdt.as3.imp.nature</nature>
<nature>org.granite.builder.granitenature</nature>
</natures>
</projectDescription>
......@@ -72,15 +72,14 @@ public class BortalLocalContextHolder {
}
public static void setPermission( RoleRight rr) {
Permission target = Permission.valueOf(rr.getAccessRight().getName());
if (rr.isExecute()) {
setPermission(target, RolePermission.EXECUTE, true);
setPermission(rr.getPermission(), RolePermission.EXECUTE, true);
}
if (rr.isWrite()) {
setPermission(target, RolePermission.WRITE, true);
setPermission(rr.getPermission(), RolePermission.WRITE, true);
}
if (rr.isRead()) {
setPermission(target, RolePermission.READ, true);
setPermission(rr.getPermission(), RolePermission.READ, true);
}
}
......
......@@ -26,11 +26,6 @@
</arguments>
</buildCommand>
<buildCommand>
<name>org.granite.builder.granitebuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.axdt.as3.imp.builder</name>
<arguments>
</arguments>
......@@ -43,6 +38,5 @@
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>org.axdt.as3.imp.nature</nature>
<nature>org.granite.builder.granitenature</nature>
</natures>
</projectDescription>
......@@ -7,11 +7,13 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:products="http://java.sun.com/jsf/composite/tools/products">
xmlns:products="http://java.sun.com/jsf/composite/tools/products"
xmlns:tools="http://java.sun.com/jsf/composite/tools">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.product.create" />
<ui:define name="content">
<tools:fatalPermission target="PRODUCT" permission="WRITE" />
<products:create />
</ui:define>
</ui:composition>
......
......@@ -7,6 +7,7 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:tools="http://java.sun.com/jsf/composite/tools"
xmlns:products="http://java.sun.com/jsf/composite/tools/products">
<h:head>
<title></title>
......@@ -15,6 +16,8 @@
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.product.edit" />
<ui:define name="content">
<tools:fatalPermission target="PRODUCT" permission="WRITE" />
<products:edit commitvalue="#{i18n['products.save']}">
<f:actionListener for="commitbutton" binding="#{productView.saveProduct()}" />
</products:edit>
......
......@@ -6,11 +6,13 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:products="http://java.sun.com/jsf/composite/tools/products"
xmlns:tools="http://java.sun.com/jsf/composite/tools"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.product.list" />
<ui:define name="content">
<tools:fatalPermission target="PRODUCT" permission="READ" />
<products:list />
</ui:define>
</ui:composition>
......
......@@ -15,7 +15,7 @@
</composite:interface>
<composite:implementation>
<h:outputText rendered="#{sessionHandler.fatalPermission(cc.attrs.target, cc.attrs.permission)}" value=""/>
#{sessionHandler.fatalPermission(cc.attrs.target, cc.attrs.permission)}
</composite:implementation>
</html>
\ No newline at end of file
......@@ -26,13 +26,13 @@
<f:facet name="header">
<h:outputText value="#{i18n['role.name']}" />
</f:facet>
<h:outputText value="#{rr.accessRight.name}" />
<h:outputText value="#{rr.permission.name}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['role.description']}" />
</f:facet>
<h:outputText value="#{rr.accessRight.description}" />
<h:outputText value="#{rr.permission.description}" />
</h:column>
<h:column>
<f:facet name="header">
......
......@@ -6,11 +6,15 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:role="http://java.sun.com/jsf/composite/tools/role"
xmlns:tools="http://java.sun.com/jsf/composite/tools"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.role.create" />
<ui:define name="content">
<tools:fatalPermission target="ROLE_MANAGEMENT" permission="WRITE" />
<role:create />
</ui:define>
</ui:composition>
......
......@@ -6,11 +6,13 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:role="http://java.sun.com/jsf/composite/tools/role"
xmlns:tools="http://java.sun.com/jsf/composite/tools"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.role.edit" />
<ui:define name="content">
<tools:fatalPermission target="ROLE_MANAGEMENT" permission="WRITE" />
<role:edit />
</ui:define>
</ui:composition>
......
......@@ -6,11 +6,13 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:role="http://java.sun.com/jsf/composite/tools/role"
xmlns:tools="http://java.sun.com/jsf/composite/tools"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.role.list" />
<ui:define name="content">
<tools:fatalPermission target="ROLE_MANAGEMENT" permission="READ" />
<role:list valuelist="#{roleView.roles}" >
</role:list>
</ui:define>
......
......@@ -50,7 +50,6 @@ public class ProductShopView {
private User shoppingUser;
public DataModel<Product> getUserShoppableProducts() {
userBean.fatalNotLoggedIn();
ListDataModel<Product> items = new ListDataModel<Product>(productBean.listUserShoppableProducts());
logger.info("Fetching products. Found {}", items.getRowCount());
return items;
......
......@@ -60,14 +60,14 @@ public class ProductView {
}
public String createProduct() {
public void createProduct() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.WRITE);
setProduct(productBean.createProduct(productname, productprice));
productprice = BigDecimal.ZERO;
productname = "";
return "edit";
// return "edit";
}
public String edit() {
......@@ -76,10 +76,9 @@ public class ProductView {
return "edit";
}
public String saveProduct() {
public void saveProduct() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.WRITE);
productBean.mergeChanges(product);
return "list";
}
/**
......
......@@ -94,7 +94,7 @@ public class RoleView {
logger.info("Roleright array: {}", rolerights);
RoleRight row = rolerights.getRowData();
roleBean.mergeChanges(row);
logger.info("Saving roleright {}, r {}, w {}, x {}", new String[] { row.getAccessRight().getName(), new Boolean(row.isRead()).toString(), new Boolean(row.isWrite()).toString(), new Boolean(row.isExecute()).toString() });
logger.info("Saving roleright {}, r {}, w {}, x {}", new String[] { row.getPermission().toString(), new Boolean(row.isRead()).toString(), new Boolean(row.isWrite()).toString(), new Boolean(row.isExecute()).toString() });
rolerights = null;
return "editRoleright";
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!