Commit a515e62b by Tuomas Riihimäki

Accounteventtiin description

Productiin ProductFlag enum
.
1 parent efe90430
Showing with 187 additions and 2904 deletions
......@@ -86,4 +86,9 @@ public class OrgRoleBean implements OrgRoleBeanLocal {
return returnList;
}
@Override
public void create(OrgRole orgRole) {
orgRoleFacade.create(orgRole);
}
}
......@@ -61,6 +61,10 @@ public class VerkkomaksutFiBean implements VerkkomaksutFiBeanLocal {
private EventBean lanbean;
@EJB
private BillBean billBean;
@EJB
private LoggingBeanLocal logbean;
@EJB
private PermissionBeanLocal permbean;
@Override
public boolean isSvmEnabled()
......@@ -73,6 +77,7 @@ public class VerkkomaksutFiBean implements VerkkomaksutFiBeanLocal {
|| merchantPassword == null || merchantPassword.isEmpty());
}
@Override
public boolean validateReturn(String orderNumber, String timestamp, String paid, String method, String authcode)
{
String merchantPassword = lanbean.getPropertyString(LanEventPropertyKey.VERKKOMAKSU_MERCHANT_PASSWORD);
......@@ -92,7 +97,16 @@ public class VerkkomaksutFiBean implements VerkkomaksutFiBeanLocal {
if (authcode.toUpperCase().equals(calculatedHash.toUpperCase())) {
ret = true;
Bill bill = billBean.findById(Integer.parseInt(orderNumber));
billBean.markPaid(bill, Calendar.getInstance());
if (bill != null)
{
billBean.markPaid(bill, Calendar.getInstance());
logbean.logMessage(SecurityLogType.verkkomaksu, permbean.getCurrentUser(), "Validated order number ", orderNumber, " bill ", bill == null ? "null" : bill.toString(), " with authcode: ", authcode);
} else {
logbean.logMessage(SecurityLogType.verkkomaksu, permbean.getCurrentUser(), "Unable to find bill for order number ", orderNumber);
}
} else {
logbean.logMessage(SecurityLogType.verkkomaksu, permbean.getCurrentUser(), "Unable to validate order number: ", orderNumber, " calculated checksum: ", calculatedHash, " authcode ", authcode, " paid ", paid, " method ", method);
}
} catch (NoSuchAlgorithmException e) {
logger.warn("THIS SHOULD NEVER HAPPEN! (md5 hashfunction should always exist)", e);
......@@ -104,6 +118,7 @@ public class VerkkomaksutFiBean implements VerkkomaksutFiBeanLocal {
@RolesAllowed(BillPermission.S_CREATE_VERKKOMAKSU)
public VerkkomaksutReturnEntry getSvmToken(Bill bill)
{
LanEventProperty expire = lanbean.getProperty(LanEventPropertyKey.VERKKOMAKSU_KEY_EXPIRE);
String merchantid = lanbean.getPropertyString(LanEventPropertyKey.VERKKOMAKSU_MERCHANT_ID);
String merchantPassword = lanbean.getPropertyString(LanEventPropertyKey.VERKKOMAKSU_MERCHANT_PASSWORD);
......@@ -121,7 +136,14 @@ public class VerkkomaksutFiBean implements VerkkomaksutFiBeanLocal {
message.setPrice(bill.totalPrice());
// message.setDescription();
VerkkomaksutReturnEntry ret = sendMessage(message, "asd", "foo");
VerkkomaksutReturnEntry ret = sendMessage(message, merchantid, merchantPassword);
if (ret.isError()) {
logbean.logMessage(SecurityLogType.verkkomaksu, permbean.getCurrentUser(), "User trieed to create new token for bill: ", bill.toString(), " but received error: ", ret.getErrorCode(), " message ", ret.getErrorMessage());
} else {
logbean.logMessage(SecurityLogType.verkkomaksu, permbean.getCurrentUser(), "User crated new token for bill: ", bill.toString(), " Got: ", ret.getOrderNumber(), " token ", ret.getToken());
}
return ret;
}
......
......@@ -16,4 +16,6 @@ public interface OrgRoleBeanLocal {
List<OrgRole> getPossibleParents(OrgRole orgRole);
void create(OrgRole orgRole);
}
package fi.insomnia.bortal.beans;
public enum SecurityLogType {
permissionDenied,
unknownException,
genericMessage,
accountEvent
permissionDenied,
unknownException,
genericMessage,
accountEvent,
verkkomaksu,
}
......@@ -12,4 +12,6 @@ public interface VerkkomaksutFiBeanLocal {
VerkkomaksutReturnEntry getSvmToken(Bill bill);
boolean validateReturn(String orderNumber, String timestamp, String paid, String method, String authcode);
}
......@@ -2,6 +2,11 @@ package fi.insomnia.bortal.util;
public class VerkkomaksutReturnEntry {
public boolean isError()
{
return errorCode != null;
}
// Error stuff
private String errorCode;
private String errorMessage;
......
......@@ -9,6 +9,7 @@ import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
......@@ -104,6 +105,9 @@ public class AccountEvent extends GenericEntity {
@OneToOne(mappedBy = "accountEvent")
private Bill bill;
@Lob
private String description;
public BigDecimal getTotal() {
return getQuantity().multiply(getUnitPrice());
}
......@@ -207,4 +211,12 @@ public class AccountEvent extends GenericEntity {
return cash;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
......@@ -7,7 +7,7 @@ import javax.persistence.metamodel.ListAttribute;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-05-13T00:35:52.902+0300")
@Generated(value="Dali", date="2012-08-18T16:24:21.254+0300")
@StaticMetamodel(AccountEvent.class)
public class AccountEvent_ extends GenericEntity_ {
public static volatile SingularAttribute<AccountEvent, Boolean> cash;
......@@ -21,4 +21,5 @@ public class AccountEvent_ extends GenericEntity_ {
public static volatile SingularAttribute<AccountEvent, EventUser> seller;
public static volatile ListAttribute<AccountEvent, DiscountInstance> discountInstances;
public static volatile SingularAttribute<AccountEvent, Bill> bill;
public static volatile SingularAttribute<AccountEvent, String> description;
}
......@@ -19,6 +19,18 @@ public enum LanEventPropertyKey {
private final String defaultvalue;
private final Type type;
public boolean isText() {
return Type.TEXT.equals(type);
}
public boolean isDate() {
return Type.DATE.equals(type);
}
public boolean isData() {
return Type.DATA.equals(type);
}
private LanEventPropertyKey(Type t, String def)
{
this.type = t;
......
......@@ -8,10 +8,14 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
......@@ -22,6 +26,7 @@ import javax.persistence.UniqueConstraint;
import org.eclipse.persistence.annotations.OptimisticLocking;
import org.eclipse.persistence.annotations.OptimisticLockingType;
import org.eclipse.persistence.annotations.PrivateOwned;
/**
*
......@@ -54,6 +59,11 @@ public class Product extends GenericEntity {
@Column(name = "prepaid")
private boolean prepaid = false;
@Enumerated(EnumType.STRING)
@PrivateOwned
@ElementCollection()
private Set<ProductFlag> productFlags;
@Column(name = "instant_shop")
private boolean prepaidInstant = false;
......@@ -265,4 +275,12 @@ public class Product extends GenericEntity {
this.color = color;
}
public Set<ProductFlag> getProductFlags() {
return productFlags;
}
public void setProductFlags(Set<ProductFlag> productFlags) {
this.productFlags = productFlags;
}
}
package fi.insomnia.bortal.model;
public enum ProductFlag {
FOODWAVE_ITEM
}
......@@ -3,10 +3,11 @@ package fi.insomnia.bortal.model;
import java.math.BigDecimal;
import javax.annotation.Generated;
import javax.persistence.metamodel.ListAttribute;
import javax.persistence.metamodel.SetAttribute;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
@Generated(value="Dali", date="2012-05-12T14:43:39.112+0300")
@Generated(value="Dali", date="2012-08-18T16:43:37.124+0300")
@StaticMetamodel(Product.class)
public class Product_ extends GenericEntity_ {
public static volatile SingularAttribute<Product, LanEvent> event;
......@@ -24,4 +25,5 @@ public class Product_ extends GenericEntity_ {
public static volatile SingularAttribute<Product, BigDecimal> vat;
public static volatile SingularAttribute<Product, String> unitName;
public static volatile ListAttribute<Product, FoodWaveTemplate> foodWaveTemplates;
public static volatile SetAttribute<Product, ProductFlag> productFlags;
}
......@@ -2,7 +2,7 @@
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:users="http://java.sun.com/jsf/composite/tools/user" xmlns:c="http://java.sun.com/jsp/jstl/core">
xmlns:p="http://primefaces.org/ui" xmlns:users="http://java.sun.com/jsf/composite/tools/user" xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
......@@ -39,6 +39,8 @@
<h:commandButton id="commitbtn" action="#{eventorgView.saveEvent()}" value="#{i18n['event.save']}" />
</h:panelGrid>
</h:form>
<h:form>
<h:inputText value="#{eventorgView.newdomain}" />
<h:commandButton action="#{eventorgView.addDomain()}" value="#{i18n['eventdomain.add']}" />
......@@ -53,7 +55,57 @@
<h:commandButton action="#{eventorgView.removeDomain()}" value="#{i18n['eventdomain.remove']}" />
</h:column>
</h:dataTable>
</h:form>
<h2>Properties</h2>
<h:dataTable var="prop" value="#{eventorgView.event.properties}">
<h:column>
<f:facet name="header">#{i18n['lanEventProperty.key']}</f:facet>
<h:outputText value="#{prop.key}" />
</h:column>
<h:column>
<f:facet name="header">#{i18n['lanEventProperty.value']}</f:facet>
<h:outputText rendered="#{prop.key.text}" value="#{prop.textvalue}"/>
<h:outputText rendered="#{prop.key.date}" value="#{prop.dateValue}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
<h:outputText rendered="#{prop.key.data}" value="#{i18n['lanEventProperty.valueIsRawdataWarning']}"/>
</h:column>
</h:dataTable>
<h:form >
<h:selectOneMenu id="propval" value="#{eventPropertyView.createKey}">
<f:selectItems value="#{eventPropertyView.availablePropertyKeys}" />
</h:selectOneMenu>
<h:commandButton action="#{eventPropertyView.createPropertyKey}" value="#{i18n['lanEventProperty.createProperty']}" >
<!-- <f:ajax render="@all" execute="@form" /> -->
</h:commandButton>
<h:message for="propval" />
</h:form>
<h:form rendered="#{!empty eventPropertyView.property}">
<h:panelGrid columns="3">
<h:outputLabel for="key" value="#{i18n['lanEventProperty.key']}"/>
<h:outputText value="#{eventPropertyView.property.key}" id="key"/>
<h:message for="key"/>
<h:outputLabel for="defaultval" value="#{i18n['lanEventProperty.defaultValue']}" />
<h:outputText id="defaultval" value="#{eventPropertyView.property.key.defaultvalue}"/>
<h:message for="defaultval" />
<h:outputLabel rendered="#{eventPropertyView.property.key.text}" for="textval" value="#{i18n['lanEventProperty.textValue']}" />
<h:inputText rendered="#{eventPropertyView.property.key.text}" id="textval" value="#{eventPropertyView.property.textvalue}" />
<h:message rendered="#{eventPropertyView.property.key.text}" for="textval" />
<h:outputLabel rendered="#{eventPropertyView.property.key.date}" for="textval" value="#{i18n['lanEventProperty.textValue']}" />
<p:calendar rendered="#{eventPropertyView.property.key.date}" value="#{eventPropertyView.property.datevalue}" pattern="#{sessionHandler.datetimeFormat}" />
<h:message rendered="#{eventPropertyView.property.key.date}" for="textval" />
</h:panelGrid>
</h:form>
......
......@@ -11,14 +11,19 @@
<ui:define name="title">
<h1>#{i18n['page.product.validateBillProducts.header']}</h1>
</ui:define>
<ui:define name="content">
<bill:showBill bill="#{billReviewView.bill}" />
<div id="svm-payment">Foobar</div>
<script type="text/javascript" src="//payment.verkkomaksut.fi/js/sv-widget.min.js"></script>
<script type="text/javascript">
SV.widget.initWithToken('svm-payment', '0123456789abcdefg');
</script>
<ui:fragment rendered="#{billReviewView.verkkomaksuAvailable}">
<div id="svm-payment">
<a href="#{billReviewView.verkkomaksuToken.url}"> </a>
</div>
<script type="text/javascript" src="//payment.verkkomaksut.fi/js/sv-widget.min.js"></script>
<script type="text/javascript">
SV.widget.initWithToken('svm-payment',
'#{billReviewBean.verkkomaksuToken.token}');
</script>
</ui:fragment>
</ui:define>
</ui:composition>
......
package fi.insomnia.bortal.view;
import java.util.Calendar;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.BillBeanLocal;
import fi.insomnia.bortal.beans.PermissionBeanLocal;
import fi.insomnia.bortal.beans.UtilBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.BillLine;
import fi.insomnia.bortal.util.MailMessage;
import fi.insomnia.bortal.utilities.I18n;
@ManagedBean(name = "billManageView")
@SessionScoped
public class BillManageView extends GenericView {
private static final Logger logger = LoggerFactory.getLogger(BillManageView.class);
@EJB
private BillBeanLocal billbean;
private Bill bill;
private ListDataModel<Bill> bills;
@EJB
private PermissionBeanLocal permbean;
@EJB
private UtilBeanLocal utilbean;
private ListDataModel<BillLine> billines;
public ListDataModel<Bill> getBills() {
bills = new ListDataModel<Bill>(billbean.findAll());
return bills;
}
public String saveBilline() {
if (billines != null) {
logger.debug("Saving bill line {}", billines.getRowData());
}
return null;
}
public ListDataModel<BillLine> getBillLines() {
billines = new ListDataModel<BillLine>(bill.getBillLines());
return billines;
}
public String edit() {
setBill(bills.getRowData());
return "edit";
}
public void setBill(Bill bill) {
this.bill = bill;
}
public Bill getBill() {
return bill;
}
public String markPaid() {
bill = bills.getRowData();
billbean.markPaid(bill, Calendar.getInstance());
MailMessage msg = new MailMessage();
msg.setSubject(I18n.get("bill.billMarkedPaidMail.subject"));
msg.setMessage(I18n.get("bill.billMarkedPaidMail.message", (bill.getBillNumber() == null) ? "----" : bill.getBillNumber().toString()));
msg.setTo(bill.getUser());
utilbean.sendMail(msg);
return "";
}
public boolean isManage() {
return permbean.hasPermission(Permission.BILL, RolePermission.WRITE);
}
}
package fi.insomnia.bortal.view;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.BillBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.bortal.views.BillSummary;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Bill;
@ManagedBean(name = "billView_old")
@SessionScoped
public class BillView {
private static final Logger logger = LoggerFactory.getLogger(BillView.class);
@EJB
private UserBeanLocal userbean;
@EJB
private BillBeanLocal billbean;
@EJB
private UserBeanLocal userBean;
private ListDataModel<Bill> billList;
public ListDataModel<Bill> getBills() {
userbean.fatalNotLoggedIn();
List<Bill> bills = userbean.getCurrentUser().getBills();
// logger.debug("found {} bills for user {}", bills.size(),
// userbean.getCurrentUser().getLogin());
billList = new ListDataModel<Bill>(bills);
return billList;
}
public DataModel<BillSummary> getBillLineSummary() {
userBean.fatalPermission(Permission.BILL, RolePermission.READ, "User tried to get the bill summary page");
return new ListDataModel<BillSummary>(new ArrayList<BillSummary>(billbean.getBillLineSummary()));
}
public boolean isManage() {
return false;
}
}
package fi.insomnia.bortal.view;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import fi.insomnia.bortal.beans.CardTemplateBeanLocal;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.model.CardTemplate;
import fi.insomnia.bortal.utilities.I18n;
@ManagedBean(name = "cardView")
@SessionScoped
public class CardView {
private ListDataModel<CardTemplate> cardTemplates;
private CardTemplate card;
@EJB
private CardTemplateBeanLocal cfbean;
@EJB
private EventBeanLocal eventBean;
public void initCardTemplates() {
cardTemplates = new ListDataModel<CardTemplate>(cfbean.findAll());
}
public ListDataModel<CardTemplate> getCardTemplates() {
return cardTemplates;
}
public void initCardCreate() {
card = new CardTemplate(eventBean.getCurrentEvent());
}
public void setCard(CardTemplate card) {
this.card = card;
}
public CardTemplate getCard() {
return card;
}
public String createTemplate() {
cfbean.create(card);
return "/user/listCardTemplates";
}
public List<CardTemplate> getTemplatesWithNull() {
ArrayList<CardTemplate> retlist = new ArrayList<CardTemplate>();
CardTemplate dummytempl = new CardTemplate();
dummytempl.setName(I18n.get("cardTemplate.emptyCardTemplate"));
retlist.add(dummytempl);
retlist.addAll(cfbean.findAll());
return retlist;
}
}
package fi.insomnia.bortal.view;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UISelectItems;
import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.EventOrganiserBeanLocal;
import fi.insomnia.bortal.beans.PermissionDeniedException;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.SecurityBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.model.EventOrganiser;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.web.converter.RoleConverter;
@ManagedBean(name = "eventorgView")
@SessionScoped
public class EventOrganiserView {
private static final Logger logger = LoggerFactory.getLogger(EventOrganiserView.class);
@EJB
private UserBeanLocal userbean;
@EJB
private EventOrganiserBeanLocal eventorgbean;
@EJB
private RoleBeanLocal rolebean;
@EJB
private EventBeanLocal eventbean;
private ListDataModel<EventOrganiser> organisers;
private ListDataModel<LanEvent> orgsEvents;
private EventOrganiser eventorg;
private String createorgname;
private LanEvent event;
private String eventname;
public DataModel<EventOrganiser> getOrganisations() {
userbean.fatalNotLoggedIn();
User usr = userbean.getCurrentUser();
List<EventOrganiser> list = null;
if (usr.isSuperadmin()) {
list = eventorgbean.getEventOrganisers();
} else {
list = usr.getEventOrganiser();
}
organisers = new ListDataModel<EventOrganiser>(list);
return organisers;
}
public DataModel<LanEvent> getOrgsEvents() {
orgsEvents = new ListDataModel<LanEvent>(eventorg.getEvents());
return orgsEvents;
}
public String editEvent() {
setEvent(orgsEvents.getRowData());
return "editEvent";
}
public String createEvent()
{
event = new LanEvent();
event.setOrganiser(eventorg);
event.setName(eventname);
eventbean.create(event);
eventname = "";
return "editEvent";
}
public String edit() {
eventorg = null;
EventOrganiser row = organisers.getRowData();
eventorgbean.fatalPermission(row);
eventorg = row;
return "edit";
}
public String save() {
eventorgbean.fatalPermission(eventorg);
eventorgbean.save(eventorg);
return "edit";
}
public String saveEvent()
{
logger.debug("Saving event. role {}", event.getDefaultRole());
event= eventbean.mergeChanges(event);
return "editEvent";
}
public String create() {
eventorg = eventorgbean.create(createorgname);
return "edit";
}
public void setEventorg(EventOrganiser eventorg) {
this.eventorg = eventorg;
}
public EventOrganiser getEventorg() {
return eventorg;
}
public void setCreateorgname(String createorgname) {
this.createorgname = createorgname;
}
public String getCreateorgname() {
return createorgname;
}
public void setEvent(LanEvent event) {
this.event = event;
}
public LanEvent getEvent() {
return event;
}
public List<Role> getEventsRolelist() {
if (event.getId() == null || event.getId() == 0) {
return new ArrayList<Role>();
}
return rolebean.listRoles(event);
}
public void eventDefaultRoleChangelistener(ValueChangeEvent ev) {
logger.debug("Default role changed. Type {}, vaule {}", ev.getNewValue().getClass(), ev.getNewValue());
int val = Integer.parseInt(ev.getNewValue().toString());
Role nrole = null;
if (val > 0) {
nrole = rolebean.find(val, event);
}
event.setDefaultRole(nrole);
}
public void setEventname(String eventname) {
this.eventname = eventname;
}
public String getEventname() {
return eventname;
}
public RoleConverter getRoleconverter()
{
return new RoleConverter(rolebean, event);
}
}
package fi.insomnia.bortal.view;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.EventMapBeanLocal;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.Place;
@ManagedBean(name = "eventView")
@SessionScoped
public class EventView {
@EJB
private EventBeanLocal eventbean;
@EJB
private EventMapBeanLocal eventmapbean;
private ListDataModel<EventMap> eventmaps;
private ListDataModel<Place> mapPlaces;
private EventMap eventmap;
private String mapname;
private Place place;
public ListDataModel<EventMap> getEventmaps() {
eventmaps = new ListDataModel<EventMap>(eventbean.getCurrentEvent().getEventMaps());
return eventmaps;
}
public String editMap() {
setEventmap(eventmaps.getRowData());
return "editMap";
}
public EventMap getEventMap() {
return getEventmap();
}
public String saveMap() {
setEventmap(eventmapbean.saveMap(getEventmap()));
return "editMap";
}
public String createMap() {
setEventmap(eventmapbean.create( getMapname()));
return "editMap";
}
public ListDataModel<Place> getMapPlaces() {
mapPlaces = new ListDataModel<Place>(eventmap.getPlaces());
return mapPlaces;
}
public String editPlace()
{
place = mapPlaces.getRowData();
return "editPlace";
}
public void setMapname(String mapname) {
this.mapname = mapname;
}
public String getMapname() {
return mapname;
}
public void setEventmap(EventMap eventmap) {
this.eventmap = eventmap;
}
public EventMap getEventmap() {
return eventmap;
}
}
\ No newline at end of file
package fi.insomnia.bortal.view;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.FoodWaveBeanLocal;
import fi.insomnia.bortal.model.FoodWaveTemplate;
@ManagedBean(name = "foodwaveView")
@SessionScoped
public class FoodwaveView extends GenericView {
@EJB
private EventBeanLocal eventbean;
private FoodWaveTemplate waveTemplate;
@EJB
private FoodWaveBeanLocal wavebean;
public void initEmptyTemplate() {
waveTemplate = new FoodWaveTemplate(eventbean.getCurrentEvent());
}
public String createTemplate() {
wavebean.createTemplate(waveTemplate);
return null;
}
public String saveTemplate() {
waveTemplate = wavebean.saveTemplate(waveTemplate);
return null;
}
public void setWaveTemplate(FoodWaveTemplate waveTemplate) {
this.waveTemplate = waveTemplate;
}
public FoodWaveTemplate getWaveTemplate() {
return waveTemplate;
}
}
package fi.insomnia.bortal.view;
import java.util.Collections;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.CardTemplateBeanLocal;
import fi.insomnia.bortal.beans.GameBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.News;
import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.view.helpers.RfidEvent;
@ManagedBean(name = "gameView")
@SessionScoped
public class GameView extends GenericView {
private static final Logger logger = LoggerFactory.getLogger(GameView.class);
@EJB
private GameBeanLocal gamebean;
@EJB
private CardTemplateBeanLocal cdbean;
private ListDataModel<PrintedCard> inforow;
@EJB
private UserBeanLocal userbean;
@ManagedProperty(value = "#{readerView}")
private ReaderView readerView;
public String editReaderEvent() {
readerView.setRfidevent(new RfidEvent("unknown", "unknown", inforow.getRowData().getGameCards().getRowData()));
return "/shop/editGame";
}
public Integer getMyPoints() {
userbean.fatalNotLoggedIn();
PrintedCard currcard = null;
for (PrintedCard pc : userbean.getCurrentUser().getPrintedCards()) {
if (!pc.getEnabled()) {
continue;
}
if (currcard == null || currcard.getTemplate().getPower() < pc.getTemplate().getPower()) {
currcard = pc;
}
}
return currcard.getGamepoints();
}
public void initGamepoints() {
userbean.fatalPermission(Permission.GAME, RolePermission.EXECUTE, " need Game:X to init userlist at gameview");
List<PrintedCard> list = cdbean.findActiveCards();
Collections.sort(list, PrintedCard.GAMEPOINT_COMPARATOR);
setInforow(new ListDataModel<PrintedCard>(list));
}
public void setInforow(ListDataModel<PrintedCard> inforow) {
this.inforow = inforow;
}
public ListDataModel<PrintedCard> getInforow() {
return inforow;
}
public List<News> getGameNews() {
return gamebean.getNews();
}
public void setReaderView(ReaderView readerView) {
this.readerView = readerView;
}
public ReaderView getReaderView() {
return readerView;
}
}
package fi.insomnia.bortal.view;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import fi.insomnia.bortal.utilities.I18n;
public abstract class GenericView {
protected void addFaceMessage(String string, Object ... params) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get(string, params)));
}
}
package fi.insomnia.bortal.view;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.EventMapBeanLocal;
import fi.insomnia.bortal.beans.PermissionDeniedException;
import fi.insomnia.bortal.beans.PlaceBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.Product;
@ManagedBean(name = "mapManageView")
@SessionScoped
public class MapManageView extends GenericView {
private static final Logger logger = LoggerFactory.getLogger(MapManageView.class);
@EJB
private UserBeanLocal userBean;
@EJB
private EventBeanLocal eventBean;
@EJB
private EventMapBeanLocal eventmapBean;
@EJB
private PlaceBeanLocal placebean;
private ListDataModel<EventMap> eventmaps;
private EventMap map;
private String mapname;
private String buyableLike;
private boolean tablesHorizontal = false;
private boolean oneRowTable = false;
private int placesInRow = 1;
private int width;
private int height;
private int startX;
private int startY;
private int tableCount = 1;
private int tableXdiff;
private int tableYdiff;
private Product mapproduct;
private String namebase;
public ListDataModel<EventMap> getMaps() {
eventmaps = new ListDataModel<EventMap>(eventBean.getCurrentEvent().getEventMaps());
return eventmaps;
}
public String lockBuyable() {
int count = placebean.setBuyable(map, buyableLike, false);
this.addFaceMessage("mapManage.lockedPlaces", count);
return null;
}
public String releaseBuyable() {
int count = placebean.setBuyable(map, buyableLike, true);
this.addFaceMessage("mapManage.releasedPlaces", count);
return null;
}
public String editMap() {
setMap(eventmaps.getRowData());
return "edit";
}
public String saveMap() {
eventmapBean.saveMap(getMap());
return "edit";
}
public String createMap() {
EventMap map;
try {
map = eventmapBean.create(getMapname());
setMap(map);
} catch (PermissionDeniedException e) {
logger.info("Permission denied", e);
}
return "edit";
}
public void generatePlaces() {
String[] tablenames = getNamebase().split(";");
List<Place> mapplaces = map.getPlaces();
logger.debug("places in map before {}", mapplaces.size());
if (mapplaces == null || mapplaces.isEmpty()) {
mapplaces = new ArrayList<Place>();
map.setPlaces(mapplaces);
}
for (int tableI = 0; tableI < tableCount; ++tableI) {
int tableXStart = tableI * tableXdiff;
int tableYStart = tableI * tableYdiff;
int rows = isOneRowTable() ? 1 : 2;
for (int rowI = 0; rowI < rows; ++rowI) {
int rowXStart = tableXStart + (tablesHorizontal ? 0 : width * rowI);
int rowYStart = tableYStart + (tablesHorizontal ? height * rowI : 0);
logger.debug("row start {} {}", rowXStart, rowYStart);
for (int placeI = 1; placeI <= placesInRow; ++placeI) {
Place place = new Place(map);
place.setHeight(Math.abs(height));
place.setWidth(Math.abs(width));
int xpos = startX + rowXStart + (tablesHorizontal ? placeI * width : 0);
int ypos = startY + rowYStart + (tablesHorizontal ? 0 : placeI * height);
logger.debug("Creating map in {} {}", xpos, ypos);
place.setMapX(xpos);
place.setMapY(ypos);
place.setProduct(mapproduct);
place.setName(tablenames[tableI] + (placeI + placesInRow * rowI));
mapplaces.add(place);
}
}
}
logger.debug("places in map after {}", mapplaces.size());
map = eventmapBean.saveMap(map);
logger.debug("places in map merge {}", map.getPlaces().size());
}
public void setMapname(String mapname) {
this.mapname = mapname;
}
public String getMapname() {
return mapname;
}
public void setMap(EventMap map) {
this.map = map;
}
public EventMap getMap() {
return map;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getStartX() {
return startX;
}
public void setStartX(int startX) {
this.startX = startX;
}
public int getStartY() {
return startY;
}
public void setStartY(int startY) {
this.startY = startY;
}
public Product getMapproduct() {
return mapproduct;
}
public void setMapproduct(Product mapproduct) {
this.mapproduct = mapproduct;
}
public String getNamebase() {
return namebase;
}
public int getTableCount() {
return tableCount;
}
public void setTableCount(int tableCount) {
this.tableCount = tableCount;
}
public int getTableXdiff() {
return tableXdiff;
}
public void setTableXdiff(int tableXdiff) {
this.tableXdiff = tableXdiff;
}
public int getTableYdiff() {
return tableYdiff;
}
public void setTableYdiff(int tableYdiff) {
this.tableYdiff = tableYdiff;
}
public void setTablesHorizontal(boolean tablesHorizontal) {
this.tablesHorizontal = tablesHorizontal;
}
public boolean isTablesHorizontal() {
return tablesHorizontal;
}
public void setPlacesInRow(int placesInRow) {
this.placesInRow = placesInRow;
}
public int getPlacesInRow() {
return placesInRow;
}
public void setOneRowTable(boolean oneRowTable) {
this.oneRowTable = oneRowTable;
}
public boolean isOneRowTable() {
return oneRowTable;
}
public void setNamebase(String namebase) {
this.namebase = namebase;
}
public void setBuyableLike(String buyableLike) {
this.buyableLike = buyableLike;
}
public String getBuyableLike() {
return buyableLike;
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.view;
import java.math.BigDecimal;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.PermissionBeanLocal;
import fi.insomnia.bortal.beans.PlaceBeanLocal;
import fi.insomnia.bortal.beans.PlaceMapBeanLocal;
import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.User;
/**
*
* @author tuukka
*/
@ManagedBean(name = "old_mapView")
@SessionScoped
public class MapView extends GenericView {
private final Logger logger = LoggerFactory.getLogger(MapView.class);
@EJB
private PlaceMapBeanLocal placeMapBean;
@EJB
private PlaceBeanLocal placeBean;
@EJB
private PermissionBeanLocal permbean;
@EJB
private EventBeanLocal eventBean;
private EventMap activeMap;
private Place clickedplace;
private User user;
// private Place selectedPlace = null;
/** Creates a new instance of MapView */
public MapView() {
}
public void initSelf() {
user = permbean.getCurrentUser();
}
public boolean canUserBuy() {
if (user == null) {
return false;
}
return user.getAccountBalance().compareTo(BigDecimal.ZERO) > 0;
}
public String buySelectedPlaces() {
try {
placeBean.buySelectedPlaces(getActiveMap());
} catch (BortalCatchableException e) {
addFaceMessage("mapView.errorWhileBuyingPlaces");
placeBean.releaseUsersPlaces();
}
return "";
}
public BigDecimal getReservationPrice() {
return placeBean.totalReservationPrice(activeMap, null);
}
public void placeSelectActionListener(ActionEvent e) {
User user = permbean.getCurrentUser();
FacesContext context = FacesContext.getCurrentInstance();
String clientId = e.getComponent().getClientId(context);
Map<String, String> requestParams = context.getExternalContext().getRequestParameterMap();
int x = new Integer(requestParams.get(clientId + ".x")).intValue();
int y = new Integer(requestParams.get(clientId + ".y")).intValue();
logger.debug("Clicked position {} {}", x, y);
setClickedplace(placeBean.findPlace(getActiveMap(), x, y));
logger.debug("Clicked place: {}", getClickedplace());
if (getClickedplace() != null) {
if (getClickedplace().isReservedFor(user)) {
logger.debug("Place {} was reserved for user. Removing reservation!", clickedplace);
if (!placeBean.releasePlace(getClickedplace(), user)) {
this.addFaceMessage("mapView.errorWhenReleasingPlace");
}
} else if (getClickedplace().isBuyable() && !getClickedplace().isTaken()) {
BigDecimal balance = permbean.getCurrentUser().getAccountBalance();
BigDecimal price = placeBean.totalReservationPrice(getActiveMap(), getClickedplace());
logger.debug("Balance {}, price {}", balance, price);
if (price.compareTo(balance) <= 0) {
logger.debug("Place was free. Marking for user.");
if (!placeBean.reservePlace(getClickedplace(), user)) {
this.addFaceMessage("mapView.errorWhenReservingPlace");
}
} else {
if (permbean.getCurrentUser().getAccountBalance().compareTo(BigDecimal.ZERO) > 0) {
addFaceMessage("mapView.notEnoughCreditsToReserve");
}
logger.debug("Did not have enought money to reserve place! required {} , got {}", price, balance);
}
}
}
logger.debug("Done calling PlaceSelectActionListener");
}
public String releaseUsersPlaces() {
placeBean.releaseUsersPlaces();
return "";
}
public String getSelectPlaceMapUrl() {
EventMap map = getActiveMap();
if (map == null) {
return "";
}
// String ret = placeMapBean.getSelectPlaceMapUrl(getActiveMap(),
// selectedPlaces, user);
StringBuilder ret = new StringBuilder("/PlaceMap?");
ret.append("mapid=").append(map.getId().getId());
logger.debug("Returning placemapUrl: {}", ret.toString());
return ret.toString();
}
/**
* @return the activeMap, if it's not setted, return events first map. If
* this event does not have map, return null.
*/
public EventMap getActiveMap() {
setUser(permbean.getCurrentUser());
LanEvent event = eventBean.getCurrentEvent();
for (EventMap map : event.getEventMaps()) {
if (map.isActive()) {
activeMap = map;
break;
}
}
return activeMap;
}
/**
* @param activeMap
* the activeMap to set
*/
public void setActiveMap(EventMap activeMap) {
this.activeMap = activeMap;
}
public Long placeLeftToSelect() {
return placeMapBean.selectablePlaceCount(getActiveMap());
}
public void setClickedplace(Place clickedplace) {
this.clickedplace = clickedplace;
}
public Place getClickedplace() {
return clickedplace;
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
}
package fi.insomnia.bortal.view;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.utilities.PasswordFunctions;
@ManagedBean(name = "pwdResetView")
@SessionScoped
public class PasswordResetView extends GenericView {
private Integer id;
private String hash;
private static final Logger logger = LoggerFactory.getLogger(PasswordResetView.class);
private String password;
private String confirm;
private User user;
private String mailuser;
@EJB
private UserBeanLocal userbean;
public boolean hashMatch() {
if (id != null && id > 0 && hash != null && hash.length() > 5) {
user = userbean.findPasswordResetUser(id, hash);
}
return user != null;
}
public String change() {
boolean changed = false;
String ret = null;
if (password.length() < 5) {
addFaceMessage("userview.passwordTooShort");
} else if (!password.equals(confirm)) {
addFaceMessage("userview.passwordsDontMatch");
} else if (user != null) {
changed = userbean.resetPassword(user, password, hash);
}
if (changed)
ret = "passwordChanged";
return ret;
}
public String sendMail() {
User userObj = userbean.getUser(mailuser);
if (userObj != null) {
String hashStr = PasswordFunctions.generateRandomString(25);
ExternalContext extcontext = FacesContext.getCurrentInstance().getExternalContext();
StringBuilder path = new StringBuilder()
.append("http://")
.append(extcontext.getRequestServerName());
if (extcontext.getRequestServerPort() != 80) {
path.append(":").append(extcontext.getRequestServerPort());
}
path.append("/")
.append(FacesContext.getCurrentInstance().getExternalContext().getContextName())
.append("/auth/resetPassword.jsf?id=")
.append(userObj.getId()).append("&hash=")
.append(hashStr);
logger.debug("billpath {}", path);
userbean.initPasswordReset(userObj, hashStr, path.toString());
return "resetmailSent";
}
mailuser = null;
this.addFaceMessage("passwordreset.usernotfound");
return null;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getHash() {
return hash;
}
public void setHash(String hash) {
this.hash = hash;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getConfirm() {
return confirm;
}
public void setConfirm(String confirm) {
this.confirm = confirm;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserBeanLocal getUserbean() {
return userbean;
}
public void setUserbean(UserBeanLocal userbean) {
this.userbean = userbean;
}
public void setMailuser(String mailuser) {
this.mailuser = mailuser;
}
public String getMailuser() {
return mailuser;
}
}
package fi.insomnia.bortal.view;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.PlaceBeanLocal;
import fi.insomnia.bortal.beans.PlaceGroupBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.PlaceGroup;
import fi.insomnia.bortal.model.User;
@ManagedBean(name = "placeGroupView_old")
@SessionScoped
public class PlaceGroupView extends GenericView {
private static final Logger logger = LoggerFactory.getLogger(PlaceGroupView.class);
private User user;
@EJB
private UserBeanLocal userBean;
@EJB
private PlaceGroupBeanLocal placegroupBean;
private ListDataModel<GroupMembership> memberlist;
@EJB
private PlaceBeanLocal placebean;
@EJB
private PlaceGroupBeanLocal placegroupBean;
private PlaceGroup group;
private String token;
private ListDataModel<Place> placelist;
private Place place;
public void editSelf() {
userBean.fatalNotLoggedIn();
setUser(userBean.getCurrentUser());
}
public void initPlacegroupsPlacelist() {
setPlacelist(new ListDataModel<Place>(group.getPlaces()));
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
userBean.fatalNotLoggedIn();
if (user != null) {
logger.debug("User {}", user.getPlaceGroups().size());
}
return user;
}
public ListDataModel<GroupMembership> getGroupMemberships() {
userBean.fatalNotLoggedIn();
memberlist = new ListDataModel<GroupMembership>(placegroupBean.getMembershipsAndCreations(user));
return memberlist;
}
public void setToken(String token) {
this.token = token;
}
public String getToken() {
return token;
}
public boolean canModify(GroupMembership row) {
boolean ret = false;
if (row != null && (
userBean.getCurrentUser().equals(row.getPlaceGroup().getCreator()) ||
userBean.hasPermission(Permission.MAP, RolePermission.WRITE))) {
ret = true;
}
return ret;
}
public String releasePlace() {
GroupMembership row = memberlist.getRowData();
if (row != null && (userBean.getCurrentUser().equals(row.getPlaceGroup().getCreator()) ||
userBean.hasPermission(Permission.MAP, RolePermission.WRITE))) {
placegroupBean.releaseAndGenerateToken(row);
this.addFaceMessage("placegroupview.placeReleased", row.getPlaceReservation().getName());
} else {
this.addFaceMessage("placegroupview.placeReleaseFailed", row.getPlaceReservation().getName());
}
return null;
}
public String removePlaceFromGroup() {
userBean.fatalPermission(Permission.MAP, RolePermission.WRITE, "No right to release place ", place);
place.getGroup().getPlaces().remove(place);
place.setGroup(null);
place = placebean.mergeChanges(place);
return null;
}
public String editPlace() {
place = placelist.getRowData();
return null;
}
public void setGroup(PlaceGroup group) {
this.group = group;
}
public PlaceGroup getGroup() {
return group;
}
public void setPlacelist(ListDataModel<Place> placelist) {
this.placelist = placelist;
}
public ListDataModel<Place> getPlacelist() {
return placelist;
}
public void setPlace(Place place) {
this.place = place;
}
public Place getPlace() {
return place;
}
}
package fi.insomnia.bortal.view;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.PlaceBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.User;
@ManagedBean(name = "placeView")
@SessionScoped
public class PlaceView {
private static final Logger logger = LoggerFactory.getLogger(PlaceView.class);
private Place place;
@EJB
private UserBeanLocal userbean;
@EJB
private PlaceBeanLocal placebean;
private ListDataModel<Place> placesPlacegroup;
private String searchuser;
private ListDataModel<User> userlist;
public String editPlace(Place place) {
this.place = place;
logger.debug("editing place {}", place);
searchuser = null;
userlist = null;
return "/place/edit";
}
public String reserveForUser() {
place = placebean.lockPlaces(userlist.getRowData(), place);
searchuser = null;
userlist = null;
return null;
}
public String searchUser() {
userlist = new ListDataModel<User>(userbean.searchName(searchuser));
return null;
}
public Place getPlace() {
userbean.fatalPermission(Permission.MAP, RolePermission.WRITE, "Not permission to modify place");
return place;
}
public String releasePlace() {
userbean.fatalPermission(Permission.MAP, RolePermission.WRITE, "No right to release place ", place);
place = placebean.find(place.getId());
if (!place.release(place.getCurrentUser())) {
logger.debug("Error releasing place.");
}
place = placebean.mergeChanges(place);
return null;
}
public void initGroupsPlacelist() {
if (place.getGroup() != null && !place.getGroup().getPlaces().isEmpty()) {
placesPlacegroup = new ListDataModel<Place>(place.getGroup().getPlaces());
} else {
placesPlacegroup = null;
}
}
public ListDataModel<Place> getPlacesGroupPlaces() {
return placesPlacegroup;
}
public String editPlacegroupPlace() {
place = placesPlacegroup.getRowData();
return "/place/edit";
}
public String removePlaceFromGroup() {
userbean.fatalPermission(Permission.MAP, RolePermission.WRITE, "No right to release place ", place);
place.getGroup().getPlaces().remove(place);
place.setGroup(null);
place = placebean.mergeChanges(place);
return null;
}
public String save() {
placebean.mergeChanges(place);
return null;
}
public String checkMemberships() {
placebean.checkMemberships();
return null;
}
public void setSearchuser(String searchuser) {
this.searchuser = searchuser;
}
public String getSearchuser() {
return searchuser;
}
public void setUserlist(ListDataModel<User> userlist) {
this.userlist = userlist;
}
public ListDataModel<User> getUserlist() {
return userlist;
}
}
package fi.insomnia.bortal.view;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.PollBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Poll;
import fi.insomnia.bortal.model.PollAnswer;
import fi.insomnia.bortal.model.PollQuestion;
import fi.insomnia.bortal.model.PossibleAnswer;
@ManagedBean(name = "pollView")
@SessionScoped
public class PollView extends GenericView {
@EJB
private PollBeanLocal pollBean;
private ListDataModel<Poll> polls;
private HashMap<Integer, List<QuestionWrapper>> pages;
private Integer thisPage = 1;
private Poll poll;
@EJB
private UserBeanLocal userbean;
private static final Logger logger = LoggerFactory.getLogger(PollView.class);
public void initPollList() {
List<Poll> pollList = pollBean.findPolls();
setPolls(new ListDataModel<Poll>(pollList));
logger.debug("Found {} polls from bean", pollList.size());
}
public String nextPage() {
++thisPage;
return null;
}
public List<QuestionWrapper> getCurrentPage() {
return pages.get(thisPage);
}
public String beginPoll() {
thisPage = 1;
setPoll(polls.getRowData());
pages = new HashMap<Integer, List<QuestionWrapper>>();
for (PollQuestion q : getPoll().getQuestions()) {
if (!pages.containsKey(q.getPage())) {
pages.put(q.getPage(), new LinkedList<QuestionWrapper>());
}
pages.get(q.getPage()).add(new QuestionWrapper(q));
}
return "/poll/answerToPoll";
}
public String showPoll()
{
userbean.fatalPermission(Permission.POLL, RolePermission.READ);
poll = polls.getRowData();
return "/poll/show";
}
public String savePoll() {
if (validate(this)) {
pollBean.createAnswers(createAnswers());
}
pages = null;
polls = null;
setPoll(null);
return "/poll/thankYou";
}
public void setPolls(ListDataModel<Poll> polls) {
this.polls = polls;
}
public ListDataModel<Poll> getPolls() {
return polls;
}
private List<PollAnswer> createAnswers() {
ArrayList<PollAnswer> ret = new ArrayList<PollAnswer>();
for (List<QuestionWrapper> qw : pages.values()) {
for (QuestionWrapper wrapper : qw) {
ret.addAll(wrapper.getAnswers());
}
}
return ret;
}
public boolean validate(PollView pollView) {
boolean ret = true;
// TODO: VALIDOI POLLIVASTAUKSET!
return ret;
}
public void setPoll(Poll poll) {
this.poll = poll;
}
public Poll getPoll() {
return poll;
}
public class QuestionWrapper {
private PollQuestion question;
private ArrayList<PollAnswer> answers;
public QuestionWrapper(PollQuestion q) {
question = q;
answers = new ArrayList<PollAnswer>();
for (PossibleAnswer possible : q.getAnswers()) {
answers.add(new PollAnswer(possible));
}
}
public boolean isFreeText() {
return question.isFreeText();
}
public PollAnswer getTextAnswer() {
if (!isFreeText()) {
throw new RuntimeException("IS not freetext!! !!BUG!!BUG!!");
}
return answers.get(0);
}
public void setOneSelected(PollAnswer ans) {
if (ans != null) {
for (PollAnswer possibleAns : answers) {
if (possibleAns.getChoice().equals(ans.getChoice())) {
possibleAns.setAnswerBoolean(true);
} else {
possibleAns.setAnswerBoolean(false);
}
}
}
}
public PollAnswer getOneSelected() {
for (PollAnswer possibleAns : answers) {
if (possibleAns.getAnswerBoolean()) {
return possibleAns;
}
}
return null;
}
public PollQuestion getQuestion() {
return question;
}
public void setQuestion(PollQuestion question) {
this.question = question;
}
public void setAnswers(ArrayList<PollAnswer> answers) {
this.answers = answers;
}
public ArrayList<PollAnswer> getAnswers() {
return answers;
}
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.view;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.AccountEventBeanLocal;
import fi.insomnia.bortal.beans.BillBeanLocal;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.ProductBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.AccountEvent;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.utilities.I18n;
import fi.insomnia.bortal.view.helpers.ProductShopItem;
@ManagedBean(name = "productShopView_old")
@SessionScoped
public class ProductShopView extends GenericView {
private static final Logger logger = LoggerFactory.getLogger(ProductShopView.class);
@EJB
private ProductBeanLocal productBean;
@EJB
private BillBeanLocal billBean;
@EJB
private EventBeanLocal eventBean;
@EJB
private UserBeanLocal userBean;
private ListDataModel<ProductShopItem> billCart;
private User shoppingUser;
@EJB
private AccountEventBeanLocal accountEventBean;
private boolean payInstant;
private boolean productsInCart() {
Iterator<ProductShopItem> nullcheckIter = billCart.iterator();
while (nullcheckIter.hasNext()) {
if (nullcheckIter.next().getCount().compareTo(BigDecimal.ZERO) > 0) {
logger.debug("Found items from cart");
return true;
}
}
return false;
}
public String commitBillCart() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.EXECUTE);
logger.debug("Committing billCart");
if (!productsInCart()) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get("productshop.noItemsInCart")));
return "createBill";
}
Iterator<ProductShopItem> cartIter = billCart.iterator();
Bill bill = null;
bill = billBean.createEmptyBill(getShoppingUser());
bill.setOurReference(eventBean.getCurrentEvent().getName());
while (cartIter.hasNext()) {
ProductShopItem shopitem = cartIter.next();
if (shopitem.getCount().compareTo(BigDecimal.ZERO) > 0) {
billBean.addProductToBill(bill, shopitem.getProduct(), shopitem.getCount());
}
}
return "success";
}
public String commitShoppingCart() {
if (!productsInCart()) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get("productshop.noItemsInCart")));
return null;
}
Iterator<ProductShopItem> cartIter = billCart.iterator();
Map<Product, BigDecimal> shopMap = new HashMap<Product, BigDecimal>();
while (cartIter.hasNext()) {
ProductShopItem shopitem = cartIter.next();
if (shopitem.getCount().compareTo(BigDecimal.ZERO) > 0) {
if (shopMap.containsKey(shopitem.getProduct())) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get("productshop.productFoundTwice")));
return null;
}
shopMap.put(shopitem.getProduct(), shopitem.getCount());
}
}
List<AccountEvent> executed = accountEventBean.shopCash(shoppingUser, shopMap, isPayInstant());
this.addFaceMessage("Tuotteet ostettu");
return "success";
}
public void initUsershoppable() {
setPayInstant(false);
logger.debug("Creating new BillCart");
userBean.fatalPermission(Permission.BILL, RolePermission.EXECUTE);
billCart = new ListDataModel<ProductShopItem>(ProductShopItem.productList(productBean.listUserShoppableProducts()));
}
public void initShoppableProducts() {
setPayInstant(true);
userBean.fatalPermission(Permission.SHOP, RolePermission.EXECUTE);
billCart = new ListDataModel<ProductShopItem>(ProductShopItem.productList(productBean.getProducts()));
}
public DataModel<ProductShopItem> getBillCart() {
return billCart;
}
public void setShoppingUser(User shoppingUser) {
this.shoppingUser = shoppingUser;
}
public User getShoppingUser() {
if (shoppingUser == null) {
userBean.getCurrentUser();
}
return shoppingUser;
}
public void setPayInstant(boolean payInstant) {
this.payInstant = payInstant;
}
public boolean isPayInstant() {
return payInstant;
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.view;
import java.math.BigDecimal;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.DiscountBeanLocal;
import fi.insomnia.bortal.beans.ProductBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Discount;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.view.helpers.ProductShopItem;
/**
*
* @author jkj
*/
@ManagedBean(name = "oldproductView")
@SessionScoped
public class ProductView {
private static final Logger logger = LoggerFactory.getLogger(ProductView.class);
@EJB
private ProductBeanLocal productBean;
@EJB
private UserBeanLocal userBean;
private String productname = "";
private BigDecimal productprice = BigDecimal.ZERO;
private EventMap activeMap = null;
private ListDataModel<ProductShopItem> billCart;
private Product product;
private ListDataModel<Product> products;
private DataModel<Discount> discounts;
private Discount discount;
private String discountdesc;
@EJB
private DiscountBeanLocal discountbean;
public DataModel<Discount> getProductDiscounts() {
discounts = new ListDataModel<Discount>(product.getDiscounts());
return discounts;
}
public String editDiscount() {
discount = discounts.getRowData();
return "editDiscount";
}
public String createDiscount() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.WRITE, "Tried to create discount without sufficient rights");
logger.debug("Creating product discount {} for product {}", discountdesc, product);
discount = discountbean.create(getDiscountdesc());
product.getDiscounts().add(discount);
productBean.mergeChanges(product);
return "editDiscount";
}
public String saveDiscount() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.WRITE, "Tried to edit discount without sufficient rights");
discount = discountbean.save(discount);
return "editDiscount";
}
public DataModel<Product> getProducts() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.READ, "User has no right to view products");
products = new ListDataModel<Product>(getProductlist());
return products;
}
public List<Product> getProductlist()
{
return productBean.getProducts();
}
public void createProduct() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.WRITE);
setProduct(productBean.createProduct(productname, productprice));
productprice = BigDecimal.ZERO;
productname = "";
// return "edit";
}
public String edit() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.WRITE);
product = products.getRowData();
return "edit";
}
public void saveProduct() {
userBean.fatalPermission(Permission.PRODUCT, RolePermission.WRITE);
logger.debug("Prepaidbit: {}", product.isPrepaid());
product = productBean.mergeChanges(product);
}
/**
* @return the activeMap
*/
public EventMap getActiveMap() {
userBean.fatalPermission(Permission.MAP, RolePermission.READ);
return activeMap;
}
/**
* @param activeMap
* the activeMap to set
*/
public void setActiveMap(EventMap activeMap) {
this.activeMap = activeMap;
}
public void setProductname(String productname) {
this.productname = productname;
}
public String getProductname() {
return productname;
}
public void setProductprice(BigDecimal productprice) {
this.productprice = productprice;
}
public BigDecimal getProductprice() {
return productprice;
}
public void setProduct(Product product) {
this.product = product;
}
public Product getProduct() {
return product;
}
public void setDiscountdesc(String discountdesc) {
this.discountdesc = discountdesc;
}
public String getDiscountdesc() {
return discountdesc;
}
public Discount getDiscount() {
return discount;
}
/*
* public String placeMapActionListener(ActionEvent e) {
*
* if(activeMap == null) throw new
* UnsupportedOperationException("TODO error message");
*
*
*
*
*
*
* FacesContext context = FacesContext.getCurrentInstance(); String clientId
* = e.getComponent().getClientId(context); Map requestParams =
* context.getExternalContext().getRequestParameterMap(); int x = new
* Integer((String) requestParams.get(clientId + ".x")).intValue(); int y =
* new Integer((String) requestParams.get(clientId + ".y")).intValue();
*
* System.out.println("x: " + x + ", y:" + y);
*
* throw new UnsupportedOperationException(); }
*/
}
package fi.insomnia.bortal.view;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.ReaderBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.model.ReaderEvent;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.view.helpers.RfidEvent;
import fi.insomnia.bortal.web.cdiview.RfidContainer;
@Named(name = "readerView")
@SessionScoped
public class ReaderView extends GenericView {
@ManagedProperty(value = "#{rfidContainer}")
private RfidContainer container;
@ManagedProperty(value = "#{productShopView}")
private ProductShopView shopview;
private ListDataModel<String> readerlist;
private String readername;
private ListDataModel<RfidEvent> readerevents;
private RfidEvent rfidevent;
private String placecode;
private String usersearch;
@EJB
private ReaderBeanLocal readerBean;
@EJB
private UserBeanLocal userbean;
@EJB
private EventBeanLocal eventbean;
private ListDataModel<UserCardWrapper> userlist;
@ManagedProperty(value = "#{userView}")
private UserView userview;
private static final Logger logger = LoggerFactory.getLogger(ReaderView.class);
public String searchforuser() {
setUserlist(initUserCardWrapper(userbean.searchName(usersearch + "%")));
return null;
}
public ListDataModel<String> getReaders() {
Set<String> keyset = getContainer().getReaders().keySet();
readerlist = new ListDataModel<String>(new ArrayList<String>(keyset));
return readerlist;
}
public String selectEvent() {
rfidevent = readerevents.getRowData();
String ret = null;
if (rfidevent.getEvent() == null) {
usersearch = "";
setUserlist(null);
placecode = "";
ret = "assocToUser";
} else {
getShopview().setShoppingUser(rfidevent.getEvent().getPrintedCard().getUser());
ret = "shopToUser";
}
return ret;
}
public String assocToCard() {
UserCardWrapper usr = userlist.getRowData();
PrintedCard card = usr.getCards().getRowData();
logger.debug("Associng card {} to card tag {}", card.getId(), rfidevent.getTag());
rfidevent.setEvent(readerBean.assocTagToCard(rfidevent.getTag(), readername, card));
rfidevent.addMessage("Associated to user " + usr.getUser().getNick());
getShopview().setShoppingUser(usr.getUser());
return "shopToUser";
}
public String selectReader() {
setReadername(readerlist.getRowData());
return "showReaderEvents";
}
public String assocToPlacecode() {
try {
ReaderEvent event = readerBean.assocTagToPlacecode(rfidevent.getTag(), readername, placecode);
rfidevent.setEvent(event);
rfidevent.addMessage("Associated to user " + event.getPrintedCard().getUser().getWholeName());
} catch (BortalCatchableException e) {
this.addFaceMessage(e.getI18nMessage());
}
return "";
}
public ListDataModel<RfidEvent> getReaderEvents() {
readerevents = new ListDataModel<RfidEvent>(getContainer().getReaderEvents(getReadername()));
return readerevents;
}
public void setContainer(RfidContainer container) {
this.container = container;
}
public RfidContainer getContainer() {
return container;
}
public void setReadername(String readername) {
this.readername = readername;
}
public String getReadername() {
return readername;
}
public String getPlacecode() {
return placecode;
}
public void setPlacecode(String placecode) {
this.placecode = placecode;
}
public String getUsersearch() {
return usersearch;
}
public void setUsersearch(String usersearch) {
this.usersearch = usersearch;
}
public void setRfidevent(RfidEvent rfidevent) {
this.rfidevent = rfidevent;
}
public RfidEvent getRfidevent() {
return rfidevent;
}
private ListDataModel<UserCardWrapper> initUserCardWrapper(List<User> users) {
ArrayList<UserCardWrapper> ret = new ArrayList<UserCardWrapper>();
for (User usr : users) {
ret.add(new UserCardWrapper(usr));
}
return new ListDataModel<UserCardWrapper>(ret);
}
public void setUserlist(ListDataModel<UserCardWrapper> userlist) {
this.userlist = userlist;
}
public ListDataModel<UserCardWrapper> getUserlist() {
return userlist;
}
public void setShopview(ProductShopView shopview) {
this.shopview = shopview;
}
public ProductShopView getShopview() {
return shopview;
}
public class UserCardWrapper {
private User user;
private ListDataModel<PrintedCard> cards;
public UserCardWrapper(User usr) {
LanEvent event = eventbean.getCurrentEvent();
setUser(usr);
ArrayList<PrintedCard> cardlist = new ArrayList<PrintedCard>();
for (PrintedCard pc : usr.getPrintedCards()) {
if (pc.getEnabled() && event.getId().equals(pc.getId().getEventId())) {
cardlist.add(pc);
}
}
setCards(new ListDataModel<PrintedCard>(cardlist));
}
public void setCards(ListDataModel<PrintedCard> cards) {
this.cards = cards;
}
public ListDataModel<PrintedCard> getCards() {
return cards;
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
}
public String editGameEvent() {
rfidevent = readerevents.getRowData();
return "/shop/editGame";
}
public String saveEvent() {
ReaderEvent e = rfidevent.getEvent();
rfidevent.setEvent(readerBean.merge(e));
this.addFaceMessage("Pisteet Tallennettu");
return null;
}
public String editUser() {
getUserview().setUser(readerevents.getRowData().getEvent().getPrintedCard().getUser());
return "/user/edit";
}
public void setUserview(UserView userview) {
this.userview = userview;
}
public UserView getUserview() {
return userview;
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.view;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
/**
*
* @author tuukka
*/
@ManagedBean(name = "roleView_old")
@SessionScoped
public class RoleView_old {
@EJB
private EventBeanLocal eventbean;
@EJB
private RoleBeanLocal roleBean;
private static final Logger logger = LoggerFactory.getLogger(RoleView_old.class);
@EJB
private UserBeanLocal userbean;
private Role role;
private DataModel<Role> items;
private ListDataModel<RoleRight> rolerights;
public void initCreate() {
role = new Role(eventbean.getCurrentEvent());
}
public List<Role> getRoleList() {
userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);
return roleBean.listRoles();
}
public DataModel<Role> getItems() {
userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);
return items;
}
public DataModel<Role> getRoles() {
items = new ListDataModel<Role>(getRoleList());
return items;
}
public DataModel<RoleRight> getRoleRights() {
userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);
if (rolerights == null) {
logger.info("Fetching new rolerights from database");
rolerights = new ListDataModel<RoleRight>(roleBean.getRoleRights(role));
}
return rolerights;
}
public String save() {
userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.WRITE, "Does not have permission to modify role!");
role = roleBean.mergeChanges(getRole());
return "roleSaved";
}
public String editRoleRight() {
userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.WRITE);
logger.info("Roleright array: {}", rolerights);
RoleRight row = rolerights.getRowData();
roleBean.mergeChanges(row);
logger.info("Saving roleright {}, r {}, w {}, x {}", new String[] { row.getPermission().toString(), new Boolean(row.isRead()).toString(), new Boolean(row.isWrite()).toString(), new Boolean(row.isExecute()).toString() });
rolerights = null;
return "editRoleright";
}
public String create() {
userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.WRITE, "Does not have permission to create role!");
logger.debug("Creating role {}", getRole());
role = roleBean.create(getRole());
return "roleCreated";
}
public String edit() {
userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);
logger.info("Editing row from items");
setRole(items.getRowData());
rolerights = null;
items = null;
return "roleEdit";
}
/** Creates a new instance of RoleView */
public RoleView_old() {
}
/**
* @return the role
*/
public Role getRole() {
userbean.fatalPermission(Permission.ROLE_MANAGEMENT, RolePermission.READ);
return role;
}
/**
* @param role
* the role to set
*/
public void setRole(Role role) {
this.role = role;
}
/**
* @return the possibleParents
*/
public List<Role> getPossibleParents() {
return roleBean.getPossibleParents(getRole());
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.view;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.CardTemplateBeanLocal;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.PollBeanLocal;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.TestDataBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.beans.UtilBeanLocal;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Poll;
import fi.insomnia.bortal.model.PollQuestion;
import fi.insomnia.bortal.model.PossibleAnswer;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
/**
*
* @author tuukka
*/
@ManagedBean(name = "TestDataView")
@RequestScoped
public class TestDataView {
private static final Logger logger = LoggerFactory.getLogger(TestDataView.class);
@EJB
private TestDataBeanLocal testdatabean;
@EJB
private UserBeanLocal userbean;
@EJB
private RoleBeanLocal rolebean;
@EJB
private UtilBeanLocal utilbean;
@EJB
private CardTemplateBeanLocal ctbean;
@EJB
private EventBeanLocal eventbean;
@EJB
private PollBeanLocal pollbean;
public void generateData() {
User user = testdatabean.createUser();
User admin = testdatabean.createAdmin();
testdwatabean.createBill(user);
// testdatabean.generateTestCompos(event);
}
public void convertUsernames() {
utilbean.convertUsernames();
}
public void generateTestMap() {
EventMap map = testdatabean.generateTestMap();
testdatabean.generateTestPlaces(map);
}
public void executeMapTests() {
for (long i = 100; i < 1024 * 100; i += 100) {
logger.debug("Trying to read {} chars", i);
EventMap map = testdatabean.readMap(i);
// logger.debug("Got map {} with {} chars", new Object[] { map,
// map.getMapData().length() });
}
logger.warn("All succeded Testing for original image");
EventMap map = testdatabean.readMap(0);
logger.info("Got orig image: {}", map);
}
/** Creates a new instance of TestDataView */
public TestDataView() {
}
public String printPlacesInfo() {
testdatabean.printPlacesInfo();
return null;
}
public void roletest() {
User usr = userbean.getCurrentUser();
List<Role> roles = rolebean.listRoles();
Role role = roles.get(roles.size() - 1);
role.getUsers().add(usr);
logger.debug("roles before: {}", role.getUsers());
rolebean.mergeChanges(role);
logger.debug("roles after: {}", usr.getRoles());
}
public void checkCards() {
ctbean.checkAllUsersCardRights();
}
public String checkImages() {
logger.debug("Cheking all users images");
utilbean.checkAllUsersImages();
return null;
}
public String convertImages() {
for (User u : userbean.getUsers()) {
utilbean.convertImage(u);
}
return null;
}
public String generatePollData() {
LanEvent ev = eventbean.getCurrentEvent();
Poll poll = new Poll(ev, "Tapahtumakysely");
Calendar end = Calendar.getInstance();
end.add(Calendar.MONTH, 1);
poll.setEnd(end);
createTextQuestion(poll, 10, "Millainen oli yleinen fiilis tapahtumassa?");
createTextQuestion(poll, 20, "Mitä pidit tapahtuman kilpailuista?");
createTextQuestion(poll, 30, "Mitä mieltä olit tapahtuman kilpailujen aikataulusta ja oliko neljäpäiväinen tapahtuma hyvä juttu?");
createTextQuestion(poll, 40, "Muu palaute tapahtumasta:");
createTextQuestion(poll, 60, "Mikä InsomniaGamessa oli parasta?");
createTextQuestion(poll, 70, "Mikä InsomniaGamessa oli huonointa?");
createTextQuestion(poll, 80, "Miten olisit halunnut saada tietoa InsomniaGameen liittyvistä tehtävistä?");
createTextQuestion(poll, 90, "Palautteesi InsomniaGamen järjestäjille:");
pollbean.createPoll(poll);
Poll poll2 = new Poll(ev, "Gallup");
Calendar end2 = Calendar.getInstance();
end2.add(Calendar.MONTH, 1);
poll2.setEnd(end);
createTextQuestion(poll2, 10, "Syntymävuotesi?", 8);
createMulticoice(poll2, 50, "Omistatko älypuhelimen?", "En", "Kyllä", "Olen hankkimassa seuraavaksi älypuhelmen");
createMulticoice(poll2, 60, "Miten usein pelaat mobiilipelejä?", "En pelaa mobiilipelejä", "Olen joskus kokeillut ", "Pelaan lähes viikottain", "Pelaan lähes päivittäin");
createMulticoice(poll2, 70, "Miten usein pelaat pelikonsolilla tai tietokoneella?", "En pelaa", "Pelaan harvoin", "Pelaan kerran, pari viikossa", "Pelaan päivittäin");
createMulticoice(poll2, 80, "Oletko kokeillut opetuspelejä? Esimerkiksi nettiselaimella tai kännykällä?", "En ole kokeillut", "Olen kokeillut", "Käytän usein");
createTextQuestion(poll2, 90, "Millaisen opetuspelin kokisit sekä hyödyllisenä että hauskana?");
createMulticoice(poll2, 95, "Kokisitko roolipeleistä tutut kokemuspisteet ja kokemustasojen tavoittelun motivaatiota kasvattanava asiana oppimispeleissä?", "Kyllä", "Ei");
createMulticoice(poll2, 100, "Oletko käyttänyt sijaintitietoon perustuvia palveluja, kuten Google Latitude tai Foursquare?", "En ole kokeillut", "Olen kokeillut", "Käytän usein");
createTextQuestion(poll2, 110, "Millaisia käyttötapoja näkisit sijaintitietoon perustuvilla peleillä tai palveluilla oppimiskäytössä?");
createMulticoice(poll2, 120, "Käytätkö sosiaalisen median palveluita, kuten Facebookia tai IRC-Galleriaa?", "En ole kokeillut", "Olen kokeillut", "Käytän usein");
createTextQuestion(poll2, 130, "Millaisia käyttötapoja näkisit sosiaalisen mediaan perustuvilla palveluilla oppimiskäytössä?");
createTextQuestion(poll2, 140, "Olet ehkä kuullut termin \"pilvipalvelut\". Miltä kuulostaisi ajatus siitä että pelikonsoli ei fyysisesti olisikaan kotonasi, vaan pelien sisältö tulisi suoraan verkkopalvelusta?");
pollbean.createPoll(poll2);
return null;
}
private void createMulticoice(Poll poll2, Integer sort, String question, String... answers) {
PollQuestion pollq = new PollQuestion(poll2, question);
pollq.setSort(sort);
poll2.getQuestions().add(pollq);
Integer anssort = 10;
for (String ans : answers) {
PossibleAnswer pans = new PossibleAnswer(pollq, ans);
pans.setSort(anssort);
pollq.getAnswers().add(pans);
anssort += 10;
}
}
private PollQuestion createTextQuestion(Poll poll, int sort, String string, int chars) {
PollQuestion ret = createTextQuestion(poll, sort, string);
ret.setCharacters(chars);
return ret;
}
private PollQuestion createTextQuestion(Poll poll, int sort, String question) {
PollQuestion q1 = new PollQuestion(poll, question);
q1.setSort(sort);
poll.getQuestions().add(q1);
PossibleAnswer vapaa = new PossibleAnswer(q1, "");
vapaa.setTextanswer(true);
q1.getAnswers().add(vapaa);
return q1;
}
}
package fi.insomnia.bortal.view;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.ListDataModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.LoggingBeanLocal;
import fi.insomnia.bortal.beans.PermissionBeanLocal;
import fi.insomnia.bortal.beans.PermissionDeniedException;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.SecurityLogType;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.beans.UtilBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.PlaceGroup;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.model.UserImage;
import fi.insomnia.bortal.utilities.I18n;
@ManagedBean(name = "userView_old")
@SessionScoped
public class UserView extends GenericView {
@EJB
private UserBeanLocal userBean;
@EJB
private LoggingBeanLocal loggingbean;
@EJB
private RoleBeanLocal roleBean;
@EJB
private PermissionBeanLocal permbean;
@ManagedProperty(value = "#{placeGroupView}")
private PlaceGroupView placegroupView;
@ManagedProperty(value = "#{productShopView}")
private ProductShopView shopview;
private static final Logger logger = LoggerFactory.getLogger(UserView.class);
private User user;
private ListDataModel<User> items;
private String password;
private String passwordcheck;
@EJB
private UtilBeanLocal utilbean;
private ListDataModel<UserImage> userImageList;
public void initCreateUser() {
user = new User();
}
public String showImage() {
setUser(items.getRowData());
return "adminSendImage";
}
public String setDefaultImage() {
user.setCurrentImage(userImageList.getRowData());
return null;
}
public String edit() {
setUser(items.getRowData());
return "userEdit";
}
public String reloadUser() {
user = userBean.findById(user.getId());
return null;
}
public String shop() {
shopview.setShoppingUser(items.getRowData());
// shopview.setUser(items.getRowData());
return "/shop/shopToUser";
}
public ListDataModel<PlaceGroup> getPlacegroups() {
List<PlaceGroup> retlist = new ArrayList<PlaceGroup>();
retlist.addAll(user.getPlaceGroups());
for (GroupMembership gm : user.getGroupMemberships()) {
if (!retlist.contains(gm.getPlaceGroup())) {
retlist.add(gm.getPlaceGroup());
}
}
ListDataModel<PlaceGroup> ret = new ListDataModel<PlaceGroup>(retlist);
return ret;
}
public List<Role> getUserRoles() {
return roleBean.listRoles();
}
public boolean canSave() {
return permbean.getCurrentUser().equals(user) || permbean.hasPermission(Permission.USER_MANAGEMENT, RolePermission.WRITE);
}
public void editSelf() {
setUser(permbean.getCurrentUser());
}
public String createUser() {
String ret = "editcreate";
if (user == null || user.getLogin() == null || user.getLogin().trim().isEmpty() || user.getLogin().trim().length() < 2) {
addFaceMessage("userview.loginstringFaulty");
} else if (password.length() < 5) {
addFaceMessage("userview.passwordTooShort");
} else if (null != userBean.getUser(user.getLogin())) {
addFaceMessage("userview.userExists");
} else if (!password.equals(passwordcheck)) {
addFaceMessage("userview.passwordsDontMatch");
password = "";
passwordcheck = "";
} else {
logger.debug("Creating new user: {}", user.getLogin());
// Luodaan uusi käyttäjä UserBeanin funktiolla createNewUser jolle
// annetaan parametrina pakolliset tiedot ( login ja salasana )
// Paluuarvona saadaan uusi uljas käyttäjä-olio.
setUser(userBean.createNewUser(user, password));
password = "";
passwordcheck = "";
if (getUser() == null) {
logger.warn("Could not create user. function returned null!");
} else {
loggingbean.logMessage(SecurityLogType.genericMessage, permbean.getCurrentUser(), "Created new user ", getUser().getLogin(), " with id: ", getUser().getId().toString());
if (!permbean.isLoggedIn()) {
ret = "created";
} else {
ret = "edit";
}
}
}
return ret;
}
public void initUserimagelist() {
setUserImageList(new ListDataModel<UserImage>(user.getUserImageList()));
}
public String saveUser() throws PermissionDeniedException {
logger.debug("Saving user at UserView mbean nick: {}", user.getNick());
User thisusr = getUser();
if (!permbean.isCurrentUser(thisusr)) {
logger.debug("user {} is modifying user {}", permbean.getCurrentUser(), thisusr);
}
for (Role r : getUser().getRoles()) {
logger.debug("Users roles: {}", r.getName());
}
setUser(userBean.mergeChanges(getUser()));
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get("user.saveSuccessfull")));
return "edit";
}
public ListDataModel<User> getUsers() {
List<User> users;
users = userBean.getUsers();
items = new ListDataModel<User>(users);
logger.debug("Fetching users. Found {}", items.getRowCount());
return items;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
if (user == null) {
user = permbean.getCurrentUser();
}
return user;
}
public void setPasswordcheck(String passwordcheck) {
this.passwordcheck = passwordcheck;
}
public String getPasswordcheck() {
return passwordcheck;
}
public String changePassword() throws PermissionDeniedException {
if (!password.equals(passwordcheck)) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get("userview.passwordsDontMatch")));
return "changePassword";
}
user.resetPassword(password);
userBean.mergeChanges(user);
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(I18n.get("userview.passwordsChanged")));
password = "";
passwordcheck = "";
return "edit";
}
public String editGroup(PlaceGroup pg) {
placegroupView.setGroup(pg);
return "/place/editGroup";
}
public void setPlacegroupView(PlaceGroupView placegroupView) {
this.placegroupView = placegroupView;
}
public PlaceGroupView getPlacegroupView() {
return placegroupView;
}
public String recheckImagetype() throws PermissionDeniedException {
utilbean.convertImage(user);
return null;
}
public String nothing() {
return null;
}
public void setShopview(ProductShopView shopview) {
this.shopview = shopview;
}
public ProductShopView getShopview() {
return shopview;
}
public void setUserImageList(ListDataModel<UserImage> userImageList) {
this.userImageList = userImageList;
}
public ListDataModel<UserImage> getUserImageList() {
return userImageList;
}
}
......@@ -41,6 +41,7 @@ public class EventOrgView extends GenericCDIView {
private List<EventOrganiser> organisations;
private Integer eventid;
private LanEvent event;
private String newdomain;
......
......@@ -5,7 +5,9 @@ import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;
import fi.insomnia.bortal.beans.BillBeanLocal;
import fi.insomnia.bortal.beans.VerkkomaksutFiBeanLocal;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.util.VerkkomaksutReturnEntry;
import fi.insomnia.bortal.web.cdiview.GenericCDIView;
@Named
......@@ -16,12 +18,14 @@ public class BillReviewView extends GenericCDIView {
*
*/
private static final long serialVersionUID = -4665348757236295800L;
private Bill bill;
@EJB
private VerkkomaksutFiBeanLocal vmbean;
@EJB
private transient BillBeanLocal billbean;
private Bill bill;
private VerkkomaksutReturnEntry vmreturn;
public Bill getBill() {
return bill;
}
......@@ -30,9 +34,18 @@ public class BillReviewView extends GenericCDIView {
this.bill = bill;
}
public String getVerkkomaksuToken()
public boolean isVerkkomaksuAvailable()
{
return vmbean.isSvmEnabled();
}
public VerkkomaksutReturnEntry getVerkkomaksuToken()
{
if (bill != null && vmreturn == null)
{
vmreturn = vmbean.getSvmToken(bill);
}
return vmreturn;
}
}
......@@ -39,6 +39,12 @@ public class OrgRoleView extends GenericCDIView {
}
}
public String create()
{
orgRoleBean.create(orgRole);
return "edit";
}
public OrgRole getOrgRole() {
return orgRole;
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!