Commit a2492286 by Tuomas Riihimäki

Whoops... It's a tad too big commit...

1 parent 3b58dba8
Showing with 2692 additions and 575 deletions
......@@ -134,7 +134,7 @@ public class BortalLoginModule extends AppservPasswordLoginModule {
private void log(String s) {
System.out.println((new StringBuilder())
.append("SimpleCustomLoginModule::").append(s).toString());
.append("BortalLoginModule::").append(s).toString());
}
}
......@@ -42,7 +42,7 @@ public class AccountEventBean implements AccountEventBeanLocal {
@EJB
private ProductBeanLocal prodbean;
@EJB
private PlaceBeanLocal placebean;
private PlaceBean placebean;
@EJB
private PermissionBeanLocal permbean;
......
......@@ -10,6 +10,7 @@ import java.util.List;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
......@@ -35,6 +36,7 @@ import fi.insomnia.bortal.model.User;
* Session Bean implementation class BillBean
*/
@Stateless
@LocalBean
@DeclareRoles({ "BILL/READ", "USER_MANAGEMENT/EXECUTE", "USER_MANAGEMENT/READ" })
public class BillBean implements BillBeanLocal {
......@@ -55,7 +57,7 @@ public class BillBean implements BillBeanLocal {
private ProductBeanLocal productBean;
@EJB
private PlaceBeanLocal placebean;
private PlaceBean placebean;
@EJB
private PermissionBeanLocal permissionbean;
......
......@@ -71,6 +71,7 @@ public class JaasBean implements JaasBeanLocal, JaasBeanRemote {
HashSet<RoleRight> mappedRoles = new HashSet<RoleRight>();
List<Role> usrroles = userbean.localFindUsersRoles(usr);
for (Role r : usrroles) {
for (RoleRight rr : r.getRoleRights()) {
if (!mappedRoles.contains(rr)) {
......@@ -90,6 +91,7 @@ public class JaasBean implements JaasBeanLocal, JaasBeanRemote {
}
}
}
if (permbean.isLoggedIn()) {
roleset.add("USER");
}
......
package fi.insomnia.bortal.beans;
import java.util.Calendar;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.transaction.UserTransaction;
import org.slf4j.Logger;
import fi.insomnia.bortal.facade.LogEntryFacade;
import fi.insomnia.bortal.facade.LogEntryTypeFacade;
import fi.insomnia.bortal.model.LogEntry;
import fi.insomnia.bortal.model.LogEntryType;
import fi.insomnia.bortal.model.User;
/**
* Session Bean implementation class SercurityBean
*/
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class LoggingBean implements LoggingBeanLocal {
private static final boolean DEBUG = true;
private final Logger logger = org.slf4j.LoggerFactory.getLogger(LoggingBean.class);
@EJB
private LogEntryTypeFacade typeFacade;
@EJB
private LogEntryFacade entryFacade;
@Resource
UserTransaction utx;
// @Override
// public LogEntry logPermissionDenied(User user, Exception exception) {
// LogEntry entry = null;
//
// entry = logMessage(SecurityLogType.permissionDenied, user,
// exception.getMessage());
// logger.debug(entry.toString(), exception);
//
// return entry;
//
// }
//
// public LogEntry logException(User user, Exception exception) {
//
// LogEntry entry = logMessage(SecurityLogType.unknownException, user,
// exception.getMessage());
// logger.debug(entry.toString(), exception);
// return entry;
// }
//
// public LogEntry logMessage(User user, String... description) {
//
// LogEntry entry = logMessage(SecurityLogType.genericMessage, user,
// toString(description));
//
// return entry;
// }
//
// private static final String toString(String... desc) {
// StringBuilder msg = new StringBuilder();
// for (String msgpart : desc) {
// msg.append(msgpart);
// }
// return msg.toString();
// }
//
// public LogEntry logMessage(String... description) {
// LogEntry entry = logMessage(SecurityLogType.genericMessage,
// toString(description));
// return entry;
//
// }
// public LogEntry logPermissionDenied(User currentuser, String... message)
// {
// return logMessage(SecurityLogType.permissionDenied, currentuser,
// toString(message));
// }
@Override
public LogEntry logMessage(SecurityLogType paramType, User user, String... description) {
LogEntry entry = null;
try {
String desc = toString(description);
utx.begin();
LogEntryType type = typeFacade.findOrCreate(paramType);
entry = new LogEntry(Calendar.getInstance());
entry.setType(type);
entry.setDescription(desc);
entry.setUser(user);
entryFacade.create(entry);
if (DEBUG) {
logger.debug("SECURITY DEBUG: Type: \"{}\" user \"{}\", description \"{}\"", new String[] { paramType.name(), (user == null) ? "null" : user.getLogin(), desc });
}
utx.commit();
} catch (Exception e) {
logger.warn("Exception at SecurityBean", e);
}
return entry;
}
private static final String toString(String... desc) {
StringBuilder msg = new StringBuilder();
for (String msgpart : desc) {
msg.append(msgpart);
}
return msg.toString();
}
}
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import fi.insomnia.bortal.facade.NewsGroupFacade;
import fi.insomnia.bortal.model.EventPk;
import fi.insomnia.bortal.model.NewsGroup;
/**
* Session Bean implementation class NewsBean
*/
@Stateless
@LocalBean
@DeclareRoles({ "ROLE_MANAGEMENT/READ", "ROLE_MANAGEMENT/WRITE" })
public class NewsBean implements NewsBeanLocal {
@EJB
private NewsGroupFacade ngfacade;
@EJB
private EventBeanLocal eventbean;
@Override
public NewsGroup findByName(String groupname) {
return ngfacade.findByName(eventbean.getCurrentEvent(), groupname);
}
@Override
@RolesAllowed("ROLE_MANAGEMENT/READ")
public List<NewsGroup> findAll() {
return ngfacade.findAll(eventbean.getCurrentEvent());
}
@Override
@RolesAllowed("ROLE_MANAGEMENT/READ")
public NewsGroup findById(int newsgroupid) {
return ngfacade.find(eventbean.getCurrentEvent(), newsgroupid);
}
@Override
@RolesAllowed("ROLE_MANAGEMENT/WRITE")
public NewsGroup merge(NewsGroup newsgroup) {
return ngfacade.merge(newsgroup);
}
@Override
@RolesAllowed("ROLE_MANAGEMENT/WRITE")
public void createNewsgroup(NewsGroup newsgroup) {
newsgroup.setId(new EventPk(eventbean.getCurrentEvent()));
ngfacade.create(newsgroup);
}
}
package fi.insomnia.bortal.beans;
import java.security.Principal;
import javax.annotation.Resource;
import javax.annotation.security.DeclareRoles;
import javax.ejb.EJB;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.model.User;
@Stateless
@DeclareRoles({ "ANONYMOUS", "SUPERADMIN", "USER", "LOGIN/READ", "LOGIN/WRITE",
"LOGIN/EXECUTE", "USER_MANAGEMENT/READ", "USER_MANAGEMENT/WRITE",
"USER_MANAGEMENT/EXECUTE", "ACCOUNT_MANAGEMENT/READ",
"ACCOUNT_MANAGEMENT/WRITE", "ACCOUNT_MANAGEMENT/EXECUTE", "BILL/READ",
"BILL/WRITE", "BILL/EXECUTE", "MAP/READ", "MAP/WRITE", "MAP/EXECUTE",
"ROLE_MANAGEMENT/READ", "ROLE_MANAGEMENT/WRITE", "ROLE_MANAGEMENT/EXECUTE",
"PRODUCT/READ", "PRODUCT/WRITE", "PRODUCT/EXECUTE", "SHOP/READ",
"SHOP/WRITE", "SHOP/EXECUTE", "GAME/READ", "GAME/WRITE", "GAME/EXECUTE",
"POLL/READ", "POLL/WRITE", "POLL/EXECUTE" })
public class PermissionBean implements PermissionBeanLocal {
public static final String DEFAULT_USER_LOGIN = "anonymous";
private static final Logger logger = LoggerFactory.getLogger(PermissionBean.class);
@Resource
private SessionContext context;
@EJB
private LoggingBeanLocal loggingbean;
@EJB
private UserFacade userfacade;
private UserBean userbean;
//
// @Override
// public boolean hasPermission(String perm) {
// return context.isCallerInRole(perm);
// }
@Override
public boolean hasPermission(Permission target, RolePermission permission) {
return getCurrentUser().isSuperadmin()
|| context.isCallerInRole(target.append(permission));
// User user = getCurrentUser();
//
// Boolean ret = BortalLocalContextHolder.hasPermission(target,
// permission);
// // Boolean ret = BortalLocalContextHolder.hasPermission(target,
// // permission);
// if (ret == null) {
// try {
// for (Role role : userbean.findUsersRoles(user)) {
// if (role == null) {
// continue;
// }
//
// for (RoleRight rr : role.getRoleRights()) {
// BortalLocalContextHolder.setPermission(rr);
//
// ret = BortalLocalContextHolder.hasPermission(target, permission);
// if (ret != null) {
// break;
// }
//
// }
// if (ret != null) {
// break;
// }
// }
// } catch (PermissionDeniedException e) {
// logger.warn("Permission denied when it should be allowed!!", e);
// }
// }
//
// // TODO: FIX THIS!! really bad idea....
//
// if (user.isSuperadmin()) {
// return true;
// }
//
// if (ret == null) {
// ret = false;
// BortalLocalContextHolder.setPermission(target, permission, ret);
// }
//
// return ret;
}
@Override
public void fatalPermission(Permission target, RolePermission permission, Object... failmessage) throws PermissionDeniedException {
boolean ret = hasPermission(target, permission);
if (!ret) {
StringBuilder message = new StringBuilder("Target: ").append(target).append(" permission: ").append(permission);
if (failmessage == null || failmessage.length == 0) {
message.append(" MSG: SessionHandler mbean permission exception: Target: ")
.append(target)
.append(", Permission: ")
.append(permission);
} else {
for (Object part : failmessage) {
message.append(part == null ? "NULL" : part.toString());
}
}
// throw new SecurityException("Foobar");
throw new PermissionDeniedException(loggingbean, getCurrentUser(), message.toString());
}
}
@Override
public void fatalNotLoggedIn() throws PermissionDeniedException {
if (!isLoggedIn()) {
throw new PermissionDeniedException(loggingbean, getCurrentUser(), "User is not logged in!");
}
}
@Override
public boolean isCurrentUser(User user) {
return (context.getCallerPrincipal() == null || user == null) ? false : context.getCallerPrincipal().getName().equals(user.getLogin());
}
@Override
public boolean isLoggedIn() {
return !getAnonUser().equals(getCurrentUser()) || getCurrentUser().isSuperadmin();
}
@Override
public User getCurrentUser() {
Principal principal = context.getCallerPrincipal();
User ret = userfacade.findByLogin(principal.getName());
if (ret == null) {
ret = getAnonUser();
}
return ret;
}
/**
* Makes sure default user and public role exist and the user is member of
* the role.
*/
@Override
public User getAnonUser() {
User defaultUser = userfacade.findByLogin(DEFAULT_USER_LOGIN);
if (defaultUser == null) {
defaultUser = new User();
defaultUser.setLogin(DEFAULT_USER_LOGIN);
defaultUser.setNick(DEFAULT_USER_LOGIN);
userfacade.create(defaultUser);
defaultUser.setSuperadmin(true);
}
return defaultUser;
}
}
......@@ -52,7 +52,6 @@ public class RoleBean implements RoleBeanLocal {
return listRoles(eventBean.getCurrentEvent());
}
@Override
@RolesAllowed("ROLE_MANAGEMENT/READ")
public List<Role> listRoles(LanEvent event) {
return roleFacade.findAll(event);
......@@ -139,8 +138,8 @@ public class RoleBean implements RoleBeanLocal {
@Override
@RolesAllowed("ROLE_MANAGEMENT/READ")
public Role find(int id, LanEvent event) {
return roleFacade.find(event.getId(), id);
public Role find(int id) {
return roleFacade.find(eventBean.getCurrentEvent(), id);
}
}
package fi.insomnia.bortal.beans;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
......@@ -23,17 +25,20 @@ import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.facade.UserImageFacade;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.LanEvent;
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.util.MailMessage;
import fi.insomnia.bortal.utilities.I18n;
import fi.insomnia.bortal.utilities.PasswordFunctions;
/**
* Session Bean implementation class UserBean
*/
@LocalBean
@Stateless
@DeclareRoles({ "USER/EXECUTE" })
public class UserBean implements UserBeanLocal {
private static final Logger logger = LoggerFactory.getLogger(UserBean.class);
......@@ -44,6 +49,7 @@ public class UserBean implements UserBeanLocal {
*/
@EJB
private UserFacade userFacade;
@PersistenceContext
private EntityManager em;
......@@ -66,6 +72,8 @@ public class UserBean implements UserBeanLocal {
@EJB
private PermissionBeanLocal permbean;
private GroupMembershipFacade gmfacade;
@Override
@RolesAllowed("USER_MANAGEMENT/READ")
public List<User> getUsers() {
......@@ -259,4 +267,41 @@ public class UserBean implements UserBeanLocal {
public long getUsersCount(String search) {
return userFacade.searchUserCount(search);
}
@Override
@RolesAllowed("USER/EXECUTE")
public boolean invite(String invitemail) {
List<User> usercheck = userFacade.findByEmail(invitemail.trim());
if (usercheck.size() > 0) {
return false;
}
User creator = permbean.getCurrentUser();
LanEvent ev = eventBean.getCurrentEvent();
PlaceGroup pg = new PlaceGroup(ev, Calendar.getInstance(), Calendar.getInstance(), false);
pg.setCreator(creator);
pg.setName("Invitebean");
String token = PasswordFunctions.generateRandomString(30, PasswordFunctions.ALL_CHARS);
pg.getMembers().add(new GroupMembership(ev, pg, null, token));
creator.getPlaceGroups().add(pg);
return true;
}
@Override
public GroupMembership findToken(String token) {
return gmfacade.findToken(token);
}
@Override
public void createFromToken(User user, GroupMembership gm) {
gm = gmfacade.merge(gm);
gm.setUser(user);
gm.setInviteAccepted(Calendar.getInstance());
userFacade.create(user);
}
}
......@@ -12,7 +12,7 @@ import java.util.Date;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.Local;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.imageio.ImageIO;
import javax.jms.JMSException;
......@@ -33,7 +33,7 @@ import fi.insomnia.bortal.util.MailMessage;
* Session Bean implementation class UtilBean
*/
@Stateless
@Local
@LocalBean
public class UtilBean implements UtilBeanLocal {
private static final Logger logger = LoggerFactory.getLogger(UtilBean.class);
......
......@@ -21,95 +21,97 @@ import fi.insomnia.bortal.model.LanEvent;
*/
public abstract class EventChildGenericFacade<T extends EventChildInterface> {
private static final Logger logger = LoggerFactory.getLogger(EventChildGenericFacade.class);
public T find(Integer eventId, Integer id) {
EventPk pk = new EventPk(eventId, id);
return find(pk);
}
public long count(LanEvent e) {
CriteriaBuilder builder = getEm().getCriteriaBuilder();
CriteriaQuery<Long> query = builder.createQuery(Long.class);
Root<T> entity = query.from(getEntityClass());
query.where(builder.equal(entity.get("id").get("eventId"), e.getId())).select(getEm().getCriteriaBuilder().count(entity));
TypedQuery<Long> q = getEm().createQuery(query);
return q.getSingleResult();
}
private Class<T> entClass;
public EventChildGenericFacade(Class<T> entityClass) {
this.entClass = entityClass;
}
protected Class<T> getEntityClass() {
return entClass;
}
protected abstract EntityManager getEm();
public void create(T entity) {
getEm().persist(entity);
}
public void remove(T entity) {
getEm().remove(entity);
}
public T merge(T entity) {
return getEm().merge(entity);
}
public T find(EventPk id) {
T ret = getEm().find(getEntityClass(), id);
return ret;
}
public List<T> findAll(LanEvent event) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<T> cq = cb.createQuery(getEntityClass());
Root<T> root = cq.from(getEntityClass());
cq.where(cb.equal(root.get("id").get("eventId"), event.getId()));
cq.orderBy(cb.asc(root.get("id").get("id")));
return getEm().createQuery(cq).getResultList();
}
public List<T> findRange(LanEvent event, int[] range) {
CriteriaQuery<T> cq = getEm().getCriteriaBuilder().createQuery(getEntityClass());
cq.select(cq.from(getEntityClass()));
TypedQuery<T> q = getEm().createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}
protected static <K> K getSingleNullableResult(TypedQuery<K> q) {
K ret = null;
try {
ret = q.getSingleResult();
} catch (NoResultException e) {
ret = null;
}
return ret;
}
public void evict(T entity) {
if (entity != null && entity.getId() != null) {
getEm().getEntityManagerFactory().getCache().evict(getEntityClass(), entity.getId());
}
}
public void evictClass() {
getEm().getEntityManagerFactory().getCache().evict(getClass());
}
private static final Logger logger = LoggerFactory.getLogger(EventChildGenericFacade.class);
public T find(LanEvent e, Integer id) {
return find(e.getId(), id);
}
public T find(Integer eventId, Integer id) {
EventPk pk = new EventPk(eventId, id);
return find(pk);
}
public long count(LanEvent e) {
CriteriaBuilder builder = getEm().getCriteriaBuilder();
CriteriaQuery<Long> query = builder.createQuery(Long.class);
Root<T> entity = query.from(getEntityClass());
query.where(builder.equal(entity.get("id").get("eventId"), e.getId())).select(getEm().getCriteriaBuilder().count(entity));
TypedQuery<Long> q = getEm().createQuery(query);
return q.getSingleResult();
}
private final Class<T> entClass;
public EventChildGenericFacade(Class<T> entityClass) {
this.entClass = entityClass;
}
protected Class<T> getEntityClass() {
return entClass;
}
protected abstract EntityManager getEm();
public void create(T entity) {
getEm().persist(entity);
}
public void remove(T entity) {
getEm().remove(entity);
}
public T merge(T entity) {
return getEm().merge(entity);
}
public T find(EventPk id) {
T ret = getEm().find(getEntityClass(), id);
return ret;
}
public List<T> findAll(LanEvent event) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<T> cq = cb.createQuery(getEntityClass());
Root<T> root = cq.from(getEntityClass());
cq.where(cb.equal(root.get("id").get("eventId"), event.getId()));
cq.orderBy(cb.asc(root.get("id").get("id")));
return getEm().createQuery(cq).getResultList();
}
public List<T> findRange(LanEvent event, int[] range) {
CriteriaQuery<T> cq = getEm().getCriteriaBuilder().createQuery(getEntityClass());
cq.select(cq.from(getEntityClass()));
TypedQuery<T> q = getEm().createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}
protected static <K> K getSingleNullableResult(TypedQuery<K> q) {
K ret = null;
try {
ret = q.getSingleResult();
} catch (NoResultException e) {
ret = null;
}
return ret;
}
public void evict(T entity) {
if (entity != null && entity.getId() != null) {
getEm().getEntityManagerFactory().getCache().evict(getEntityClass(), entity.getId());
}
}
public void evictClass() {
getEm().getEntityManagerFactory().getCache().evict(getClass());
}
}
......@@ -22,134 +22,135 @@ import fi.insomnia.bortal.model.ModelInterface;
*/
public abstract class GenericFacade<PK, T extends ModelInterface> {
private static final Logger logger = LoggerFactory.getLogger(GenericFacade.class);
private final Class<T> entClass;
public GenericFacade(Class<T> entityClass) {
this.entClass = entityClass;
}
protected Class<T> getEntityClass() {
return entClass;
}
protected abstract EntityManager getEm();
public void create(T entity) {
getEm().persist(entity);
}
public void remove(T entity) {
getEm().remove(entity);
}
public T merge(T entity) {
return getEm().merge(entity);
}
public T find(PK id) {
if (id == null) {
return null;
}
T ret = getEm().find(getEntityClass(), id);
return ret;
}
public List<T> findAll() {
return findAll(null);
}
public List<T> findAll(String sort) {
return search(0, 0, null, null, sort);
}
public List<T> findRange(int[] range) {
CriteriaQuery<T> cq = getEm().getCriteriaBuilder().createQuery(getEntityClass());
cq.select(cq.from(getEntityClass()));
TypedQuery<T> q = getEm().createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}
public long count() {
CriteriaQuery<Long> cq = getEm().getCriteriaBuilder().createQuery(Long.class);
Root<T> rt = cq.from(getEntityClass());
cq.select(getEm().getCriteriaBuilder().count(rt));
TypedQuery<Long> q = getEm().createQuery(cq);
return q.getSingleResult();
}
protected static <K> K getSingleNullableResult(TypedQuery<K> q) {
K ret = null;
try {
ret = q.getSingleResult();
} catch (NoResultException e) {
ret = null;
}
return ret;
}
public void evict(T entity) {
if (entity != null && entity.getId() != null) {
getEm().getEntityManagerFactory().getCache().evict(getEntityClass(), entity.getId());
}
}
protected List<T> search(String query, String[] fields, String orderfield) {
return search(0, 0, query, fields, orderfield);
}
protected List<T> search(int page, int pagesize, String query, String[] fields, String orderfield) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<T> cq = cb.createQuery(getEntityClass());
Root<T> root = cq.from(getEntityClass());
if (query != null && !query.isEmpty()) {
addPredicates(cb, cq, root, query, fields);
}
if (orderfield != null) {
cq.orderBy(cb.asc(root.get(orderfield)));
}
cq.select(root);
TypedQuery<T> q = getEm().createQuery(cq);
if (pagesize > 0) {
q.setFirstResult(page * pagesize);
q.setMaxResults(pagesize);
}
List<T> ret = q.getResultList();
return ret;
}
protected long searchCount(String query, String[] fields) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class);
Root<T> root = cq.from(getEntityClass());
if (query != null && !query.isEmpty()) {
addPredicates(cb, cq, root, query, fields);
}
cq.select(getEm().getCriteriaBuilder().count(root));
TypedQuery<Long> q = getEm().createQuery(cq);
return q.getSingleResult();
}
private void addPredicates(CriteriaBuilder cb, CriteriaQuery<?> cq, Root<T> root, String query, String[] fields) {
List<Predicate> preds = new ArrayList<Predicate>();
for (String field : fields) {
Path<String> rootfield = root.get(field);
preds.add(cb.like(cb.lower(rootfield), query));
}
cq.where(cb.or(preds.toArray(new Predicate[preds.size()])));
}
private static final Logger logger = LoggerFactory.getLogger(GenericFacade.class);
private final Class<T> entClass;
public GenericFacade(Class<T> entityClass) {
this.entClass = entityClass;
}
protected Class<T> getEntityClass() {
return entClass;
}
protected abstract EntityManager getEm();
public void create(T entity) {
getEm().persist(entity);
}
public void remove(T entity) {
getEm().remove(entity);
}
public T merge(T entity) {
return getEm().merge(entity);
}
public T find(PK id) {
if (id == null) {
return null;
}
T ret = getEm().find(getEntityClass(), id);
return ret;
}
public List<T> findAll() {
return findAll(null);
}
public List<T> findAll(String sort) {
return search(0, 0, null, null, sort);
}
public List<T> findRange(int[] range) {
CriteriaQuery<T> cq = getEm().getCriteriaBuilder().createQuery(getEntityClass());
cq.select(cq.from(getEntityClass()));
TypedQuery<T> q = getEm().createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}
public long count() {
CriteriaQuery<Long> cq = getEm().getCriteriaBuilder().createQuery(Long.class);
Root<T> rt = cq.from(getEntityClass());
cq.select(getEm().getCriteriaBuilder().count(rt));
TypedQuery<Long> q = getEm().createQuery(cq);
return q.getSingleResult();
}
protected static <K> K getSingleNullableResult(TypedQuery<K> q) {
K ret = null;
try {
ret = q.getSingleResult();
} catch (NoResultException e) {
ret = null;
}
return ret;
}
public void evict(T entity) {
if (entity != null && entity.getId() != null) {
getEm().getEntityManagerFactory().getCache().evict(getEntityClass(), entity.getId());
}
}
protected List<T> search(String query, String[] fields, String orderfield) {
return search(0, 0, query, fields, orderfield);
}
protected List<T> search(int page, int pagesize, String query, String[] fields, String orderfield) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<T> cq = cb.createQuery(getEntityClass());
Root<T> root = cq.from(getEntityClass());
if (query != null && !query.isEmpty()) {
addPredicates(cb, cq, root, query, fields);
}
if (orderfield != null) {
cq.orderBy(cb.asc(root.get(orderfield)));
}
cq.select(root);
TypedQuery<T> q = getEm().createQuery(cq);
if (pagesize > 0) {
logger.debug("Setting pagesize {} at facade", pagesize);
q.setFirstResult(page * pagesize);
q.setMaxResults(pagesize);
}
List<T> ret = q.getResultList();
return ret;
}
protected long searchCount(String query, String[] fields) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class);
Root<T> root = cq.from(getEntityClass());
if (query != null && !query.isEmpty()) {
addPredicates(cb, cq, root, query, fields);
}
cq.select(getEm().getCriteriaBuilder().count(root));
TypedQuery<Long> q = getEm().createQuery(cq);
return q.getSingleResult();
}
private void addPredicates(CriteriaBuilder cb, CriteriaQuery<?> cq, Root<T> root, String query, String[] fields) {
List<Predicate> preds = new ArrayList<Predicate>();
for (String field : fields) {
Path<String> rootfield = root.get(field);
preds.add(cb.like(cb.lower(rootfield), query));
}
cq.where(cb.or(preds.toArray(new Predicate[preds.size()])));
}
}
......@@ -20,49 +20,58 @@ import fi.insomnia.bortal.utilities.PasswordFunctions;
@LocalBean
public class GroupMembershipFacade extends EventChildGenericFacade<GroupMembership> {
private static final Logger logger = LoggerFactory.getLogger(GroupMembershipFacade.class);
@PersistenceContext
private EntityManager em;
private static final Logger logger = LoggerFactory.getLogger(GroupMembershipFacade.class);
@PersistenceContext
private EntityManager em;
public GroupMembershipFacade() {
super(GroupMembership.class);
}
public GroupMembershipFacade() {
super(GroupMembership.class);
}
protected EntityManager getEm() {
return em;
}
@Override
protected EntityManager getEm() {
return em;
}
public String createInviteToken(LanEvent event) {
String token = null;
GroupMembership gm = null;
do {
if (token != null) {
logger.info("Generated token {} found from GoupMembership: {} Generating new!", token, gm);
}
token = event.getId().toString();
token += PasswordFunctions.generateRandomString(15);
gm = findByToken(token);
} while (gm != null);
return token;
}
public String createInviteToken(LanEvent event) {
String token = null;
GroupMembership gm = null;
do {
if (token != null) {
logger.info("Generated token {} found from GoupMembership: {} Generating new!", token, gm);
}
token = event.getId().toString();
token += PasswordFunctions.generateRandomString(15);
gm = findByToken(token);
} while (gm != null);
return token;
}
public GroupMembership findByToken(String token) {
TypedQuery<GroupMembership> q = em.createQuery("Select gm from GroupMembership gm where gm.inviteToken = :token ", GroupMembership.class);
q.setParameter("token", token);
return getSingleNullableResult(q);
}
public GroupMembership findByToken(String token) {
TypedQuery<GroupMembership> q = em.createQuery("Select gm from GroupMembership gm where gm.inviteToken = :token ", GroupMembership.class);
q.setParameter("token", token);
return getSingleNullableResult(q);
}
public List<GroupMembership> findMemberOrCreator(LanEvent event, User user) {
TypedQuery<GroupMembership> p = em.createQuery("select gm from GroupMembership gm where gm.id.eventId = :eventid and (gm.placeGroup.creator = :user or gm.user = :user) order by gm.placeReservation.name", GroupMembership.class);
p.setParameter("eventid", event.getId());
p.setParameter("user", user);
return p.getResultList();
}
public List<GroupMembership> findMemberships(LanEvent event, User user) {
TypedQuery<GroupMembership> p = em.createQuery("select gm from GroupMembership gm where gm.id.eventId = :eventid and gm.user = :user", GroupMembership.class);
p.setParameter("eventid", event.getId());
p.setParameter("user", user);
return p.getResultList();
}
public GroupMembership findToken(String token) {
TypedQuery<GroupMembership> q = em.createQuery("select gm from GroupMembership gm where gm.inviteEmail = :mail", GroupMembership.class);
q.setParameter("mail", token);
return getSingleNullableResult(q);
}
public List<GroupMembership> findMemberOrCreator(LanEvent event, User user) {
TypedQuery<GroupMembership> p = em.createQuery("select gm from GroupMembership gm where gm.id.eventId = :eventid and (gm.placeGroup.creator = :user or gm.user = :user) order by gm.placeReservation.name",GroupMembership.class);
p.setParameter("eventid", event.getId());
p.setParameter("user", user);
return p.getResultList();
}
public List<GroupMembership> findMemberships(LanEvent event, User user) {
TypedQuery<GroupMembership> p = em.createQuery("select gm from GroupMembership gm where gm.id.eventId = :eventid and gm.user = :user",GroupMembership.class);
p.setParameter("eventid", event.getId());
p.setParameter("user", user);
return p.getResultList();
}
}
package fi.insomnia.bortal.facade;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.List;
import javax.ejb.LocalBean;
......@@ -9,119 +9,159 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.Place_;
import fi.insomnia.bortal.model.User;
@Stateless
@LocalBean
public class PlaceFacade extends EventChildGenericFacade<Place> {
private static final Logger logger = LoggerFactory.getLogger(PlaceFacade.class);
@PersistenceContext
private EntityManager em;
public PlaceFacade() {
super(Place.class);
}
protected EntityManager getEm() {
return em;
}
public boolean reservePlace(Place p, User reserver) {
boolean ret = p.reserve(reserver);
merge(p);
return ret;
}
//
// public List<Place> find(LanEvent event, List<Integer> placeIds) {
// if (placeIds == null || placeIds.size() <= 0) {
// return new ArrayList<Place>();
// }
//
// TypedQuery<Place> q =
// em.createQuery("Select p from Place p where p.id.eventId = :eventid and p.id.id IN :places",
// Place.class);
// q.setParameter("eventid", event.getId());
// q.setParameter("places", placeIds);
// return q.getResultList();
// }
public void timeoutPlaces() {
TypedQuery<Place> q = em.createQuery("SELECT p from Place p where p.releaseTime < CURRENT_TIMESTAMP", Place.class);
int updated = timeoutPlaces(q.getResultList(), true);
if (updated > 0) {
logger.info("{} places released for sale after release time exceeded.", updated);
}
}
private int timeoutPlaces(List<Place> places, boolean checkFromEntity) {
int updated = 0;
for (Place p : places) {
logger.debug("Releasing place {} at automagic timed place check.", p);
if (!checkFromEntity || p.checkReleased()) {
++updated;
merge(p);
}
}
// logger.debug("Checking timeouted places took: {} ms",
// Calendar.getInstance().getTimeInMillis()-begin.getTimeInMillis());
return updated;
}
public Long countSelectable(EventMap map) {
if (map == null) {
return null;
}
TypedQuery<Place> q = em.createQuery("SELECT p from Place p where p.map = :map and p.releaseTime is null", Place.class);
q.setParameter("map", map);
long count = 0;
for (Place p : q.getResultList()) {
if (p.getGroup() == null) {
++count;
}
}
return count;
}
public boolean releasePlace(User user, Place place) {
boolean ret = place.release(user);
merge(place);
return ret;
}
public List<Place> findUsersReservations(EventMap map, User user) {
TypedQuery<Place> q = em.createQuery("select p from Place p where p.map = :map and p.currentUser = :user and p.releaseTime is not null", Place.class);
q.setParameter("map", map);
q.setParameter("user", user);
return q.getResultList();
}
public void releasePlaces(User user) {
TypedQuery<Place> q = em.createQuery("SELECT p from Place p where p.releaseTime < CURRENT_TIMESTAMP and currentUser = :user", Place.class);
q.setParameter("user", user);
int updated = timeoutPlaces(q.getResultList(), false);
logger.debug("Released {} places from user {}", updated, user);
}
public int setBuyable(EventMap map, String like, boolean b) {
Query q = em.createQuery("UPDATE Place p set p.buyable = :b where p.name like :like");
q.setParameter("b", b);
q.setParameter("like", like);
return q.executeUpdate();
}
private static final Logger logger = LoggerFactory.getLogger(PlaceFacade.class);
@PersistenceContext
private EntityManager em;
public PlaceFacade() {
super(Place.class);
}
@Override
protected EntityManager getEm() {
return em;
}
//
// public boolean reservePlace(Place p, User reserver) {
// boolean ret = p.reserve(reserver);
// merge(p);
// return ret;
// }
//
// public List<Place> find(LanEvent event, List<Integer> placeIds) {
// if (placeIds == null || placeIds.size() <= 0) {
// return new ArrayList<Place>();
// }
//
// TypedQuery<Place> q =
// em.createQuery("Select p from Place p where p.id.eventId = :eventid and p.id.id IN :places",
// Place.class);
// q.setParameter("eventid", event.getId());
// q.setParameter("places", placeIds);
// return q.getResultList();
// }
public void timeoutPlaces() {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Place> cq = cb.createQuery(Place.class);
Root<Place> root = cq.from(Place.class);
cq.select(root);
cq.where(cb.lessThan(root.get(Place_.releaseTime), Calendar.getInstance()));
TypedQuery<Place> q = getEm().createQuery(cq);
int updated = timeoutPlaces(q.getResultList(), true);
if (updated > 0) {
logger.info("{} places released for sale after release time exceeded.", updated);
}
}
private int timeoutPlaces(List<Place> places, boolean checkFromEntity) {
int updated = 0;
for (Place p : places) {
logger.debug("Releasing place {} at automagic timed place check.", p);
if (!checkFromEntity || p.checkReleased()) {
++updated;
merge(p);
}
}
// logger.debug("Checking timeouted places took: {} ms",
// Calendar.getInstance().getTimeInMillis()-begin.getTimeInMillis());
return updated;
}
public Long countSelectable(EventMap map) {
if (map == null) {
return null;
}
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Place> cq = cb.createQuery(Place.class);
Root<Place> root = cq.from(Place.class);
cq.select(root);
cq.where(
cb.and(
cb.equal(root.get(Place_.map), map),
cb.isNull(root.get(Place_.releaseTime))
));
TypedQuery<Place> q = getEm().createQuery(cq);
long count = 0;
for (Place p : q.getResultList()) {
if (p.getGroup() == null) {
++count;
}
}
return count;
}
public List<Place> findUsersReservations(LanEvent event, User user) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Place> cq = cb.createQuery(Place.class);
Root<Place> root = cq.from(Place.class);
cq.select(root);
cq.where(
cb.and(
cb.equal(root.get(Place_.event), event),
cb.equal(root.get(Place_.currentUser), user)
));
TypedQuery<Place> q = getEm().createQuery(cq);
return q.getResultList();
}
public void releasePlaces(User user) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Place> cq = cb.createQuery(Place.class);
Root<Place> root = cq.from(Place.class);
cq.select(root);
cq.where(
cb.and(
cb.lessThan(root.get(Place_.releaseTime), Calendar.getInstance()),
cb.equal(root.get(Place_.currentUser), user)
));
TypedQuery<Place> q = getEm().createQuery(cq);
int updated = timeoutPlaces(q.getResultList(), false);
logger.debug("Released {} places from user {}", updated, user);
}
public int setBuyable(EventMap map, String like, boolean b) {
Query q = em.createQuery("UPDATE Place p set p.buyable = :b where p.name like :like");
q.setParameter("b", b);
q.setParameter("like", like);
return q.executeUpdate();
}
}
......@@ -5,47 +5,60 @@ import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Reader;
import fi.insomnia.bortal.model.Reader_;
@Stateless
@LocalBean
public class ReaderFacade extends EventChildGenericFacade<Reader> {
@PersistenceContext
private EntityManager em;
public ReaderFacade() {
super(Reader.class);
}
protected EntityManager getEm() {
return em;
}
public Reader findByIdent(LanEvent event, String reader) {
TypedQuery<Reader> q = em.createQuery("select r from Reader r where r.id.eventId = :eventid and r.identification = :ident", Reader.class);
q.setParameter("eventid", event.getId());
q.setParameter("ident", reader);
return getSingleNullableResult(q);
}
public Reader findOrCreateByIdent(LanEvent ev, String ident) {
Reader ret = findByIdent(ev, ident);
if (ret == null) {
ret = createIdent(this, ev, ident);
}
return ret;
}
private static synchronized Reader createIdent(ReaderFacade rf, LanEvent ev, String ident) {
Reader ret = rf.findByIdent(ev, ident);
if (ret == null) {
ret = new Reader(ev, ident);
ret.setDescription("Automagically created");
rf.create(ret);
}
return ret;
}
@PersistenceContext
private EntityManager em;
public ReaderFacade() {
super(Reader.class);
}
@Override
protected EntityManager getEm() {
return em;
}
public Reader findByIdent(LanEvent event, String reader) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Reader> cq = cb.createQuery(Reader.class);
Root<Reader> root = cq.from(Reader.class);
cq.select(root);
TypedQuery<Reader> q = getEm().createQuery(cq);
cq.where(
cb.and(
cb.equal(root.get(Reader_.event), event),
cb.equal(root.get(Reader_.identification), reader)));
return getSingleNullableResult(q);
}
public Reader findOrCreateByIdent(LanEvent ev, String ident) {
Reader ret = findByIdent(ev, ident);
if (ret == null) {
ret = createIdent(this, ev, ident);
}
return ret;
}
private static synchronized Reader createIdent(ReaderFacade rf, LanEvent ev, String ident) {
Reader ret = rf.findByIdent(ev, ident);
if (ret == null) {
ret = new Reader(ev, ident);
ret.setDescription("Automagically created");
rf.create(ret);
}
return ret;
}
}
......@@ -12,6 +12,9 @@ import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
......@@ -20,50 +23,53 @@ import fi.insomnia.bortal.model.RoleRight;
@LocalBean
public class RoleRightFacade extends EventChildGenericFacade<RoleRight> {
@PersistenceContext
private EntityManager em;
@PersistenceContext
private EntityManager em;
private static final Logger logger = LoggerFactory.getLogger(RoleRightFacade.class);
public RoleRightFacade() {
super(RoleRight.class);
}
public RoleRightFacade() {
super(RoleRight.class);
}
@Override
protected EntityManager getEm() {
return em;
}
protected EntityManager getEm() {
return em;
}
public RoleRight find(Permission permission, Role role) {
if (permission == null || role == null) {
return null;
}
TypedQuery<RoleRight> q = this.getEm().createNamedQuery("RoleRight.findByRightAndRole", RoleRight.class);
q.setParameter("permission", permission);
q.setParameter("role", role);
return getSingleNullableResult(q);
}
public RoleRight find(Permission permission, Role role) {
TypedQuery<RoleRight> q = this.getEm().createNamedQuery("RoleRight.findByRightAndRole", RoleRight.class);
q.setParameter("permission", permission);
q.setParameter("role", role);
return getSingleNullableResult(q);
}
public List<RoleRight> find(Collection<Role> roles, Permission permission) {
if (roles.size() == 0) {
return new ArrayList<RoleRight>();
}
TypedQuery<RoleRight> q = getEm().createNamedQuery("RoleRight.findByRolesForPermission", RoleRight.class);
Set<Integer> roleids = new HashSet<Integer>();
public List<RoleRight> find(Collection<Role> roles, Permission permission) {
if(roles.size() == 0)
{
return new ArrayList<RoleRight>();
}
TypedQuery<RoleRight> q = getEm().createNamedQuery("RoleRight.findByRolesForPermission", RoleRight.class);
Set<Integer> roleids = new HashSet<Integer>();
for(Role r: roles)
{
roleids.add(r.getId().getId());
}
Integer eventId = roles.iterator().next().getEvent().getId();
for (Role r : roles) {
roleids.add(r.getId().getId());
}
Integer eventId = roles.iterator().next().getEvent().getId();
q.setParameter("eventId", eventId);
q.setParameter("roleids", roleids);
q.setParameter("permission", permission);
return q.getResultList();
}
q.setParameter("eventId", eventId);
q.setParameter("roleids", roleids);
q.setParameter("permission", permission);
return q.getResultList();
}
public RoleRight createRoleRight(Role role, Permission perm) {
RoleRight ret = new RoleRight(role, perm, false, false, false);
create(ret);
getEm().flush();
return ret;
public RoleRight createRoleRight(Role role, Permission perm) {
RoleRight ret = new RoleRight(role, perm, false, false, false);
create(ret);
getEm().flush();
return ret;
}
}
}
......@@ -85,4 +85,10 @@ public class UserFacade extends GenericFacade<Integer, User> {
return this.searchCount(query, NAMEFIELDS);
}
public List<User> findByEmail(String email) {
TypedQuery<User> q = em.createQuery("SELECT u from User u where u.email = :usr", User.class);
q.setParameter("usr", email);
return q.getResultList();
}
}
......@@ -15,14 +15,14 @@ import fi.insomnia.bortal.model.User;
@Local
public interface AccountEventBeanLocal {
AccountEvent merge(AccountEvent account);
AccountEvent merge(AccountEvent account);
void delete(AccountEvent account);
void delete(AccountEvent account);
AccountEvent find(EventPk id);
AccountEvent find(EventPk id);
List<Role> getRolesFromAccountEvents(User u);
List<Role> getRolesFromAccountEvents(User u);
List<AccountEvent> shopCash(User shoppingUser, Map<Product, BigDecimal> shopMap, boolean buyInstant);
List<AccountEvent> shopCash(User shoppingUser, Map<Product, BigDecimal> shopMap, boolean buyInstant) throws PermissionDeniedException;
}
package fi.insomnia.bortal.beans;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.Calendar;
......@@ -17,22 +17,18 @@ import fi.insomnia.bortal.model.User;
@Local
public interface BillBeanLocal {
Bill findById( int id);
Bill createEmptyBill(User shoppingUser);
BillLine addProductToBill(Bill bill, Product product, BigDecimal count);
Bill findById(int id) throws PermissionDeniedException;
List<Bill> findAll();
Bill createEmptyBill(User shoppingUser) throws PermissionDeniedException;
Collection<BillSummary> getBillLineSummary();
BillLine addProductToBill(Bill bill, Product product, BigDecimal count) throws PermissionDeniedException;
List<Bill> findAll();
void markPaid(Bill bill, Calendar when);
Collection<BillSummary> getBillLineSummary();
void getPdfBillStream(Bill bill, OutputStream ostream);
void markPaid(Bill bill, Calendar when);
void getPdfBillStream(Bill bill, OutputStream ostream);
}
......@@ -11,20 +11,20 @@ import fi.insomnia.bortal.model.User;
@Local
public interface CardTemplateBeanLocal {
List<CardTemplate> findAll();
List<CardTemplate> findAll();
void create(CardTemplate card);
void create(CardTemplate card);
CardTemplate findById(Integer id);
CardTemplate findById(Integer id);
PrintedCard checkPrintedCard(User user);
PrintedCard checkPrintedCard(User user) throws PermissionDeniedException;
void checkAllUsersCardRights();
void checkAllUsersCardRights() throws PermissionDeniedException;
PrintedCard setRfidUid(String tag, User user);
PrintedCard setRfidUid(String tag, User user) throws PermissionDeniedException;
PrintedCard setRfidUid(String tag, PrintedCard card);
PrintedCard setRfidUid(String tag, PrintedCard card);
List<PrintedCard> findActiveCards();
List<PrintedCard> findActiveCards();
}
package fi.insomnia.bortal.beans;
import java.math.BigDecimal;
import javax.ejb.Local;
import fi.insomnia.bortal.model.Discount;
import fi.insomnia.bortal.model.Product;
@Local
public interface DiscountBeanLocal {
Discount save(Discount discount);
Discount save(Discount discount);
Discount create(String discountdesc);
Discount create(String discountdesc);
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.model.LanEvent;
@Local
public interface EventBeanLocal {
static final String HTTP_URL_HOSTNAME = "HTTP_URL_HOSTNAME";
static final String HTTP_URL_HOSTNAME = "HTTP_URL_HOSTNAME";
LanEvent getEventByHostname(String hostname);
LanEvent getEventByHostname(String hostname);
LanEvent getCurrentEvent();
LanEvent getCurrentEvent();
LanEvent mergeChanges(LanEvent event);
LanEvent mergeChanges(LanEvent event) throws PermissionDeniedException;
void create(LanEvent event);
void create(LanEvent event) throws PermissionDeniedException;
String flushCache();
String flushCache();
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.LanEvent;
@Local
public interface EventMapBeanLocal {
EventMap saveMap(EventMap eventmap);
EventMap saveMap(EventMap eventmap);
EventMap create(String mapname);
EventMap create(String mapname) throws PermissionDeniedException;
void sendImage(int destId, byte[] imagedata);
void sendImage(int destId, byte[] imagedata);
}
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
......@@ -8,12 +9,12 @@ import fi.insomnia.bortal.model.EventOrganiser;
@Local
public interface EventOrganiserBeanLocal {
void save(EventOrganiser eventorg);
void save(EventOrganiser eventorg) throws PermissionDeniedException;
void fatalPermission(EventOrganiser eventorg);
void fatalPermission(EventOrganiser eventorg) throws PermissionDeniedException;
List<EventOrganiser> getEventOrganisers();
List<EventOrganiser> getEventOrganisers() throws PermissionDeniedException;
EventOrganiser create(String createorgname);
EventOrganiser create(String createorgname);
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.model.LogEntry;
import fi.insomnia.bortal.model.User;
@Local
public interface LoggingBeanLocal {
LogEntry logMessage(SecurityLogType paramType, User user, String... description);
}
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.NewsGroup;
@Local
public interface NewsBeanLocal {
NewsGroup findByName(String groupname);
List<NewsGroup> findAll();
NewsGroup findById(int newsgroupid);
NewsGroup merge(NewsGroup newsgroup);
void createNewsgroup(NewsGroup newsgroup);
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.User;
@Local
public interface PermissionBeanLocal {
boolean hasPermission(Permission target, RolePermission permission);
User getCurrentUser();
boolean isLoggedIn();
boolean isCurrentUser(User thisuser);
void fatalPermission(Permission target, RolePermission permission, Object... failmessage) throws PermissionDeniedException;
void fatalNotLoggedIn() throws PermissionDeniedException;
User getAnonUser();
// boolean hasPermission(String perm);
}
package fi.insomnia.bortal.beans;
import fi.insomnia.bortal.model.User;
public class PermissionDeniedException extends Exception {
public PermissionDeniedException(LoggingBeanLocal bean, User user, String message) {
super(message);
bean.logMessage(SecurityLogType.permissionDenied, user, this.getMessage());
}
/**
*
*/
private static final long serialVersionUID = -5845504817243929548L;
}
......@@ -13,7 +13,6 @@ import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.EventPk;
import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.User;
/**
......@@ -24,28 +23,22 @@ import fi.insomnia.bortal.model.User;
// @RemoteDestination
public interface PlaceBeanLocal {
Place mergeChanges(Place place);
Place findPlace(EventMap e, int x, int y);
Place findPlace(EventMap e, int x, int y);
boolean reservePlace(Place place, User user);
void releaseUsersPlaces();
int setBuyable(EventMap map, String buyableLike, boolean b);
boolean reservePlace(Place place, User user);
Place find(EventPk id);
boolean releasePlace(Place place, User user);
boolean releasePlace(Place place);
BigDecimal totalReservationPrice(EventMap e, Place newPlace);
Place mergeChanges(Place place);
boolean buySelectedPlaces(EventMap e) throws BortalCatchableException;
boolean buySelectedPlaces(User user) throws BortalCatchableException, PermissionDeniedException;
int setBuyable(EventMap map, String buyableLike, boolean b);
BigDecimal totalReservationPrice(User user, Place newPlace) throws PermissionDeniedException;
Place find(EventPk id);
void checkMemberships();
Place lockPlaces(User rowData, Place place);
void lockPlaceProduct(User user, Product prod, BigDecimal quantity);
void releaseUsersPlaces(User user) throws PermissionDeniedException;
}
......@@ -11,20 +11,20 @@ import fi.insomnia.bortal.model.User;
@Local
public interface PlaceGroupBeanLocal {
// PlaceGroup createPlaceGroup(User currentUser);
// PlaceGroup createPlaceGroup(User currentUser);
// GroupMembership createGroupMembership(PlaceGroup pg, Place p);
// GroupMembership createGroupMembership(PlaceGroup pg, Place p);
// List<GroupMembership> getMemberships(User user);
// List<GroupMembership> getMemberships(User user);
boolean associateToToken(User user, String token);
boolean associateToToken(User user, String token);
void releaseAndGenerateToken(GroupMembership gmem);
void releaseAndGenerateToken(GroupMembership gmem) throws PermissionDeniedException;
void getGroupMembershipPdf(List<GroupMembership> memberships, OutputStream ostream);
void getGroupMembershipPdf(List<GroupMembership> memberships, OutputStream ostream);
List<GroupMembership> getMembershipsAndCreations(User user);
List<GroupMembership> getMembershipsAndCreations(User user);
List<GroupMembership> getMemberships(User user);
List<GroupMembership> getMemberships(User user);
}
......@@ -8,30 +8,29 @@ import javax.ejb.Local;
import fi.insomnia.bortal.model.AccountEvent;
import fi.insomnia.bortal.model.Discount;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
@Local
public interface ProductBeanLocal {
List<Product> listUserShoppableProducts();
List<Product> listUserShoppableProducts();
Product createProduct(String name, BigDecimal price);
Product createProduct(String name, BigDecimal price);
List<Product> getProducts();
List<Product> getProducts();
Product mergeChanges(Product product);
Product mergeChanges(Product product);
Product findCreditProduct();
Product findCreditProduct();
BigDecimal calculateTotal(Product key, BigDecimal value);
BigDecimal calculateTotal(Product key, BigDecimal value);
AccountEvent createAccountEvent(Product product, BigDecimal quantity, User user);
AccountEvent createAccountEvent(Product product, BigDecimal quantity, User user);
List<Discount> getActiveDiscounts(Product product, BigDecimal quantity);
List<Discount> getActiveDiscounts(Product product, BigDecimal quantity);
Product findById(int parseInt);
Product findById(int parseInt);
List<Product> findForStaffshop();
List<Product> findForStaffshop();
}
......@@ -9,17 +9,12 @@ import fi.insomnia.bortal.model.ReaderEvent;
@Local
public interface ReaderBeanLocal {
ReaderEvent checkTag(String reader, String tag, String hash);
ReaderEvent checkTag(String reader, String tag, String hash);
ReaderEvent assocTagToPlacecode(String tag, String readerIdent, String placecode) throws BortalCatchableException, PermissionDeniedException;
ReaderEvent assocTagToPlacecode(String tag, String readerIdent, String placecode) throws BortalCatchableException;
ReaderEvent assocTagToCard(String tag, String readerIdent, PrintedCard card);
ReaderEvent assocTagToCard(String tag, String readerIdent, PrintedCard card);
ReaderEvent merge(ReaderEvent e);
ReaderEvent merge(ReaderEvent e);
}
......@@ -9,7 +9,6 @@ import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
......@@ -20,21 +19,18 @@ import fi.insomnia.bortal.model.RoleRight;
@Local
public interface RoleBeanLocal {
public List<Role> listRoles();
public List<Role> listRoles();
public Role mergeChanges(Role role);
public Role mergeChanges(Role role);
public Role create(Role role);
public Role create(Role role);
public RoleRight mergeChanges(RoleRight row);
public RoleRight mergeChanges(RoleRight row);
public List<RoleRight> getRoleRights(Role role);
public List<RoleRight> getRoleRights(Role role);
public List<Role> getPossibleParents(Role role);
public List<Role> listRoles(LanEvent event);
public Role find(int val, LanEvent event);
public List<Role> getPossibleParents(Role role);
public Role find(int val);
}
......@@ -4,8 +4,7 @@ import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.model.UserImage;
......@@ -13,49 +12,46 @@ import fi.insomnia.bortal.model.UserImage;
@Local
public interface UserBeanLocal {
List<User> getUsers();
List<User> getUsers();
List<User> getUsers(int page, int pagesize, String sort, String search);
List<User> getUsers(int page, int pagesize, String sort, String search);
User getUser(String nick);
User getUser(String nick);
User mergeChanges(User currentUser);
User mergeChanges(User currentUser) throws PermissionDeniedException;
User getCurrentUser();
// boolean hasCurrentUserPermission(Permission userManagement,
// RolePermission execute);
User getAnonUser();
// void fatalPermission(Permission target, RolePermission permission,
// Object... failmessage);
boolean hasPermission(Permission target, RolePermission permission);
// void fatalNotLoggedIn();
boolean isCurrentUser(User thisuser);
UserImage uploadImage(Integer userid, String contentType, byte[] image, String filename, String description) throws PermissionDeniedException;
// boolean hasCurrentUserPermission(Permission userManagement,
// RolePermission execute);
UserImage findUserImage(int id) throws PermissionDeniedException;
boolean isLoggedIn();
List<User> searchName(String name);
void fatalPermission(Permission target, RolePermission permission, Object... failmessage);
User createNewUser(User user, String password);
void fatalNotLoggedIn();
User findPasswordResetUser(Integer id, String hash);
UserImage uploadImage(Integer userid, String contentType, byte[] image, String filename, String description);
boolean resetPassword(User user, String password, String hash);
UserImage findUserImage(int id);
boolean initPasswordReset(User user, String hash, String mailpath);
List<User> searchName(String name);
List<Role> findUsersRoles(User u) throws PermissionDeniedException;
User createNewUser(User user, String password);
User findById(Integer integer);
User findPasswordResetUser(Integer id, String hash);
long getUsersCount(String search);
boolean resetPassword(User user, String password, String hash);
boolean invite(String invitemail);
boolean initPasswordReset(User user, String hash, String mailpath);
GroupMembership findToken(String token);
List<Role> findUsersRoles(User u);
User findById(Integer integer);
long getUsersCount(String search);
void createFromToken(User user, GroupMembership gm);
}
......@@ -5,13 +5,12 @@ import fi.insomnia.bortal.util.MailMessage;
public interface UtilBeanLocal {
// boolean sendMail(User user, String subject, String message);
// boolean sendMail(User user, String subject, String message);
boolean sendMail(MailMessage message);
boolean sendMail(MailMessage message);
boolean convertImage(User user);
void checkAllUsersImages();
boolean convertImage(User user) throws PermissionDeniedException;
void checkAllUsersImages() throws PermissionDeniedException;
}
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="ejbModule"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry combineaccessrules="false" kind="src" path="/LanBortalAuthModuleClient"/>
<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.jst.server.core.container/com.sun.enterprise.jst.server.runtimeTarget/GlassFish 3.1">
<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>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="/LanBortalUtilities"/>
<classpathentry kind="output" path="ejbModule"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<graniteProperties version="2.0">
<gas3 uid="uid" as3TypeFactory="org.granite.generator.as3.DefaultAs3TypeFactory" entityFactory="org.granite.generator.as3.DefaultEntityFactory" remoteDestinationFactory="org.granite.generator.as3.DefaultRemoteDestinationFactory" debugEnabled="false" flexConfig="false" externalizeLong="false" externalizeBigInteger="false" externalizeBigDecimal="false">
<source path="ejbModule" includes="fi/insomnia/bortal/beans/flash/**" excludes="" output="as3;"/>
<project path="LanBortalAuthModuleClient"/>
<project path="LanBortalDatabase"/>
<classpath path="/Users/tuomari/Documents/git/bortal/code/LanBortalWeb"/>
<template kind="ENTITY" uris="class:org/granite/generator/template/entity.gsp;class:org/granite/generator/template/entityBase.gsp"/>
<template kind="BEAN" uris="class:org/granite/generator/template/bean.gsp;class:org/granite/generator/template/beanBase.gsp"/>
<template kind="ENUM" uris="class:org/granite/generator/template/enum.gsp"/>
<template kind="REMOTE_DESTINATION" uris="class:org/granite/generator/template/remote.gsp;class:org/granite/generator/template/remoteBase.gsp"/>
<template kind="INTERFACE" uris="class:org/granite/generator/template/interface.gsp"/>
<transformer type="org.granite.generator.as3.JavaAs3GroovyTransformer"/>
</gas3>
</graniteProperties>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>LanBortalBeansClient</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
#Wed Oct 27 00:25:47 EEST 2010
eclipse.preferences.version=1
encoding/<project>=UTF-8
#Sun Mar 07 12:30:50 EET 2010
eclipse.preferences.version=1
formatter_profile=_InsomniaConventions
formatter_settings_version=11
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="LanBortalBeansClient">
<wb-resource deploy-path="/" source-path="/ejbModule"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="GlassFish 3.1"/>
<fixed facet="jst.utility"/>
<fixed facet="jst.java"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="jst.java" version="1.6"/>
</faceted-project>
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface AccessRightBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface BillBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.model.LanEvent;
public interface EventBeanLocal {
function get currentEvent():LanEvent;
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.1.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (EventBeanLocal.as).
*/
package fi.insomnia.bortal.beans {
import mx.messaging.ChannelSet;
import mx.messaging.config.ServerConfig;
import mx.rpc.remoting.mxml.RemoteObject;
public class EventBeanLocalBase extends RemoteObject {
private var _initRemote:Boolean = false;
private function initRemote():void {
destination = "";
channelSet = new ChannelSet();
channelSet.addChannel(ServerConfig.getChannel(""));
_initRemote = true;
}
public function getEvent(arg0:Number):void {
if (!_initRemote)
initRemote();
getOperation("getEvent").send(arg0);
}
public function getEventByHostname(arg0:String):void {
if (!_initRemote)
initRemote();
getOperation("getEventByHostname").send(arg0);
}
public function addOperationListener(op:Function, type:String, handler:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
if (op == this.getEvent)
this.getOperation("getEvent").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.getEventByHostname)
this.getOperation("getEventByHostname").addEventListener(type, handler, useCapture, priority, useWeakReference);
}
public function removeOperationListener(op:Function, event:String, handler:Function):void {
if (op == this.getEvent)
this.getOperation("getEvent").removeEventListener(event, handler);
if (op == this.getEventByHostname)
this.getOperation("getEventByHostname").removeEventListener(event, handler);
}
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface EventStatusBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface JaasBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.RealmBeanRemote;
public interface JaasBeanRemote extends RealmBeanRemote {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.1.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface PlaceBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (PlaceBeanLocal.as).
*/
package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.model.Place;
import mx.messaging.ChannelSet;
import mx.messaging.config.ServerConfig;
import mx.rpc.remoting.mxml.RemoteObject;
public class PlaceBeanLocalBase extends RemoteObject {
private var _initRemote:Boolean = false;
private function initRemote():void {
destination = "";
channelSet = new ChannelSet();
channelSet.addChannel(ServerConfig.getChannel("graniteamf"));
_initRemote = true;
}
public function mergeChanges(arg0:Place):void {
if (!_initRemote)
initRemote();
getOperation("mergeChanges").send(arg0);
}
public function addOperationListener(op:Function, type:String, handler:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
if (op == this.mergeChanges)
this.getOperation("mergeChanges").addEventListener(type, handler, useCapture, priority, useWeakReference);
}
public function removeOperationListener(op:Function, event:String, handler:Function):void {
if (op == this.mergeChanges)
this.getOperation("mergeChanges").removeEventListener(event, handler);
}
}
}
/**
* Generated by Gas3 v2.1.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface PlaceMapBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (PlaceMapBeanLocal.as).
*/
package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.User;
import java.io.OutputStream;
import mx.collections.ListCollectionView;
import mx.messaging.ChannelSet;
import mx.messaging.config.ServerConfig;
import mx.rpc.remoting.mxml.RemoteObject;
public class PlaceMapBeanLocalBase extends RemoteObject {
private var _initRemote:Boolean = false;
private function initRemote():void {
destination = "";
channelSet = new ChannelSet();
channelSet.addChannel(ServerConfig.getChannel("graniteamf"));
_initRemote = true;
}
public function printPlaceMapToStream(arg0:OutputStream, arg1:String, arg2:Number, arg3:ListCollectionView):void {
if (!_initRemote)
initRemote();
getOperation("printPlaceMapToStream").send(arg0, arg1, arg2, arg3);
}
public function getSelectPlaceMapUrl(arg0:EventMap, arg1:ListCollectionView, arg2:User):void {
if (!_initRemote)
initRemote();
getOperation("getSelectPlaceMapUrl").send(arg0, arg1, arg2);
}
public function selectablePlaceCount(arg0:User):void {
if (!_initRemote)
initRemote();
getOperation("selectablePlaceCount").send(arg0);
}
public function addOperationListener(op:Function, type:String, handler:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
if (op == this.printPlaceMapToStream)
this.getOperation("printPlaceMapToStream").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.getSelectPlaceMapUrl)
this.getOperation("getSelectPlaceMapUrl").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.selectablePlaceCount)
this.getOperation("selectablePlaceCount").addEventListener(type, handler, useCapture, priority, useWeakReference);
}
public function removeOperationListener(op:Function, event:String, handler:Function):void {
if (op == this.printPlaceMapToStream)
this.getOperation("printPlaceMapToStream").removeEventListener(event, handler);
if (op == this.getSelectPlaceMapUrl)
this.getOperation("getSelectPlaceMapUrl").removeEventListener(event, handler);
if (op == this.selectablePlaceCount)
this.getOperation("selectablePlaceCount").removeEventListener(event, handler);
}
}
}
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface ProductBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface RoleBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface SecurityBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
import org.granite.util.Enum;
[Bindable]
[RemoteClass(alias="fi.insomnia.bortal.beans.SecurityLogType")]
public class SecurityLogType extends Enum {
public static const permissionDenied:SecurityLogType = new SecurityLogType("permissionDenied", _);
public static const unknownException:SecurityLogType = new SecurityLogType("unknownException", _);
public static const genericMessage:SecurityLogType = new SecurityLogType("genericMessage", _);
function SecurityLogType(value:String = null, restrictor:* = null) {
super((value || permissionDenied.name), restrictor);
}
override protected function getConstants():Array {
return constants;
}
public static function get constants():Array {
return [permissionDenied, unknownException, genericMessage];
}
public static function valueOf(name:String):SecurityLogType {
return SecurityLogType(permissionDenied.constantOf(name));
}
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
public interface TestDataBeanLocal {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.model.User;
import mx.collections.ListCollectionView;
public interface UserBeanLocal {
function get currentUser():User;
function get defaultUser():User;
function get users():ListCollectionView;
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.1.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (UserBeanLocal.as).
*/
package fi.insomnia.bortal.beans {
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.Event;
import fi.insomnia.bortal.model.User;
import mx.messaging.ChannelSet;
import mx.messaging.config.ServerConfig;
import mx.rpc.remoting.mxml.RemoteObject;
public class UserBeanLocalBase extends RemoteObject {
private var _initRemote:Boolean = false;
private function initRemote():void {
destination = "";
channelSet = new ChannelSet();
channelSet.addChannel(ServerConfig.getChannel(""));
_initRemote = true;
}
public function hasPermission(arg0:Permission, arg1:User, arg2:RolePermission):void {
if (!_initRemote)
initRemote();
getOperation("hasPermission").send(arg0, arg1, arg2);
}
public function getUsers():void {
if (!_initRemote)
initRemote();
getOperation("getUsers").send();
}
public function mergeChanges(arg0:User):void {
if (!_initRemote)
initRemote();
getOperation("mergeChanges").send(arg0);
}
public function getUser(arg0:String):void {
if (!_initRemote)
initRemote();
getOperation("getUser").send(arg0);
}
public function getDefaultUser(arg0:Event):void {
if (!_initRemote)
initRemote();
getOperation("getDefaultUser").send(arg0);
}
public function createNewUser(arg0:String, arg1:String):void {
if (!_initRemote)
initRemote();
getOperation("createNewUser").send(arg0, arg1);
}
public function getCurrentUser(arg0:Event):void {
if (!_initRemote)
initRemote();
getOperation("getCurrentUser").send(arg0);
}
public function isCurrentUser(arg0:User):void {
if (!_initRemote)
initRemote();
getOperation("isCurrentUser").send(arg0);
}
public function addOperationListener(op:Function, type:String, handler:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
if (op == this.hasPermission)
this.getOperation("hasPermission").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.getUsers)
this.getOperation("getUsers").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.mergeChanges)
this.getOperation("mergeChanges").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.getUser)
this.getOperation("getUser").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.getDefaultUser)
this.getOperation("getDefaultUser").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.createNewUser)
this.getOperation("createNewUser").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.getCurrentUser)
this.getOperation("getCurrentUser").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.isCurrentUser)
this.getOperation("isCurrentUser").addEventListener(type, handler, useCapture, priority, useWeakReference);
}
public function removeOperationListener(op:Function, event:String, handler:Function):void {
if (op == this.hasPermission)
this.getOperation("hasPermission").removeEventListener(event, handler);
if (op == this.getUsers)
this.getOperation("getUsers").removeEventListener(event, handler);
if (op == this.mergeChanges)
this.getOperation("mergeChanges").removeEventListener(event, handler);
if (op == this.getUser)
this.getOperation("getUser").removeEventListener(event, handler);
if (op == this.getDefaultUser)
this.getOperation("getDefaultUser").removeEventListener(event, handler);
if (op == this.createNewUser)
this.getOperation("createNewUser").removeEventListener(event, handler);
if (op == this.getCurrentUser)
this.getOperation("getCurrentUser").removeEventListener(event, handler);
if (op == this.isCurrentUser)
this.getOperation("isCurrentUser").removeEventListener(event, handler);
}
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.1.0 (Granite Data Services).
*
* NOTE: this file is only generated if it does not exist. You may safely put
* your custom code here.
*/
package fi.insomnia.bortal.beans.flash {
[RemoteClass(alias="fi.insomnia.bortal.beans.flash.FlashMapBeanLocal")]
public class FlashMapBeanLocal extends FlashMapBeanLocalBase {
}
}
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (FlashMapBeanLocal.as).
*/
package fi.insomnia.bortal.beans.flash {
import mx.messaging.ChannelSet;
import mx.messaging.config.ServerConfig;
import mx.rpc.remoting.mxml.RemoteObject;
public class FlashMapBeanLocalBase extends RemoteObject {
private var _initRemote:Boolean = false;
private function initRemote():void {
destination = "";
channelSet = new ChannelSet();
channelSet.addChannel(ServerConfig.getChannel("graniteamf"));
_initRemote = true;
}
public function log(arg0:Object):void {
if (!_initRemote)
initRemote();
getOperation("log").send(arg0);
}
public function testString(arg0:String):void {
if (!_initRemote)
initRemote();
getOperation("testString").send(arg0);
}
public function getMapBackground(arg0:Number):void {
if (!_initRemote)
initRemote();
getOperation("getMapBackground").send(arg0);
}
public function getMapPlaces(arg0:Number):void {
if (!_initRemote)
initRemote();
getOperation("getMapPlaces").send(arg0);
}
public function addOperationListener(op:Function, type:String, handler:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
if (op == this.log)
this.getOperation("log").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.testString)
this.getOperation("testString").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.getMapBackground)
this.getOperation("getMapBackground").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.getMapPlaces)
this.getOperation("getMapPlaces").addEventListener(type, handler, useCapture, priority, useWeakReference);
}
public function removeOperationListener(op:Function, event:String, handler:Function):void {
if (op == this.log)
this.getOperation("log").removeEventListener(event, handler);
if (op == this.testString)
this.getOperation("testString").removeEventListener(event, handler);
if (op == this.getMapBackground)
this.getOperation("getMapBackground").removeEventListener(event, handler);
if (op == this.getMapPlaces)
this.getOperation("getMapPlaces").removeEventListener(event, handler);
}
}
}
/**
* Generated by Gas3 v2.1.0 (Granite Data Services).
*
* NOTE: this file is only generated if it does not exist. You may safely put
* your custom code here.
*/
package fi.insomnia.bortal.beans.flash {
[RemoteClass(alias="fi.insomnia.bortal.beans.flash.HelloWorldBeanLocal")]
public class HelloWorldBeanLocal extends HelloWorldBeanLocalBase {
}
}
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (HelloWorldBeanLocal.as).
*/
package fi.insomnia.bortal.beans.flash {
import mx.messaging.ChannelSet;
import mx.messaging.config.ServerConfig;
import mx.rpc.remoting.mxml.RemoteObject;
public class HelloWorldBeanLocalBase extends RemoteObject {
private var _initRemote:Boolean = false;
private function initRemote():void {
destination = "";
channelSet = new ChannelSet();
channelSet.addChannel(ServerConfig.getChannel("graniteamf"));
_initRemote = true;
}
public function hello(arg0:String):void {
if (!_initRemote)
initRemote();
getOperation("hello").send(arg0);
}
public function addOperationListener(op:Function, type:String, handler:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
if (op == this.hello)
this.getOperation("hello").addEventListener(type, handler, useCapture, priority, useWeakReference);
}
public function removeOperationListener(op:Function, event:String, handler:Function):void {
if (op == this.hello)
this.getOperation("hello").removeEventListener(event, handler);
}
}
}
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* NOTE: this file is only generated if it does not exist. You may safely put
* your custom code here.
*/
package fi.insomnia.bortal.beans.flash {
[Bindable]
[RemoteClass(alias="fi.insomnia.bortal.beans.flash.ObserveAllPublishAll")]
public class ObserveAllPublishAll extends ObserveAllPublishAllBase {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (ObserveAllPublishAll.as).
*/
package fi.insomnia.bortal.beans.flash {
import flash.utils.IDataInput;
import flash.utils.IDataOutput;
import flash.utils.IExternalizable;
[Bindable]
public class ObserveAllPublishAllBase implements IExternalizable {
public function readExternal(input:IDataInput):void {
}
public function writeExternal(output:IDataOutput):void {
}
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.1.0 (Granite Data Services).
*
* NOTE: this file is only generated if it does not exist. You may safely put
* your custom code here.
*/
package fi.insomnia.bortal.beans.flash {
[RemoteClass(alias="fi.insomnia.bortal.beans.flash.RemoteLoggerLocal")]
public class RemoteLoggerLocal extends RemoteLoggerLocalBase {
}
}
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (RemoteLoggerLocal.as).
*/
package fi.insomnia.bortal.beans.flash {
import mx.messaging.ChannelSet;
import mx.messaging.config.ServerConfig;
import mx.rpc.remoting.mxml.RemoteObject;
public class RemoteLoggerLocalBase extends RemoteObject {
private var _initRemote:Boolean = false;
private function initRemote():void {
destination = "";
channelSet = new ChannelSet();
channelSet.addChannel(ServerConfig.getChannel("graniteamf"));
_initRemote = true;
}
public function debug(arg0:String):void {
if (!_initRemote)
initRemote();
getOperation("debug").send(arg0);
}
public function error(arg0:String):void {
if (!_initRemote)
initRemote();
getOperation("error").send(arg0);
}
public function info(arg0:String):void {
if (!_initRemote)
initRemote();
getOperation("info").send(arg0);
}
public function warn(arg0:String):void {
if (!_initRemote)
initRemote();
getOperation("warn").send(arg0);
}
public function addOperationListener(op:Function, type:String, handler:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
if (op == this.debug)
this.getOperation("debug").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.error)
this.getOperation("error").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.info)
this.getOperation("info").addEventListener(type, handler, useCapture, priority, useWeakReference);
if (op == this.warn)
this.getOperation("warn").addEventListener(type, handler, useCapture, priority, useWeakReference);
}
public function removeOperationListener(op:Function, event:String, handler:Function):void {
if (op == this.debug)
this.getOperation("debug").removeEventListener(event, handler);
if (op == this.error)
this.getOperation("error").removeEventListener(event, handler);
if (op == this.info)
this.getOperation("info").removeEventListener(event, handler);
if (op == this.warn)
this.getOperation("warn").removeEventListener(event, handler);
}
}
}
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.enums {
import org.granite.util.Enum;
[Bindable]
[RemoteClass(alias="fi.insomnia.bortal.enums.BeanRole")]
public class BeanRole extends Enum {
public static const ANONYMOUS:BeanRole = new BeanRole("ANONYMOUS", _);
public static const USER_BASE:BeanRole = new BeanRole("USER_BASE", _);
public static const ADMIN_BASE:BeanRole = new BeanRole("ADMIN_BASE", _);
public static const SUPERADMIN:BeanRole = new BeanRole("SUPERADMIN", _);
public static const ORGANIZATION_ROOT:BeanRole = new BeanRole("ORGANIZATION_ROOT", _);
function BeanRole(value:String = null, restrictor:* = null) {
super((value || ANONYMOUS.name), restrictor);
}
override protected function getConstants():Array {
return constants;
}
public static function get constants():Array {
return [ANONYMOUS, USER_BASE, ADMIN_BASE, SUPERADMIN, ORGANIZATION_ROOT];
}
public static function valueOf(name:String):BeanRole {
return BeanRole(ANONYMOUS.constantOf(name));
}
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.enums {
import org.granite.util.Enum;
[Bindable]
[RemoteClass(alias="fi.insomnia.bortal.enums.EventStatusEnum")]
public class EventStatusEnum extends Enum {
public static const INACTIVE:EventStatusEnum = new EventStatusEnum("INACTIVE", _);
public static const TICKET_SALES:EventStatusEnum = new EventStatusEnum("TICKET_SALES", _);
public static const PRE_EVENT:EventStatusEnum = new EventStatusEnum("PRE_EVENT", _);
public static const RUNNING:EventStatusEnum = new EventStatusEnum("RUNNING", _);
public static const SPLITTED:EventStatusEnum = new EventStatusEnum("SPLITTED", _);
public static const ARCHIVED:EventStatusEnum = new EventStatusEnum("ARCHIVED", _);
function EventStatusEnum(value:String = null, restrictor:* = null) {
super((value || INACTIVE.name), restrictor);
}
override protected function getConstants():Array {
return constants;
}
public static function get constants():Array {
return [INACTIVE, TICKET_SALES, PRE_EVENT, RUNNING, SPLITTED, ARCHIVED];
}
public static function valueOf(name:String):EventStatusEnum {
return EventStatusEnum(INACTIVE.constantOf(name));
}
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.enums {
import org.granite.util.Enum;
[Bindable]
[RemoteClass(alias="fi.insomnia.bortal.enums.Permission")]
public class Permission extends Enum {
public static const PERMISSION:Permission = new Permission("PERMISSION", _);
public static const LOGIN:Permission = new Permission("LOGIN", _);
public static const USER_MANAGEMENT:Permission = new Permission("USER_MANAGEMENT", _);
public static const TICKET_SALES:Permission = new Permission("TICKET_SALES", _);
public static const ROLE_MANAGEMENT:Permission = new Permission("ROLE_MANAGEMENT", _);
function Permission(value:String = null, restrictor:* = null) {
super((value || PERMISSION.name), restrictor);
}
override protected function getConstants():Array {
return constants;
}
public static function get constants():Array {
return [PERMISSION, LOGIN, USER_MANAGEMENT, TICKET_SALES, ROLE_MANAGEMENT];
}
public static function valueOf(name:String):Permission {
return Permission(PERMISSION.constantOf(name));
}
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR.
*/
package fi.insomnia.bortal.enums {
import org.granite.util.Enum;
[Bindable]
[RemoteClass(alias="fi.insomnia.bortal.enums.RolePermission")]
public class RolePermission extends Enum {
public static const READ:RolePermission = new RolePermission("READ", _);
public static const WRITE:RolePermission = new RolePermission("WRITE", _);
public static const EXECUTE:RolePermission = new RolePermission("EXECUTE", _);
function RolePermission(value:String = null, restrictor:* = null) {
super((value || READ.name), restrictor);
}
override protected function getConstants():Array {
return constants;
}
public static function get constants():Array {
return [READ, WRITE, EXECUTE];
}
public static function valueOf(name:String):RolePermission {
return RolePermission(READ.constantOf(name));
}
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.1.0 (Granite Data Services).
*
* NOTE: this file is only generated if it does not exist. You may safely put
* your custom code here.
*/
package fi.insomnia.bortal.exceptions {
[Bindable]
[RemoteClass(alias="fi.insomnia.bortal.exceptions.EjbPermissionDeniedException")]
public class EjbPermissionDeniedException extends EjbPermissionDeniedExceptionBase {
}
}
\ No newline at end of file
/**
* Generated by Gas3 v2.2.0 (Granite Data Services).
*
* WARNING: DO NOT CHANGE THIS FILE. IT MAY BE OVERWRITTEN EACH TIME YOU USE
* THE GENERATOR. INSTEAD, EDIT THE INHERITED CLASS (EjbPermissionDeniedException.as).
*/
package fi.insomnia.bortal.exceptions {
import flash.utils.IDataInput;
import flash.utils.IDataOutput;
import flash.utils.IExternalizable;
[Bindable]
public class EjbPermissionDeniedExceptionBase implements IExternalizable {
public function readExternal(input:IDataInput):void {
}
public function writeExternal(output:IDataOutput):void {
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="LanBortalBeansClient" default="default" basedir=".">
<description>Builds, tests, and runs the project LanBortalBeansClient.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar-with-manifest: JAR building (if you are using a manifest)
-do-jar-without-manifest: JAR building (if you are not using a manifest)
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="LanBortalBeansClient-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
</project>
Manifest-Version: 1.0
Class-Path: lib/LanBortalDatabase.jar
# Do not delete: this file is used by automated destinations discovery.
\ No newline at end of file
package fi.insomnia.bortal.beans;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import javax.ejb.Local;
import fi.insomnia.bortal.model.AccountEvent;
import fi.insomnia.bortal.model.EventPk;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
@Local
public interface AccountEventBeanLocal {
AccountEvent merge(AccountEvent account);
void delete(AccountEvent account);
AccountEvent find(EventPk id);
List<Role> getRolesFromAccountEvents(User u);
List<AccountEvent> shopCash(User shoppingUser, Map<Product, BigDecimal> shopMap, boolean buyInstant);
}
package fi.insomnia.bortal.beans;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Collection;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.bortal.views.BillSummary;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.BillLine;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.User;
@Local
public interface BillBeanLocal {
Bill findById( int id);
Bill createEmptyBill(User shoppingUser);
BillLine addProductToBill(Bill bill, Product product, BigDecimal count);
List<Bill> findAll();
Collection<BillSummary> getBillLineSummary();
void markPaid(Bill bill, Calendar when);
void getPdfBillStream(Bill bill, OutputStream ostream);
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
@Local
public interface BillLineBeanLocal {
}
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.CardTemplate;
import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.model.User;
@Local
public interface CardTemplateBeanLocal {
List<CardTemplate> findAll();
void create(CardTemplate card);
CardTemplate findById(Integer id);
PrintedCard checkPrintedCard(User user);
void checkAllUsersCardRights();
PrintedCard setRfidUid(String tag, User user);
PrintedCard setRfidUid(String tag, PrintedCard card);
List<PrintedCard> findActiveCards();
}
package fi.insomnia.bortal.beans;
import java.math.BigDecimal;
import javax.ejb.Local;
import fi.insomnia.bortal.model.Discount;
import fi.insomnia.bortal.model.Product;
@Local
public interface DiscountBeanLocal {
Discount save(Discount discount);
Discount create(String discountdesc);
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.model.LanEvent;
@Local
public interface EventBeanLocal {
static final String HTTP_URL_HOSTNAME = "HTTP_URL_HOSTNAME";
LanEvent getEventByHostname(String hostname);
LanEvent getCurrentEvent();
LanEvent mergeChanges(LanEvent event);
void create(LanEvent event);
String flushCache();
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.LanEvent;
@Local
public interface EventMapBeanLocal {
EventMap saveMap(EventMap eventmap);
EventMap create(String mapname);
void sendImage(int destId, byte[] imagedata);
}
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.EventOrganiser;
@Local
public interface EventOrganiserBeanLocal {
void save(EventOrganiser eventorg);
void fatalPermission(EventOrganiser eventorg);
List<EventOrganiser> getEventOrganisers();
EventOrganiser create(String createorgname);
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.beans;
import fi.insomnia.bortal.model.EventStatus;
import javax.ejb.Local;
/**
*
* @author tuukka
*/
@Local
public interface EventStatusBeanLocal {
public EventStatus findOrCreateDefaultEventStatus();
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.model.FoodWaveTemplate;
@Local
public interface FoodWaveBeanLocal {
void createTemplate(FoodWaveTemplate waveTemplate);
FoodWaveTemplate saveTemplate(FoodWaveTemplate waveTemplate);
}
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.News;
@Local
public interface GameBeanLocal {
List<News> getNews();
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
@Local
public interface JaasBeanLocal {
}
package fi.insomnia.bortal.beans;
import javax.ejb.Remote;
import fi.insomnia.bortal.RealmBeanRemote;
@Remote
public interface JaasBeanRemote extends RealmBeanRemote{
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.beans;
import java.math.BigDecimal;
import javax.ejb.Local;
import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.EventPk;
import fi.insomnia.bortal.model.Place;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.User;
/**
*
* @author tuukka
*/
@Local
// @RemoteDestination
public interface PlaceBeanLocal {
Place mergeChanges(Place place);
Place findPlace(EventMap e, int x, int y);
void releaseUsersPlaces();
boolean reservePlace(Place place, User user);
boolean releasePlace(Place place, User user);
BigDecimal totalReservationPrice(EventMap e, Place newPlace);
boolean buySelectedPlaces(EventMap e) throws BortalCatchableException;
int setBuyable(EventMap map, String buyableLike, boolean b);
Place find(EventPk id);
void checkMemberships();
Place lockPlaces(User rowData, Place place);
void lockPlaceProduct(User user, Product prod, BigDecimal quantity);
}
package fi.insomnia.bortal.beans;
import java.io.OutputStream;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.User;
@Local
public interface PlaceGroupBeanLocal {
// PlaceGroup createPlaceGroup(User currentUser);
// GroupMembership createGroupMembership(PlaceGroup pg, Place p);
// List<GroupMembership> getMemberships(User user);
boolean associateToToken(User user, String token);
void releaseAndGenerateToken(GroupMembership gmem);
void getGroupMembershipPdf(List<GroupMembership> memberships, OutputStream ostream);
List<GroupMembership> getMembershipsAndCreations(User user);
List<GroupMembership> getMemberships(User user);
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.model.EventMap;
@Local
public interface PlaceMapBeanLocal {
// public String getSelectPlaceMapUrl(EventMap activeMap, List<Place> selectedPlaces, User user);
public Long selectablePlaceCount(EventMap activeMap);
public EventMap findMap(Integer mapId);
// public List<Place> findSelectedPlaces(EventMap map);
// public EventMap findMap(int i);
}
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.Poll;
import fi.insomnia.bortal.model.PollAnswer;
import fi.insomnia.bortal.model.PollQuestion;
import fi.insomnia.bortal.model.PossibleAnswer;
@Local
public interface PollBeanLocal {
List<Poll> findPolls();
boolean createAnswers(List<PollAnswer> answers);
PossibleAnswer findPossibleAnwerById(int id);
void createPoll(Poll poll);
void createAnswers(PollQuestion q1);
}
package fi.insomnia.bortal.beans;
import java.math.BigDecimal;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.AccountEvent;
import fi.insomnia.bortal.model.Discount;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
@Local
public interface ProductBeanLocal {
List<Product> listUserShoppableProducts();
Product createProduct(String name, BigDecimal price);
List<Product> getProducts();
Product mergeChanges(Product product);
Product findCreditProduct();
BigDecimal calculateTotal(Product key, BigDecimal value);
AccountEvent createAccountEvent(Product product, BigDecimal quantity, User user);
List<Discount> getActiveDiscounts(Product product, BigDecimal quantity);
Product findById(int parseInt);
List<Product> findForStaffshop();
}
package fi.insomnia.bortal.beans;
import javax.ejb.Local;
import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.model.ReaderEvent;
@Local
public interface ReaderBeanLocal {
ReaderEvent checkTag(String reader, String tag, String hash);
ReaderEvent assocTagToPlacecode(String tag, String readerIdent, String placecode) throws BortalCatchableException;
ReaderEvent assocTagToCard(String tag, String readerIdent, PrintedCard card);
ReaderEvent merge(ReaderEvent e);
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package fi.insomnia.bortal.beans;
import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.RoleRight;
/**
*
* @author tuukka
*/
@Local
public interface RoleBeanLocal {
public List<Role> listRoles();
public Role mergeChanges(Role role);
public Role create(Role role);
public RoleRight mergeChanges(RoleRight row);
public List<RoleRight> getRoleRights(Role role);
public List<Role> getPossibleParents(Role role);
public List<Role> listRoles(LanEvent event);
public Role find(int val, LanEvent event);
}
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!