Commit effe8361 by Tuomas Riihimäki

Change loop to sql request for role fetching from orgroles

1 parent b4d815cd
...@@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory; ...@@ -37,6 +37,7 @@ 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.EventUser;
import fi.codecrew.moya.model.LanEvent;
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;
...@@ -51,8 +52,8 @@ import fi.codecrew.moya.model.User; ...@@ -51,8 +52,8 @@ import fi.codecrew.moya.model.User;
public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> { public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> {
@EJB @EJB
EventBeanLocal eventBean; private EventBeanLocal eventBean;
private EventBeanLocal eventbean;
private static final Logger logger = LoggerFactory.getLogger(OrgRoleFacade.class); private static final Logger logger = LoggerFactory.getLogger(OrgRoleFacade.class);
public OrgRoleFacade() { public OrgRoleFacade() {
...@@ -113,17 +114,24 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> { ...@@ -113,17 +114,24 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> {
} }
// TODO: Väsyttää liikaa... tästä pitäisi tehdä kantakysely
public List<Role> findRolesForUser(EventUser u) { public List<Role> findRolesForUser(EventUser u) {
ArrayList<Role> ret = new ArrayList<>(); LanEvent event = eventBean.getCurrentEvent();
for (OrgRole or : findForUser(u.getUser())) {
for (Role r : or.getEventRoles()) { CriteriaBuilder cb = getEm().getCriteriaBuilder();
if (r.getEvent().equals(u.getEvent())) { CriteriaQuery<Role> cq = cb.createQuery(Role.class);
ret.add(r); Root<OrgRole> root = cq.from(OrgRole.class);
logger.info("Adding role {} from orgrole {}", r.getName(), or.getName()); ListJoin<OrgRole, Role> eventRoles = root.join(OrgRole_.eventRoles);
} cq.select(eventRoles);
}
} cq.where(
cb.equal(root.get(OrgRole_.eventOrganisation), event.getOrganiser()),
cb.isMember(u.getUser(), root.get(OrgRole_.users)),
cb.equal(eventRoles.get(Role_.event), event)
);
List<Role> ret = getEm().createQuery(cq).getResultList();
return ret; return ret;
} }
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!