Commit 4b574c9a by Tuomas Riihimäki

RFID jutukkeita

1 parent fce4b5f6
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
package fi.insomnia.bortal; package fi.insomnia.bortal;
import java.util.ArrayList;
import java.util.Enumeration; import java.util.Enumeration;
import javax.security.auth.login.LoginException; import javax.security.auth.login.LoginException;
...@@ -44,7 +45,6 @@ import com.sun.appserv.security.AppservPasswordLoginModule; ...@@ -44,7 +45,6 @@ import com.sun.appserv.security.AppservPasswordLoginModule;
import com.sun.enterprise.security.auth.realm.InvalidOperationException; import com.sun.enterprise.security.auth.realm.InvalidOperationException;
import com.sun.enterprise.security.auth.realm.NoSuchUserException; import com.sun.enterprise.security.auth.realm.NoSuchUserException;
/** /**
* *
* @author nithyasubramanian SampleLoginModule - extends * @author nithyasubramanian SampleLoginModule - extends
...@@ -69,8 +69,8 @@ public class BortalLoginModule extends AppservPasswordLoginModule { ...@@ -69,8 +69,8 @@ public class BortalLoginModule extends AppservPasswordLoginModule {
protected void authenticateUser() throws LoginException { protected void authenticateUser() throws LoginException {
log((new StringBuilder()).append("CustomRealm Auth Info:_username:") log((new StringBuilder()).append("CustomRealm Auth Info:_username:")
.append(_username) .append(_username)
//.append(";_password:").append(_passwd) // .append(";_password:").append(_passwd)
.append(";_currentrealm:").append(_currentRealm).toString()); .append(";_currentrealm:").append(_currentRealm).toString());
// Check if the given realm is SampleRealm // Check if the given realm is SampleRealm
if (!(_currentRealm instanceof BortalRealm)) { if (!(_currentRealm instanceof BortalRealm)) {
...@@ -97,7 +97,6 @@ public class BortalLoginModule extends AppservPasswordLoginModule { ...@@ -97,7 +97,6 @@ public class BortalLoginModule extends AppservPasswordLoginModule {
// Get group names for the authenticated user from the Realm class // Get group names for the authenticated user from the Realm class
Enumeration<String> enumeration = null; Enumeration<String> enumeration = null;
String authenticatedGroups[] = new String[2];
try { try {
enumeration = samplerealm.getGroupNames(_username); enumeration = samplerealm.getGroupNames(_username);
} catch (InvalidOperationException invalidoperationexception) { } catch (InvalidOperationException invalidoperationexception) {
...@@ -111,11 +110,15 @@ public class BortalLoginModule extends AppservPasswordLoginModule { ...@@ -111,11 +110,15 @@ public class BortalLoginModule extends AppservPasswordLoginModule {
" while calling getGroupNames() on the SampleRealm ") " while calling getGroupNames() on the SampleRealm ")
.append(nosuchuserexception).toString()); .append(nosuchuserexception).toString());
} }
ArrayList<String> authenticatedGroups = new ArrayList<String>();
for (int i = 0; enumeration != null && enumeration.hasMoreElements(); i++) for (int i = 0; enumeration != null && enumeration.hasMoreElements(); i++)
authenticatedGroups[i] = (String) enumeration.nextElement(); authenticatedGroups.add(enumeration.nextElement());
// Call commitUserAuthentication with the groupNames the user belongs to // Call commitUserAuthentication with the groupNames the user belongs to
commitUserAuthentication(authenticatedGroups);
commitUserAuthentication(authenticatedGroups.toArray(new String[0]));
} }
private void log(String s) { private void log(String s) {
......
...@@ -2,12 +2,7 @@ ...@@ -2,12 +2,7 @@
<classpath> <classpath>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish Server Open Source Edition 3 (Java EE 6)"> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="owner.project.facets" value="jst.utility"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6">
<attributes> <attributes>
<attribute name="owner.project.facets" value="java"/> <attribute name="owner.project.facets" value="java"/>
</attributes> </attributes>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<faceted-project> <faceted-project>
<runtime name="GlassFish Server Open Source Edition 3 (Java EE 6)"/>
<fixed facet="java"/> <fixed facet="java"/>
<fixed facet="jst.utility"/> <fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/> <installed facet="jst.utility" version="1.0"/>
......
Manifest-Version: 1.0 Manifest-Version: 1.0
Class-Path: lib/LanBortalDatabase.jar Class-Path: lib/LanBortalDatabase.jar
lib/LanBortalDatabase.jar lib/LanBortalDatabase.jar
lib/PDFjet.jar lib/PDFjet.jar
lib/LanBortalAuthModuleClient.jar
package fi.insomnia.bortal.beans; package fi.insomnia.bortal.beans;
import java.util.Calendar;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import fi.insomnia.bortal.facade.PrintedCardFacade;
import fi.insomnia.bortal.facade.ReaderEventFacade;
import fi.insomnia.bortal.facade.ReaderFacade; import fi.insomnia.bortal.facade.ReaderFacade;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.model.Reader; import fi.insomnia.bortal.model.Reader;
import fi.insomnia.bortal.model.ReaderEvent;
/** /**
* Session Bean implementation class ReaderBean * Session Bean implementation class ReaderBean
...@@ -16,16 +23,22 @@ public class ReaderBean implements ReaderBeanLocal { ...@@ -16,16 +23,22 @@ public class ReaderBean implements ReaderBeanLocal {
private ReaderFacade readerfacade; private ReaderFacade readerfacade;
@EJB @EJB
private EventBeanLocal eventbean; private EventBeanLocal eventbean;
@EJB
private PrintedCardFacade cardfacade;
@EJB
private ReaderEventFacade readerEventFacade;
@Override @Override
public boolean checkTag(String ident, String tag, String hash) { public ReaderEvent checkTag(String ident, String tag, String hash) {
Reader reader = readerfacade.findByIdent(eventbean.getCurrentEvent(), ident); LanEvent ev = eventbean.getCurrentEvent();
boolean ret = false; Reader reader = readerfacade.findByIdent(ev, ident);
if(reader != null) PrintedCard card = cardfacade.findByRfid(ev, tag);
{ ReaderEvent ret = null;
if (reader != null && card != null) {
ret = new ReaderEvent(ev, Calendar.getInstance(), card, reader);
readerEventFacade.create(ret);
} }
return ret; return ret;
} }
} }
...@@ -43,4 +43,11 @@ public class PrintedCardFacade extends EventChildGenericFacade<PrintedCard> { ...@@ -43,4 +43,11 @@ public class PrintedCardFacade extends EventChildGenericFacade<PrintedCard> {
// return q.getResultList(); // return q.getResultList();
return retlist; return retlist;
} }
public PrintedCard findByRfid(LanEvent event, String uid) {
TypedQuery<PrintedCard> q = em.createQuery("select pc from PrintedCard pc where pc.rfidUid = :uid and pc.id.eventId = :eventid ", PrintedCard.class);
q.setParameter("uid", uid);
q.setParameter("eventid", event.getId());
return getSingleNullableResult(q);
}
} }
package fi.insomnia.bortal.beans; package fi.insomnia.bortal.beans;
import javax.ejb.Local; import javax.ejb.Local;
import fi.insomnia.bortal.model.ReaderEvent;
@Local @Local
public interface ReaderBeanLocal { public interface ReaderBeanLocal {
boolean checkTag(String reader, String tag, String hash); ReaderEvent checkTag(String reader, String tag, String hash);
} }
...@@ -20,12 +20,15 @@ import javax.persistence.OneToMany; ...@@ -20,12 +20,15 @@ import javax.persistence.OneToMany;
import javax.persistence.Table; import javax.persistence.Table;
import javax.persistence.Temporal; import javax.persistence.Temporal;
import javax.persistence.TemporalType; import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;
/** /**
* *
*/ */
@Entity @Entity
@Table(name = "printed_cards") @Table(name = "printed_cards", uniqueConstraints = {
@UniqueConstraint(columnNames = { "rfid_uid", "event_id" }),
@UniqueConstraint(columnNames = { "barcode", "event_id" }) })
@NamedQueries({ @NamedQueries({
@NamedQuery(name = "PrintedCard.findAll", query = "SELECT p FROM PrintedCard p"), @NamedQuery(name = "PrintedCard.findAll", query = "SELECT p FROM PrintedCard p"),
...@@ -51,7 +54,7 @@ public class PrintedCard extends GenericEventChild { ...@@ -51,7 +54,7 @@ public class PrintedCard extends GenericEventChild {
private boolean enabled = true; private boolean enabled = true;
@Column(name = "rfid_uid") @Column(name = "rfid_uid")
private String rfidUid ; private String rfidUid;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "printedCard") @OneToMany(cascade = CascadeType.ALL, mappedBy = "printedCard")
private List<ReaderEvent> readerEvents; private List<ReaderEvent> readerEvents;
...@@ -144,13 +147,11 @@ public class PrintedCard extends GenericEventChild { ...@@ -144,13 +147,11 @@ public class PrintedCard extends GenericEventChild {
this.user = usersId; this.user = usersId;
} }
@Override @Override
public String toString() { public String toString() {
return "fi.insomnia.bortal.model.PrintedCard[id=" + getId() + "]"; return "fi.insomnia.bortal.model.PrintedCard[id=" + getId() + "]";
} }
public void setTemplate(CardTemplate template) { public void setTemplate(CardTemplate template) {
this.template = template; this.template = template;
} }
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
<ui:define name="metadata"> <ui:define name="metadata">
<f:metadata> <f:metadata>
<f:viewParam name="reader" value="#{rfidView.reader}" /> <f:viewParam name="reader" value="#{rfidView.reader}" />
<f:viewParam name="tag" value="#{rfdiView.tag}" /> <f:viewParam name="tag" value="#{rfidView.tag}" />
<f:viewParam name="hash" value="#{rfdiView.hash}" /> <f:viewParam name="hash" value="#{rfidView.hash}" />
</f:metadata> </f:metadata>
</ui:define> </ui:define>
<ui:define name="content"> <ui:define name="content">
......
...@@ -4,7 +4,6 @@ import javax.ejb.EJB; ...@@ -4,7 +4,6 @@ import javax.ejb.EJB;
import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped; import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel; import javax.faces.model.ListDataModel;
import javax.faces.model.ListDataModel;
import fi.insomnia.bortal.beans.EventBeanLocal; import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.EventMapBeanLocal; import fi.insomnia.bortal.beans.EventMapBeanLocal;
......
package fi.insomnia.bortal.view; package fi.insomnia.bortal.view;
import java.math.BigInteger;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -9,7 +8,6 @@ import javax.faces.bean.ManagedBean; ...@@ -9,7 +8,6 @@ import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped; import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel; import javax.faces.model.ListDataModel;
import org.jboss.weld.bean.builtin.EventBean;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
......
...@@ -4,6 +4,18 @@ ...@@ -4,6 +4,18 @@
*/ */
package fi.insomnia.bortal.view; 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.EventBeanLocal;
import fi.insomnia.bortal.beans.PlaceBeanLocal; import fi.insomnia.bortal.beans.PlaceBeanLocal;
import fi.insomnia.bortal.beans.PlaceMapBeanLocal; import fi.insomnia.bortal.beans.PlaceMapBeanLocal;
...@@ -11,25 +23,11 @@ import fi.insomnia.bortal.beans.UserBeanLocal; ...@@ -11,25 +23,11 @@ import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission; import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission; import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.exceptions.BortalCatchableException; import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.EventMap; import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Place; import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.User; import fi.insomnia.bortal.model.User;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* *
* @author tuukka * @author tuukka
......
...@@ -75,8 +75,11 @@ public class PasswordResetView extends GenericView { ...@@ -75,8 +75,11 @@ public class PasswordResetView extends GenericView {
logger.debug("billpath {}", path); logger.debug("billpath {}", path);
userbean.initPasswordReset(userObj, hashStr, path.toString()); userbean.initPasswordReset(userObj, hashStr, path.toString());
return "resetmailSent";
} }
return "resetmailSent"; mailuser = null;
this.addFaceMessage("passwordreset.usernotfound");
return null;
} }
public Integer getId() { public Integer getId() {
......
...@@ -5,27 +5,22 @@ ...@@ -5,27 +5,22 @@
package fi.insomnia.bortal.view; package fi.insomnia.bortal.view;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Iterator;
import java.util.List; import java.util.List;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped; import javax.faces.bean.SessionScoped;
import javax.faces.convert.Converter;
import javax.faces.model.DataModel; import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel; import javax.faces.model.ListDataModel;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.BillBeanLocal;
import fi.insomnia.bortal.beans.DiscountBeanLocal; import fi.insomnia.bortal.beans.DiscountBeanLocal;
import fi.insomnia.bortal.beans.ProductBeanLocal; import fi.insomnia.bortal.beans.ProductBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal; import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission; import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission; import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.BillLine;
import fi.insomnia.bortal.model.Discount; import fi.insomnia.bortal.model.Discount;
import fi.insomnia.bortal.model.EventMap; import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.Product; import fi.insomnia.bortal.model.Product;
......
...@@ -2,11 +2,11 @@ package fi.insomnia.bortal.view; ...@@ -2,11 +2,11 @@ package fi.insomnia.bortal.view;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped; import javax.faces.bean.RequestScoped;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.ReaderBeanLocal; import fi.insomnia.bortal.beans.ReaderBeanLocal;
import fi.insomnia.bortal.model.LanEvent; import fi.insomnia.bortal.model.ReaderEvent;
@ManagedBean(name = "rfidView") @ManagedBean(name = "rfidView")
@RequestScoped @RequestScoped
...@@ -17,9 +17,14 @@ public class RfidView extends GenericView { ...@@ -17,9 +17,14 @@ public class RfidView extends GenericView {
@EJB @EJB
private ReaderBeanLocal readerbean; private ReaderBeanLocal readerbean;
@ManagedProperty(value = "#{rfidContainer}")
private RfidContainer container;
public String readTag() { public String readTag() {
String ret = "Error"; String ret = "Error";
if (readerbean.checkTag(reader, tag, hash)) { ReaderEvent revent = readerbean.checkTag(reader, tag, hash);
getContainer().foundTag(reader, tag, revent);
if (revent != null) {
ret = "Ok"; ret = "Ok";
} }
return ret; return ret;
...@@ -49,4 +54,12 @@ public class RfidView extends GenericView { ...@@ -49,4 +54,12 @@ public class RfidView extends GenericView {
this.hash = hash; this.hash = hash;
} }
public void setContainer(RfidContainer container) {
this.container = container;
}
public RfidContainer getContainer() {
return container;
}
} }
...@@ -4,13 +4,10 @@ ...@@ -4,13 +4,10 @@
*/ */
package fi.insomnia.bortal.view; package fi.insomnia.bortal.view;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped; import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel; import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel; import javax.faces.model.ListDataModel;
...@@ -20,11 +17,9 @@ import org.slf4j.LoggerFactory; ...@@ -20,11 +17,9 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.EventBeanLocal; import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.RoleBeanLocal; import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.SecurityBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal; import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission; import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission; import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.handler.SessionHandler;
import fi.insomnia.bortal.model.Role; import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight; import fi.insomnia.bortal.model.RoleRight;
......
...@@ -258,6 +258,7 @@ user.accountEvents=Tilitapahtumat ...@@ -258,6 +258,7 @@ user.accountEvents=Tilitapahtumat
bill.billMarkedPaidMail.subject=[INSOMNIA] Lasku merkitty maksetuksi bill.billMarkedPaidMail.subject=[INSOMNIA] Lasku merkitty maksetuksi
bill.billMarkedPaidMail.message=Laskusi numero {0} on merkitty maksetuksi. Voit nyt siirty lippukauppaan varamaamaan haluamasi paikat. \nTervetuloa tapahtumaan!\n\nTerveisin,\nInsomnia lippupalvelu\nwww.insomnia.fi bill.billMarkedPaidMail.message=Laskusi numero {0} on merkitty maksetuksi. Voit nyt siirty lippukauppaan varamaamaan haluamasi paikat. \nTervetuloa tapahtumaan!\n\nTerveisin,\nInsomnia lippupalvelu\nwww.insomnia.fi
passwordreset.usernotfound=Annettua kyttjtunnusta ei lydy. Huomioi ett isot ja pienet kirjaimet ovat merkitsevi.
passwordreset.mailSubject=[INSOMNIA] Salasanan vaihtaminen passwordreset.mailSubject=[INSOMNIA] Salasanan vaihtaminen
passwordreset.mailBody=Voit vaihtaa salasanasi osoitteessa {0}\n\nJos et ole pyytnyt unohtuneen salasanan vaihtamista, ei thn viestiin tarvitse reagoida.\n\nTerveisin,\nInsomnia lippupalvelu\nwww.insomnia.fi passwordreset.mailBody=Voit vaihtaa salasanasi osoitteessa {0}\n\nJos et ole pyytnyt unohtuneen salasanan vaihtamista, ei thn viestiin tarvitse reagoida.\n\nTerveisin,\nInsomnia lippupalvelu\nwww.insomnia.fi
passwordReset.hashNotFound=Salasanan vaihto on vanhentunut. Jos haluat vaihtaa salasanan lhet vaihtopyynt uudelleen. passwordReset.hashNotFound=Salasanan vaihto on vanhentunut. Jos haluat vaihtaa salasanan lhet vaihtopyynt uudelleen.
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!