Commit 3c4eebfa by Tuomas Riihimäki

Merge branch 'multispam' into 'master'

Multispam

multibuggagespammer

See merge request !227
2 parents 6a4d2c23 23c49195
......@@ -32,4 +32,6 @@ public interface TicketBeanLocal {
List<GroupMembership> findMembershipPrintlistForUser(EventUser user);
void sendTicketEmail(EventUser user, String url);
void sendTicketEmailToAll(String url);
}
......@@ -44,6 +44,7 @@ import javax.ejb.Stateless;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.security.acl.Group;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Calendar;
......@@ -117,6 +118,11 @@ public class TicketBean implements TicketBeanLocal {
}
@Override
public void sendTicketEmail(EventUser user , String url) {
......@@ -142,6 +148,38 @@ public class TicketBean implements TicketBeanLocal {
}
/**
* Quick and dirty, you can refactor this
* @param url
*/
@Override
public void sendTicketEmailToAll(String url) {
List<GroupMembership> ships = gmemfacade.findGroupmemberships();
ArrayList<EventUser> usersWithTickets = new ArrayList<>();
for(GroupMembership ship : ships) {
if(ship.getEnteredEvent() == null && ship.getPlaceReservation() != null) {
if(ship.getUser() != null) {
if(!usersWithTickets.contains(ship.getUser())) {
usersWithTickets.add(ship.getUser());
}
} else {
if(!usersWithTickets.contains(ship.getPlaceGroup().getCreator())) {
usersWithTickets.add(ship.getPlaceGroup().getCreator());
}
}
}
}
for(EventUser user : usersWithTickets) {
this.sendTicketEmail(user, url);
}
}
private byte[] getTicketPdf(EventUser user, String codetext) {
PDF pdf = null;
......
......@@ -1110,6 +1110,8 @@ public class UserBean implements UserBeanLocal {
return eventUserFacade.findByLogin(username);
}
@Override
@RolesAllowed(EventPermission.S_MANAGE_EVENT)
public EventUser getUserByAuthcode(String authcode) {
......
......@@ -210,4 +210,20 @@ public class GroupMembershipFacade extends IntegerPkGenericFacade<GroupMembershi
}
public List<GroupMembership> findGroupmemberships() {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<GroupMembership> cq = cb.createQuery(GroupMembership.class);
Root<GroupMembership> root = cq.from(GroupMembership.class);
Path<PlaceGroup> pg = root.get(GroupMembership_.placeGroup);
cq.where(cb.equal(pg.get(PlaceGroup_.event), eventbean.getCurrentEvent()));
return getEm().createQuery(cq).getResultList();
}
}
......@@ -30,6 +30,7 @@ import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import javax.persistence.metamodel.SingularAttribute;
import fi.codecrew.moya.model.EventUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -217,6 +218,9 @@ public class UserFacade extends IntegerPkGenericFacade<User> {
return sort;
}
// public SearchResult<User> searchEventUsers(SearchQuery query)
// {
// ArrayList<FacadeCallback<EventUser>> callbacks = new
......
......@@ -9,6 +9,7 @@
#{sessionHandler.flushCache()}
<h:form>
<h:commandButton action="#{testView.sendMultibuggageSpam}" value="MULTIUSERSPAM" onclick="return confirm('SPAMSPAMSPAMS?!');" />
<h:commandButton action="#{testView.resetMenu()}" value="Reset to newui menu" onclick="return confirm('THIS WILL RESET ALL MODIFICATIONS TO DEFAULT MENU!!\n Are you really sure?!');" />
<h:commandButton action="#{testView.resetOldMenu()}" value="Reset to old menu" onclick="return confirm('THIS WILL RESET ALL MODIFICATIONS TO DEFAULT MENU!!\n Are you really sure?!');" />
</h:form>
......
gitla<?xml version='1.0' encoding='UTF-8' ?>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui">
......
......@@ -23,27 +23,19 @@
package fi.codecrew.moya.web;
import java.util.Calendar;
import java.util.List;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
import fi.codecrew.moya.beans.*;
import fi.codecrew.moya.model.*;
import fi.codecrew.moya.web.cdiview.eticket.EticketView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.CardTemplateBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.MenuBeanLocal;
import fi.codecrew.moya.beans.PollBeanLocal;
import fi.codecrew.moya.beans.RoleBeanLocal;
import fi.codecrew.moya.beans.TestDataBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.beans.UserUtilBeanLocal;
import fi.codecrew.moya.model.LanEvent;
import fi.codecrew.moya.model.Poll;
import fi.codecrew.moya.model.PollQuestion;
import fi.codecrew.moya.model.PossibleAnswer;
/**
*
* @author tuukka
......@@ -57,6 +49,9 @@ public class TestDataView {
@EJB
private TestDataBeanLocal testdatabean;
@EJB
TicketBeanLocal ticketBean;
@EJB
private UserBeanLocal userbean;
@EJB
......@@ -72,6 +67,9 @@ public class TestDataView {
@EJB
private MenuBeanLocal menubean;
@Inject
private EticketView eticketView;
public void convertUsernames() {
utilbean.convertUsernames();
......@@ -87,6 +85,10 @@ public class TestDataView {
return null;
}
public void sendMultibuggageSpam() {
ticketBean.sendTicketEmailToAll(eticketView.getTicketUrl());
}
public String makeTestData() {
testdatabean.createAdmin();
return null;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!