Commit df716303 by Tuomas Riihimäki

Add organisation role requesting bean functions

1 parent a441fb90
......@@ -23,6 +23,7 @@ import java.util.List;
import javax.ejb.Local;
import fi.codecrew.moya.model.OrgRole;
import fi.codecrew.moya.model.OrgRoleRequest;
import fi.codecrew.moya.model.Role;
import fi.codecrew.moya.model.User;
......@@ -45,4 +46,8 @@ public interface OrgRoleBeanLocal {
OrgRole addEventRole(Role eventRole, OrgRole orgRole);
void createRequest(OrgRoleRequest request);
List<OrgRole> getRequestableRoles();
}
......@@ -19,6 +19,7 @@
package fi.codecrew.moya.beans;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
......@@ -33,9 +34,11 @@ import org.slf4j.LoggerFactory;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.facade.OrgRoleFacade;
import fi.codecrew.moya.facade.OrgRoleRequestFacade;
import fi.codecrew.moya.facade.RoleFacade;
import fi.codecrew.moya.facade.UserFacade;
import fi.codecrew.moya.model.OrgRole;
import fi.codecrew.moya.model.OrgRoleRequest;
import fi.codecrew.moya.model.Role;
import fi.codecrew.moya.model.User;
import fi.codecrew.moya.utilities.jpa.GenericFacade;
......@@ -45,7 +48,11 @@ import fi.codecrew.moya.utilities.jpa.GenericFacade;
*/
@Stateless
@LocalBean
@DeclareRoles({ UserPermission.S_READ_ORGROLES, UserPermission.S_WRITE_ORGROLES })
@DeclareRoles({
UserPermission.S_READ_ORGROLES,
UserPermission.S_WRITE_ORGROLES,
UserPermission.S_REQUEST_ORGROLES,
})
public class OrgRoleBean implements OrgRoleBeanLocal {
private static final Logger logger = LoggerFactory.getLogger(OrgRoleBean.class);
......@@ -62,6 +69,10 @@ public class OrgRoleBean implements OrgRoleBeanLocal {
private UserFacade userFacade;
@EJB
private RoleFacade roleFacade;
@EJB
private PermissionBean permbean;
@EJB
private OrgRoleRequestFacade orgrolerequestfacade;
public OrgRoleBean() {
}
......@@ -183,4 +194,17 @@ public class OrgRoleBean implements OrgRoleBeanLocal {
return orgRole;
}
@Override
@RolesAllowed({ UserPermission.S_REQUEST_ORGROLES })
public void createRequest(OrgRoleRequest request) {
request.setRequestDate(new Date());
request.setUser(permbean.getCurrentUser().getUser());
orgrolerequestfacade.create(request);
}
@Override
@RolesAllowed({ UserPermission.S_REQUEST_ORGROLES })
public List<OrgRole> getRequestableRoles() {
return orgRoleFacade.findUserRequestable();
}
}
......@@ -87,4 +87,17 @@ public class OrgRoleFacade extends IntegerPkGenericFacade<OrgRole> {
return getEm().createQuery(cq).getResultList();
}
public List<OrgRole> findUserRequestable() {
EventOrganiser org = eventBean.getCurrentEvent().getOrganiser();
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<OrgRole> cq = cb.createQuery(OrgRole.class);
Root<OrgRole> root = cq.from(OrgRole.class);
cq.where(cb.equal(root.get(OrgRole_.eventOrganisation), org),
cb.isTrue(root.get(OrgRole_.userRequestable))
);
return getEm().createQuery(cq).getResultList();
}
}
/*
* Copyright Codecrew Ry
*
* All rights reserved.
*
* This license applies to any software containing a notice placed by the
* copyright holder. Such software is herein referred to as the Software.
* This license covers modification, distribution and use of the Software.
*
* Any distribution and use in source and binary forms, with or without
* modification is not permitted without explicit written permission from the
* copyright owner.
*
* A non-exclusive royalty-free right is granted to the copyright owner of the
* Software to use, modify and distribute all modifications to the Software in
* future versions of the Software.
*
*/
package fi.codecrew.moya.facade;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.model.OrgRoleRequest;
/**
* Session Bean implementation class OrgRoleFacade
*/
@Stateless
@LocalBean
public class OrgRoleRequestFacade extends IntegerPkGenericFacade<OrgRoleRequest> {
@EJB
EventBeanLocal eventBean;
public OrgRoleRequestFacade() {
super(OrgRoleRequest.class);
}
}
......@@ -37,11 +37,13 @@ public enum UserPermission implements IAppPermission {
INVITE_USERS, // ("Invite users"),
READ_ORGROLES, // ("View organization roles"),
WRITE_ORGROLES, // ("Modify organization roles"),
REQUEST_ORGROLES,
VITUTTAAKO,
LOGGED_IN_USER,
MODIFY_OWN_GAMEIDS,
VIEW_ALL_GAMEIDS,
HELPPAGE;
HELPPAGE,
;
public static final String S_VIEW_ALL = "USER/VIEW_ALL";
public static final String S_MODIFY = "USER/MODIFY";
......@@ -59,6 +61,7 @@ public enum UserPermission implements IAppPermission {
public static final String S_INVITE_USERS = "USER/INVITE_USERS";
public static final String S_READ_ORGROLES = "USER/READ_ORGROLES";
public static final String S_WRITE_ORGROLES = "USER/WRITE_ORGROLES";
public static final String S_REQUEST_ORGROLES = "USER/REQUEST_ORGROLES";
public static final String S_VITUTTAAKO = "USER/VITUTTAAKO";
public static final String S_MODIFY_OWN_GAMEIDS = "USER/MODIFY_OWN_GAMEIDS";
public static final String S_VIEW_ALL_GAMEIDS = "USER/VIEW_ALL_GAMEIDS";
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!