Commit bd9a4f7a by Tuomas Riihimäki

Also check orgroles when fetcing roles for user

1 parent 3356c757
...@@ -65,6 +65,7 @@ import fi.codecrew.moya.facade.EventUserFacade; ...@@ -65,6 +65,7 @@ import fi.codecrew.moya.facade.EventUserFacade;
import fi.codecrew.moya.facade.FeedbackFacade; import fi.codecrew.moya.facade.FeedbackFacade;
import fi.codecrew.moya.facade.GameIDFacade; import fi.codecrew.moya.facade.GameIDFacade;
import fi.codecrew.moya.facade.GroupMembershipFacade; import fi.codecrew.moya.facade.GroupMembershipFacade;
import fi.codecrew.moya.facade.OrgRoleFacade;
import fi.codecrew.moya.facade.PlaceGroupFacade; import fi.codecrew.moya.facade.PlaceGroupFacade;
import fi.codecrew.moya.facade.PrintedCardFacade; import fi.codecrew.moya.facade.PrintedCardFacade;
import fi.codecrew.moya.facade.ProductFacade; import fi.codecrew.moya.facade.ProductFacade;
...@@ -177,6 +178,8 @@ public class UserBean implements UserBeanLocal { ...@@ -177,6 +178,8 @@ public class UserBean implements UserBeanLocal {
private EventFacade eventfacade; private EventFacade eventfacade;
@EJB @EJB
private ProductFacade productFacade; private ProductFacade productFacade;
@EJB
private OrgRoleFacade orgRoleFacade;
@Override @Override
@RolesAllowed(UserPermission.S_VIEW_ALL) @RolesAllowed(UserPermission.S_VIEW_ALL)
...@@ -232,7 +235,7 @@ public class UserBean implements UserBeanLocal { ...@@ -232,7 +235,7 @@ public class UserBean implements UserBeanLocal {
if (u != null) if (u != null)
{ {
addRecursive(checkedRoles, rolefacade.findForUser(u)); addRecursive(checkedRoles, rolefacade.findForUser(u));
addRecursive(checkedRoles, orgRoleFacade.findRolesForUser(u));
if (permbean.isLoggedIn()) { if (permbean.isLoggedIn()) {
// add roles from events default role. // add roles from events default role.
...@@ -1141,8 +1144,6 @@ public class UserBean implements UserBeanLocal { ...@@ -1141,8 +1144,6 @@ public class UserBean implements UserBeanLocal {
return eventUserFacade.findByLogin(username); return eventUserFacade.findByLogin(username);
} }
@Override @Override
@RolesAllowed(EventPermission.S_MANAGE_EVENT) @RolesAllowed(EventPermission.S_MANAGE_EVENT)
public EventUser getUserByAuthcode(String authcode) { public EventUser getUserByAuthcode(String authcode) {
...@@ -1188,5 +1189,4 @@ public class UserBean implements UserBeanLocal { ...@@ -1188,5 +1189,4 @@ public class UserBean implements UserBeanLocal {
return user; return user;
} }
} }
\ No newline at end of file
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
*/ */
package fi.codecrew.moya.facade; package fi.codecrew.moya.facade;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import javax.ejb.EJB; import javax.ejb.EJB;
...@@ -25,12 +27,20 @@ import javax.ejb.LocalBean; ...@@ -25,12 +27,20 @@ import javax.ejb.LocalBean;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.ListJoin;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
import javax.persistence.criteria.Subquery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.EventBeanLocal; import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.model.EventOrganiser; import fi.codecrew.moya.model.EventOrganiser;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.OrgRole; import fi.codecrew.moya.model.OrgRole;
import fi.codecrew.moya.model.OrgRole_; import fi.codecrew.moya.model.OrgRole_;
import fi.codecrew.moya.model.Role;
import fi.codecrew.moya.model.Role_;
import fi.codecrew.moya.model.User; import fi.codecrew.moya.model.User;
/** /**
...@@ -42,6 +52,8 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> { ...@@ -42,6 +52,8 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> {
@EJB @EJB
EventBeanLocal eventBean; EventBeanLocal eventBean;
private EventBeanLocal eventbean;
private static final Logger logger = LoggerFactory.getLogger(OrgRoleFacade.class);
public OrgRoleFacade() { public OrgRoleFacade() {
super(OrgRole.class); super(OrgRole.class);
...@@ -100,4 +112,18 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> { ...@@ -100,4 +112,18 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> {
return getEm().createQuery(cq).getResultList(); return getEm().createQuery(cq).getResultList();
} }
// TODO: Väsyttää liikaa... tästä pitäisi tehdä kantakysely
public List<Role> findRolesForUser(EventUser u) {
ArrayList<Role> ret = new ArrayList<>();
for (OrgRole or : findForUser(u.getUser())) {
for (Role r : or.getEventRoles()) {
if (r.getEvent().equals(u.getEvent())) {
ret.add(r);
logger.info("Adding role {} from orgrole {}", r.getName(), or.getName());
}
}
}
return ret;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!