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;
import fi.codecrew.moya.facade.FeedbackFacade;
import fi.codecrew.moya.facade.GameIDFacade;
import fi.codecrew.moya.facade.GroupMembershipFacade;
import fi.codecrew.moya.facade.OrgRoleFacade;
import fi.codecrew.moya.facade.PlaceGroupFacade;
import fi.codecrew.moya.facade.PrintedCardFacade;
import fi.codecrew.moya.facade.ProductFacade;
......@@ -177,6 +178,8 @@ public class UserBean implements UserBeanLocal {
private EventFacade eventfacade;
@EJB
private ProductFacade productFacade;
@EJB
private OrgRoleFacade orgRoleFacade;
@Override
@RolesAllowed(UserPermission.S_VIEW_ALL)
......@@ -232,7 +235,7 @@ public class UserBean implements UserBeanLocal {
if (u != null)
{
addRecursive(checkedRoles, rolefacade.findForUser(u));
addRecursive(checkedRoles, orgRoleFacade.findRolesForUser(u));
if (permbean.isLoggedIn()) {
// add roles from events default role.
......@@ -465,16 +468,16 @@ public class UserBean implements UserBeanLocal {
return false;
}
@Override
@RolesAllowed(UserPermission.S_MODIFY)
public boolean resetPassword(User user, String password) {
logger.debug("Changing user {} password", user);
user.resetPassword(password);
userFacade.merge(user);
return true;
}
@Override
@RolesAllowed(UserPermission.S_MODIFY)
public boolean resetPassword(User user, String password) {
logger.debug("Changing user {} password", user);
user.resetPassword(password);
userFacade.merge(user);
return true;
}
@Override
@Override
public boolean initPasswordResetForUsername(String username, String url) {
User user = userFacade.findByLogin(username);
return initPasswordReset(user, url);
......@@ -1121,14 +1124,14 @@ public class UserBean implements UserBeanLocal {
return eventUserFacade.findByLogin(username);
}
@Override
@RolesAllowed(UserPermission.S_VIEW_ALL)
public Boolean checkPassword(EventUser eventUser, String password) {
if (eventUser != null) {
return eventUser.checkPassword(password);
}
return null;
}
@Override
@RolesAllowed(UserPermission.S_VIEW_ALL)
public Boolean checkPassword(EventUser eventUser, String password) {
if (eventUser != null) {
return eventUser.checkPassword(password);
}
return null;
}
@Override
@RolesAllowed(SpecialPermission.S_SUPERADMIN)
......@@ -1141,9 +1144,7 @@ public class UserBean implements UserBeanLocal {
return eventUserFacade.findByLogin(username);
}
@Override
@Override
@RolesAllowed(EventPermission.S_MANAGE_EVENT)
public EventUser getUserByAuthcode(String authcode) {
logger.info("getUser({})", authcode);
......@@ -1188,5 +1189,4 @@ public class UserBean implements UserBeanLocal {
return user;
}
}
\ No newline at end of file
......@@ -18,6 +18,8 @@
*/
package fi.codecrew.moya.facade;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.ejb.EJB;
......@@ -25,12 +27,20 @@ import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.ListJoin;
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.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.Role;
import fi.codecrew.moya.model.Role_;
import fi.codecrew.moya.model.User;
/**
......@@ -42,6 +52,8 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> {
@EJB
EventBeanLocal eventBean;
private EventBeanLocal eventbean;
private static final Logger logger = LoggerFactory.getLogger(OrgRoleFacade.class);
public OrgRoleFacade() {
super(OrgRole.class);
......@@ -100,4 +112,18 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> {
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!