Commit 1bbb6be2 by Tuomas Riihimäki

orgrole puljaus

1 parent a49cf635
......@@ -10,18 +10,14 @@ import javax.ejb.Stateless;
import fi.insomnia.bortal.enums.ActionLogMessageState;
import fi.insomnia.bortal.enums.apps.ContentPermission;
import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.facade.ActionLogFacade;
import fi.insomnia.bortal.model.ActionLogMessage;
import fi.insomnia.bortal.model.ActionLogMessageResponse;
import fi.insomnia.bortal.model.Role;
/**
* Session Bean implementation class ActionLogBean
* eventin
* - luominen
* - editointi
* - deletointi
* Session Bean implementation class ActionLogBean eventin - luominen -
* editointi - deletointi
*/
@Stateless
@DeclareRoles(ContentPermission.S_MANAGE_ACTIONLOG)
......@@ -45,14 +41,14 @@ public class ActionLogBean implements ActionLogBeanLocal {
public void createActionLogEvent(String message, Role crew, boolean isTask) {
ActionLogMessage alm = new ActionLogMessage();
alm.setCrew(crew);
if(isTask) {
if (isTask) {
alm.setState(ActionLogMessageState.NEW);
} else {
alm.setState(null);
}
alm.setTime(new Date());
alm.setMessage(message);
alm.setUser(permissionBean.getCurrentUser());
alm.setUser(permissionBean.getCurrentUser().getUser());
actionLogFacade.saveToActionLog(alm);
}
......@@ -66,15 +62,15 @@ public class ActionLogBean implements ActionLogBeanLocal {
public List<Role> getAssignableRoles() {
return roleBean.listRoles();
}
@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
public List<ActionLogMessageResponse> getActionLogMessageResponses(ActionLogMessage alm) {
return actionLogFacade.getActionLogMessageResponses(alm);
}
@RolesAllowed(ContentPermission.S_MANAGE_ACTIONLOG)
public void addActionLogMessageResponse(ActionLogMessage alm, String message, ActionLogMessageState state) {
if(alm.getState() != state && state != null) {
if (alm.getState() != state && state != null) {
alm.setState(state);
}
......
......@@ -19,15 +19,15 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.facade.CardTemplateFacade;
import fi.insomnia.bortal.facade.EventUserFacade;
import fi.insomnia.bortal.facade.LanEventPropertyFacade;
import fi.insomnia.bortal.facade.PrintedCardFacade;
import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.model.CardTemplate;
import fi.insomnia.bortal.model.EventUser;
import fi.insomnia.bortal.model.IUser;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.LanEventProperty;
import fi.insomnia.bortal.model.LanEventPropertyKey;
import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.util.MailMessage;
/**
......@@ -64,6 +64,9 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
@EJB
private UserBeanLocal userbean;
@EJB
private LanEventPropertyFacade eventPropertyFacade;
// @Override
// @RolesAllowed("USER_MANAGEMENT/WRITE")
// public List<CardTemplate> findAll() {
......@@ -152,17 +155,18 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
logger.info("User {} has too little power old role {} New role {}", new Object[] { user.getLogin(), existingPower, newPower });
} else if (existingPower > newPower) {
MailMessage msg = new MailMessage();
IUser admin = eventBean.getCurrentEvent().getOrganiser().getAdmin();
String adminmail = admin.getEmail();
LanEventProperty value = eventPropertyFacade.find(eventBean.getCurrentEvent(), LanEventPropertyKey.ADMIN_MAIL);
if (value != null && value.getTextvalue() != null && !value.getTextvalue().isEmpty())
{
msg.setFromAddress(adminmail);
msg.setFromAddress(value.getTextvalue());
msg.setFromName("Lippukauppa");
msg.setTo(admin);
msg.setToAddress(value.getTextvalue());
msg.setSubject("User " + user.getLogin() + " has too powerful card!");
msg.setMessage("User ", user.getLogin(), "has too powerful card!\nCurrent power ", existingPower, ". Should be ", newPower, "\n\n-- \nLippukauppa");
mailbean.sendMail(msg);
logger.info("User {} has too much power old role {} New role {}", new Object[] { user.getLogin(), existingPower, newPower });
}
} else {
logger.info("User {} has power {} and roles has power {}", new Object[] { user.getLogin(), existingPower, newPower });
}
......
......@@ -17,7 +17,6 @@ import fi.insomnia.bortal.facade.EventOrganiserFacade;
import fi.insomnia.bortal.facade.LanEventDomainFacade;
import fi.insomnia.bortal.facade.LanEventPropertyFacade;
import fi.insomnia.bortal.model.EventOrganiser;
import fi.insomnia.bortal.model.EventUser;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.LanEventDomain;
import fi.insomnia.bortal.model.LanEventProperty;
......@@ -82,8 +81,6 @@ public class EventBean implements EventBeanLocal {
settings = new EventOrganiser();
settings.setOrganisation(DEFAULT_ORGANISATION_NAME);
EventUser defaultUser = permbean.getAnonEventUser();
settings.setAdmin(defaultUser);
eventOrganiserFacade.create(settings);
}
......
......@@ -53,7 +53,6 @@ public class EventOrganiserBean implements EventOrganiserBeanLocal {
@RolesAllowed(SpecialPermission.S_SUPERADMIN)
public EventOrganiser create(String name) {
EventOrganiser ret = new EventOrganiser();
ret.setAdmin(permbean.getCurrentUser());
ret.setOrganisation(name);
eventorgfacade.create(ret);
return ret;
......@@ -70,8 +69,27 @@ public class EventOrganiserBean implements EventOrganiserBeanLocal {
return eventfacade.find(eventid);
}
//
// @Override
// public List<EventOrganiser> getOrganisations(User user) {
// return eventorgfacade.find(user);
// }
@Override
public List<EventOrganiser> getOrganisations(IUser user) {
return eventorgfacade.find(user);
// TODO: korjaa!!!
return null;
}
@Override
public boolean hasOrgPermission(Integer orgId) {
// TODO: korjaa!!!
return false;
}
@Override
public boolean hasEventPermission(Integer eventid) {
// TODO: korjaa!!!
return false;
}
}
......@@ -10,7 +10,6 @@ import javax.persistence.criteria.Root;
import fi.insomnia.bortal.model.EventOrganiser;
import fi.insomnia.bortal.model.EventOrganiser_;
import fi.insomnia.bortal.model.IUser;
@Stateless
@LocalBean
......@@ -38,13 +37,13 @@ public class EventOrganiserFacade extends IntegerPkGenericFacade<EventOrganiser>
CriteriaQuery<EventOrganiser> cq = cb.createQuery(EventOrganiser.class);
return getEm().createQuery(cq).getResultList();
}
public List<EventOrganiser> find(IUser user) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<EventOrganiser> cq = cb.createQuery(EventOrganiser.class);
Root<EventOrganiser> root = cq.from(EventOrganiser.class);
cq.where(cb.equal(root.get(EventOrganiser_.admin), user));
return getEm().createQuery(cq).getResultList();
}
//
// public List<EventOrganiser> find(IUser user) {
// CriteriaBuilder cb = getEm().getCriteriaBuilder();
// CriteriaQuery<EventOrganiser> cq = cb.createQuery(EventOrganiser.class);
// Root<EventOrganiser> root = cq.from(EventOrganiser.class);
// cq.where(cb.equal(root.get(EventOrganiser_.admin), user));
// return getEm().createQuery(cq).getResultList();
//
// }
}
......@@ -23,4 +23,8 @@ public interface EventOrganiserBeanLocal {
List<EventOrganiser> getOrganisations(IUser user);
boolean hasOrgPermission(Integer orgId);
boolean hasEventPermission(Integer eventid);
}
......@@ -9,9 +9,7 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
......@@ -35,7 +33,7 @@ public class ActionLogMessage extends GenericEntity {
private Date time = new Date();
@JoinColumn(name = "user_id")
private IUser user;
private User user;
@JoinColumn(name = "crew", nullable = false)
private Role crew;
......@@ -60,11 +58,11 @@ public class ActionLogMessage extends GenericEntity {
this.time = time;
}
public IUser getUser() {
public User getUser() {
return user;
}
public void setUser(IUser user) {
public void setUser(User user) {
this.user = user;
}
......
......@@ -5,8 +5,6 @@ import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
......@@ -34,10 +32,6 @@ public class EventOrganiser extends GenericEntity {
@OneToMany(cascade = CascadeType.ALL, mappedBy = "organiser")
private List<LanEvent> events;
@ManyToOne()
@JoinColumn(name = "admin_user_id", referencedColumnName = "id", nullable = false)
private EventUser admin;
@Column(nullable = false, name = "bill_address1")
private String billAddress1 = "";
@Column(nullable = false, name = "bill_address2")
......@@ -93,21 +87,6 @@ public class EventOrganiser extends GenericEntity {
this.bundleCountry = bundleCountry;
}
/**
* @return the admin
*/
public EventUser getAdmin() {
return admin;
}
/**
* @param admin
* the admin to set
*/
public void setAdmin(EventUser admin) {
this.admin = admin;
}
public String getBillAddress1() {
return billAddress1;
}
......
......@@ -5,7 +5,8 @@ public enum LanEventPropertyKey {
INVITEMAIL_SUBJECT(Type.TEXT, "Invitation to Stream demoparty"),
INVITEMAIL_CONTENT(Type.TEXT, "You have been invited to Stream demoparty by {1}.\n\nYou can register to stream demparty intranet at: {0}\n\nAfter registering to the intranet you can buy a ticket to Stream demoparty reduced price and invite your friends to join the party with you. More information can be found in the intranet. Remember also to visit our website at http://www.streamparty.org and join us at #streamparty in IRCNet. If you have any questions about this mail, registering to intranet, or anything else regarding Stream demoparty, please send us email to info@streamparty.org\n\n-- \nStream organizing\ninfo@streamparty.org"),
PORTAL_EMAIL_ADDRESS(Type.TEXT, "intra@streamparty.org"),
PORTAL_EMAIL_NAME(Type.TEXT, "Streamparty intranet"), ;
PORTAL_EMAIL_NAME(Type.TEXT, "Streamparty intranet"),
ADMIN_MAIL(Type.TEXT, "intra@streamparty.org"), ;
private enum Type {
TEXT, DATE, DATA
......
......@@ -9,7 +9,6 @@ import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
......@@ -21,13 +20,14 @@ import org.eclipse.persistence.annotations.OptimisticLockingType;
*
*/
@Entity
@Table(name = "org_roles", uniqueConstraints = { @UniqueConstraint(columnNames = { OrgRole.NAME_COLUMN }) })
@Table(name = "org_roles", uniqueConstraints = { @UniqueConstraint(columnNames = { OrgRole.EVENTORG_ID_COLUMN, OrgRole.NAME_COLUMN }) })
@OptimisticLocking(type = OptimisticLockingType.CHANGED_COLUMNS)
public class OrgRole extends GenericEntity {
private static final long serialVersionUID = 1L;
protected static final String NAME_COLUMN = "role_name";
protected static final String EVENTORG_ID_COLUMN = "organizer_id";
@Column(name = NAME_COLUMN, nullable = false)
private String name;
......@@ -47,10 +47,13 @@ public class OrgRole extends GenericEntity {
@ManyToMany(mappedBy = "parents")
private List<OrgRole> children = new ArrayList<OrgRole>();
@JoinColumn(nullable = false)
@JoinColumn(nullable = false, name = EVENTORG_ID_COLUMN)
@ManyToOne()
private EventOrganiser eventOrganizer;
@Column(nullable = false)
private boolean manageOrganizer = false;
@ManyToMany(mappedBy = "orgRoles")
private List<Role> eventRoles;
......@@ -106,4 +109,12 @@ public class OrgRole extends GenericEntity {
this.eventRoles = eventRoles;
}
public boolean isManageOrganizer() {
return manageOrganizer;
}
public void setManageOrganizer(boolean manageOrganizer) {
this.manageOrganizer = manageOrganizer;
}
}
......@@ -75,7 +75,7 @@ public class EventOrgView extends GenericCDIView {
public void initEdit() {
if (super.requirePermissions(user.isSuperadmin() || (eventorg.getAdmin().equals(user))) && eventorg == null) {
if (super.requirePermissions(eventorgbean.hasOrgPermission(orgId) || user.isSuperadmin()) && eventorg == null) {
if (orgId != null) {
eventorg = eventorgbean.find(orgId);
} else {
......@@ -86,7 +86,7 @@ public class EventOrgView extends GenericCDIView {
}
public void initListView() {
if (super.requirePermissions(user.isSuperadmin() || (eventbean.getCurrentEvent().getOrganiser().getAdmin().equals(user)))) {
if (super.requirePermissions(user.isSuperadmin() || eventorgbean.hasOrgPermission(orgId))) {
if (getUser().isSuperadmin()) {
setOrganisations(eventorgbean.getEventOrganisers());
......@@ -98,7 +98,7 @@ public class EventOrgView extends GenericCDIView {
public void initEditEvent()
{
if (super.requirePermissions(user.isSuperadmin() || (eventbean.getCurrentEvent().getOrganiser().getAdmin().equals(user))) && getEvent() == null)
if (super.requirePermissions(user.isSuperadmin() || eventorgbean.hasEventPermission(eventid)) && getEvent() == null)
{
setEvent(eventorgbean.findEvent(eventid));
super.beginConversation();
......
......@@ -2,7 +2,7 @@ package fi.insomnia.bortal.web.cdiview.voting;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
import javax.inject.Named;
import javax.validation.constraints.NotNull;
import org.primefaces.model.UploadedFile;
......@@ -11,7 +11,7 @@ import fi.insomnia.bortal.beans.VotingBeanLocal;
import fi.insomnia.bortal.model.CompoEntry;
import fi.insomnia.bortal.model.CompoEntryFile;
@ManagedBean
@Named
@RequestScoped
public class VotingCompoAddEntryView {
......
......@@ -4,20 +4,15 @@ import java.util.Calendar;
import java.util.Date;
import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.enterprise.context.RequestScoped;
import javax.faces.bean.ManagedBean;
import javax.inject.Named;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.Length;
import fi.insomnia.bortal.beans.VotingBeanLocal;
import fi.insomnia.bortal.model.Compo;
import fi.insomnia.bortal.web.cdiview.GenericCDIView;
@ManagedBean
@Named
@RequestScoped
public class VotingCreateView extends GenericCDIView {
......@@ -30,10 +25,10 @@ public class VotingCreateView extends GenericCDIView {
@EJB
private VotingBeanLocal votbean;
@Size(min=4, message="{voting.create.nameError}")
@Size(min = 4, message = "{voting.create.nameError}")
private String name;
private String description;
@Min(value=1, message="{voting.create.participantsError}")
@Min(value = 1, message = "{voting.create.participantsError}")
private Integer maxParticipants;
private Date compoStart;
......@@ -46,59 +41,76 @@ public class VotingCreateView extends GenericCDIView {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getMaxParticipants() {
return maxParticipants;
}
public void setMaxParticipants(Integer maxParticipants) {
this.maxParticipants = maxParticipants;
}
public Date getCompoStart() {
return compoStart;
}
public void setCompoStart(Date compoStart) {
this.compoStart = compoStart;
}
public Date getCompoEnd() {
return compoEnd;
}
public void setCompoEnd(Date compoEnd) {
this.compoEnd = compoEnd;
}
public Date getVoteStart() {
return voteStart;
}
public void setVoteStart(Date voteStart) {
this.voteStart = voteStart;
}
public Date getVoteEnd() {
return voteEnd;
}
public void setVoteEnd(Date voteEnd) {
this.voteEnd = voteEnd;
}
public Date getSubmitStart() {
return submitStart;
}
public void setSubmitStart(Date submitStart) {
this.submitStart = submitStart;
}
public Date getSubmitEnd() {
return submitEnd;
}
public void setSubmitEnd(Date submitEnd) {
this.submitEnd = submitEnd;
}
public String send(){
public String send() {
Compo co = new Compo();
co.setName(name);
co.setDescription(description);
......@@ -131,5 +143,4 @@ public class VotingCreateView extends GenericCDIView {
return "success";
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!