Commit 1b40cfd0 by Tuomas Riihimäki

Poistettu User-oliosta mappaukset metodeihin joihin ei pidä päästä käsiksi suoraa...

1 parent c6b6359c
Showing with 316 additions and 473 deletions
......@@ -2,7 +2,6 @@ package fi.insomnia.bortal.beans;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
......@@ -22,7 +21,6 @@ import fi.insomnia.bortal.enums.apps.SpecialPermission;
import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.facade.AccountEventFacade;
import fi.insomnia.bortal.model.AccountEvent;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Product;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
......@@ -72,7 +70,6 @@ public class AccountEventBean implements AccountEventBeanLocal {
if (acco.getBill() != null) {
acco.getBill().setAccountEvent(null);
}
acco.getUser().getAccountEvents().remove(acco);
accountfacade.remove(acco);
......@@ -93,14 +90,11 @@ public class AccountEventBean implements AccountEventBeanLocal {
*/
@Override
@RolesAllowed(ShopPermission.S_SHOP_PRODUCTS)
public List<AccountEvent> shopCash(User shoppingUser, Map<Product, BigDecimal> shopMap, boolean buyInstant) {
public void shopCash(User shoppingUser, Map<Product, BigDecimal> shopMap, boolean buyInstant) {
logger.debug("Shoping cash. buyinstant {}", buyInstant);
User seller = permbean.getCurrentUser();
shoppingUser = userbean.findById(shoppingUser.getId());
ArrayList<AccountEvent> ret = new ArrayList<AccountEvent>();
LanEvent ev = eventBean.getCurrentEvent();
BigDecimal tot = BigDecimal.ZERO;
for (Entry<Product, BigDecimal> prodentry : shopMap.entrySet()) {
......@@ -108,7 +102,7 @@ public class AccountEventBean implements AccountEventBeanLocal {
// Create account event for the product.
AccountEvent ac = new AccountEvent(shoppingUser, prodentry.getKey(), prodentry.getKey().getPrice(), prodentry.getValue(), Calendar.getInstance());
ac.setSeller(seller);
shoppingUser.getAccountEvents().add(ac);
accountfacade.create(ac);
if (buyInstant && prodentry.getKey().getPrice().compareTo(BigDecimal.ZERO) > 0) {
tot = tot.add(prodentry.getValue().multiply(prodentry.getKey().getPrice()));
......@@ -128,12 +122,11 @@ public class AccountEventBean implements AccountEventBeanLocal {
logger.debug("Creating buy instant product!");
Product creditProd = prodbean.findCreditProduct();
AccountEvent ac = new AccountEvent(shoppingUser, creditProd, creditProd.getPrice(), tot, Calendar.getInstance());
shoppingUser.getAccountEvents().add(ac);
accountfacade.create(ac);
}
userbean.mergeChanges(shoppingUser);
return ret;
}
@Override
......
package fi.insomnia.bortal.beans;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.List;
......@@ -245,11 +244,7 @@ public class BillBean implements BillBeanLocal {
loggingBean.logMessage(SecurityLogType.permissionDenied, permbean.getCurrentUser(), "Not enought rights to create bill for user ");
throw new EJBAccessException("Could not create bill for another user");
}
User user = userfacade.find(bill.getUser().getId());
if (user.getBills() == null) {
user.setBills(new ArrayList<Bill>());
}
user.getBills().add(bill);
billFacade.create(bill);
generateBillNumber(bill);
}
......@@ -257,4 +252,14 @@ public class BillBean implements BillBeanLocal {
public Bill save(Bill bill) {
return billFacade.merge(bill);
}
@Override
@RolesAllowed({ BillPermission.S_VIEW_OWN, BillPermission.S_READ_ALL })
public List<Bill> find(User user) {
if (!permbean.isCurrentUser(user) && !permbean.hasPermission(BillPermission.READ_ALL)) {
loggingBean.logMessage(SecurityLogType.permissionDenied, permbean.getCurrentUser(), "Not enought rights to get bill list for user ");
throw new EJBAccessException("Could not list bills for another user");
}
return billFacade.find(user);
}
}
......@@ -105,7 +105,7 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
user = userfacade.find(user.getId());
LanEvent currEvent = eventBean.getCurrentEvent();
List<PrintedCard> myCards = printedcardfacade.findForUser(currEvent, user);
List<PrintedCard> myCards = printedcardfacade.getCards(user);
PrintedCard biggestCard = null;
PrintedCard smallestCard = null;
......@@ -143,8 +143,8 @@ public class CardTemplateBean implements CardTemplateBeanLocal {
pc.setTemplate(roleCard);
pc.setUser(user);
user.getPrintedCards().add(pc);
// printedcardfacade.create(pc);
// user.getPrintedCards().add(pc);
printedcardfacade.create(pc);
biggestCard = pc;
logger.info("User {} has too little power old role {} New role {}", new Object[] { user.getLogin(), existingPower, newPower });
} else if (existingPower > newPower) {
......
......@@ -118,7 +118,6 @@ public class EventBean implements EventBeanLocal {
}
BortalLocalContextHolder.setHostnameId(ret.getId());
logger.debug("Got event {} from hostname {}", ret.getName(), hostname);
return ret;
}
......
......@@ -12,6 +12,7 @@ import fi.insomnia.bortal.facade.EventFacade;
import fi.insomnia.bortal.facade.EventOrganiserFacade;
import fi.insomnia.bortal.model.EventOrganiser;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.User;
/**
* Session Bean implementation class EventOrganiserBean
......@@ -43,13 +44,13 @@ public class EventOrganiserBean implements EventOrganiserBeanLocal {
}
@Override
@RolesAllowed("SUPERADMIN")
@RolesAllowed(SpecialPermission.S_SUPERADMIN)
public List<EventOrganiser> getEventOrganisers() {
return eventorgfacade.findAll();
}
@Override
@RolesAllowed("SUPERADMIN")
@RolesAllowed(SpecialPermission.S_SUPERADMIN)
public EventOrganiser create(String name) {
EventOrganiser ret = new EventOrganiser();
ret.setAdmin(permbean.getCurrentUser());
......@@ -59,7 +60,7 @@ public class EventOrganiserBean implements EventOrganiserBeanLocal {
}
@Override
@RolesAllowed("SUPERADMIN")
@RolesAllowed(SpecialPermission.S_SUPERADMIN)
public EventOrganiser find(Integer orgId) {
return eventorgfacade.find(orgId);
}
......@@ -68,4 +69,9 @@ public class EventOrganiserBean implements EventOrganiserBeanLocal {
public LanEvent findEvent(Integer eventid) {
return eventfacade.find(eventid);
}
@Override
public List<EventOrganiser> getOrganisations(User user) {
return eventorgfacade.find(user);
}
}
......@@ -92,6 +92,7 @@ public class Menubean implements MenubeanLocal {
shopTopmenu.setKey("topnavi.shop");
shopTopmenu.addPage(menuitemfacade.findOrCreate("/shop/createBill"), BillPermission.CREATE_BILL);
shopTopmenu.addPage(menuitemfacade.findOrCreate("/bill/list"), BillPermission.VIEW_OWN);
shopTopmenu.addPage(menuitemfacade.findOrCreate("/bill/edit"), null).setVisible(false);
MenuNavigation pollTopmenu = usernavi.addPage(null, null);
pollTopmenu.setKey("topnavi.poll");
......@@ -105,8 +106,10 @@ public class Menubean implements MenubeanLocal {
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/create"), UserPermission.VIEW_ALL);
adminuser.addPage(menuitemfacade.findOrCreate("/role/list"), UserPermission.READ_ROLES).setHeader("submenu.user.rolelinks");
adminuser.addPage(menuitemfacade.findOrCreate("/role/create"), UserPermission.WRITE_ROLES);
adminuser.addPage(menuitemfacade.findOrCreate("/role/edit"), null).setVisible(false);
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/listCardTemplates"), UserPermission.READ_ROLES);
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/createCardTemplate"), UserPermission.WRITE_ROLES);
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/editCardTemplate"), null).setVisible(false);
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/edit"), UserPermission.VIEW_ALL).setVisible(false);
adminuser.addPage(menuitemfacade.findOrCreate("/useradmin/changePassword"), UserPermission.VIEW_ALL).setVisible(false);
......
......@@ -34,6 +34,7 @@ import fi.insomnia.bortal.enums.apps.SpecialPermission;
import fi.insomnia.bortal.exceptions.BortalCatchableException;
import fi.insomnia.bortal.facade.GroupMembershipFacade;
import fi.insomnia.bortal.facade.PlaceFacade;
import fi.insomnia.bortal.facade.PlaceGroupFacade;
import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.model.EventMap;
import fi.insomnia.bortal.model.GroupMembership;
......@@ -80,6 +81,8 @@ public class PlaceBean implements PlaceBeanLocal {
private LoggingBeanLocal loggerbean;
@EJB
private AccountEventBeanLocal acbean;
@EJB
private PlaceGroupFacade pgfacade;
@Override
@RolesAllowed(MapPermission.S_MANAGE_MAPS)
......@@ -250,7 +253,8 @@ public class PlaceBean implements PlaceBeanLocal {
PlaceGroup pg = new PlaceGroup(event, Calendar.getInstance(), Calendar.getInstance(), true);
pg.setCreator(user);
user.getPlaceGroups().add(pg);
pgfacade.create(pg);
// user.getPlaceGroups().add(pg);
userfacade.flush();
for (Place p : places) {
......@@ -304,8 +308,8 @@ public class PlaceBean implements PlaceBeanLocal {
}
}
}
user.getPlaceGroups().add(pg);
// user.getPlaceGroups().add(pg);
pgfacade.create(pg);
}
private void buy(Place p, PlaceGroup pg, User user) {
......
......@@ -22,15 +22,18 @@ import com.pdfjet.Page;
import com.pdfjet.TextLine;
import fi.insomnia.bortal.enums.apps.MapPermission;
import fi.insomnia.bortal.enums.apps.SpecialPermission;
import fi.insomnia.bortal.facade.GroupMembershipFacade;
import fi.insomnia.bortal.facade.PlaceGroupFacade;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.PlaceGroup;
import fi.insomnia.bortal.model.User;
/**
* Session Bean implementation class PlaceGroupBean
*/
@Stateless
@DeclareRoles("USER")
@DeclareRoles({ SpecialPermission.S_USER, MapPermission.S_BUY_PLACES })
public class PlaceGroupBean implements PlaceGroupBeanLocal {
private static final Logger logger = LoggerFactory.getLogger(PlaceGroupBean.class);
......@@ -47,6 +50,8 @@ public class PlaceGroupBean implements PlaceGroupBeanLocal {
private PermissionBeanLocal permbean;
@EJB
private LoggingBeanLocal loggerbean;
@EJB
private PlaceGroupFacade pgfacade;
/**
* Default constructor.
......@@ -70,16 +75,25 @@ public class PlaceGroupBean implements PlaceGroupBeanLocal {
// }
@Override
@RolesAllowed("USER")
@RolesAllowed(SpecialPermission.S_USER)
public List<GroupMembership> getMembershipsAndCreations(User user) {
if (user == null) {
user = permbean.getCurrentUser();
} else if (!permbean.isCurrentUser(user) && !permbean.hasPermission(MapPermission.MANAGE_OTHERS)) {
throw new EJBAccessException("No permission to get group memberships!");
}
List<GroupMembership> ret = gmemfacade.findMemberOrCreator(user);
return ret;
}
@Override
@RolesAllowed("USER")
@RolesAllowed(SpecialPermission.S_USER)
public List<GroupMembership> getMemberships(User user) {
if (user == null) {
user = permbean.getCurrentUser();
} else if (!permbean.isCurrentUser(user) && !permbean.hasPermission(MapPermission.MANAGE_OTHERS)) {
throw new EJBAccessException("No permission to get group memberships!");
}
List<GroupMembership> ret = gmemfacade.findMemberships(user);
return ret;
}
......@@ -97,7 +111,6 @@ public class PlaceGroupBean implements PlaceGroupBeanLocal {
if (mem != null && mem.getUser() == null) {
mem.setUser(user);
user.getGroupMemberships().add(mem);
gmemfacade.merge(mem);
ret = true;
}
......@@ -107,7 +120,9 @@ public class PlaceGroupBean implements PlaceGroupBeanLocal {
}
@Override
public void getGroupMembershipPdf(List<GroupMembership> memberships, OutputStream ostream) {
@RolesAllowed(SpecialPermission.S_USER)
public void getGroupMembershipPdf(User usr, OutputStream ostream) {
List<GroupMembership> memberships = getMembershipsAndCreations(usr);
try {
PDF pdf = new PDF(ostream);
Font font = new Font(pdf, CoreFont.TIMES_ROMAN);
......@@ -163,6 +178,7 @@ public class PlaceGroupBean implements PlaceGroupBeanLocal {
}
@Override
@RolesAllowed(SpecialPermission.S_USER)
public void releaseAndGenerateToken(GroupMembership gmem) {
gmem = gmemfacade.find(gmem.getId());
if (!(permbean.getCurrentUser().getId().equals(gmem.getPlaceGroup().getCreator().getId()) || permbean.hasPermission(MapPermission.MANAGE_OTHERS))) {
......@@ -172,4 +188,10 @@ public class PlaceGroupBean implements PlaceGroupBeanLocal {
gmem.setUser(null);
gmem.setInviteToken(gmemfacade.createInviteToken());
}
@Override
@RolesAllowed(SpecialPermission.S_USER)
public List<PlaceGroup> getPlacegroups(User user) {
return pgfacade.find(user);
}
}
......@@ -152,9 +152,9 @@ public class ProductBean implements ProductBeanLocal {
// discountinstancefacade.create(discInst);
accEventdiscounts.add(new DiscountInstance(ret, d));
}
user.getAccountEvents().add(ret);
// flus changes to db.
// user.getAccountEvents().add(ret);
accounteventfacade.create(ret);
// flush changes to db.
userFacade.flush();
return ret;
}
......
......@@ -22,9 +22,10 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.apps.IAppPermission;
import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.facade.RoleFacade;
import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.model.ApplicationPermission;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
/**
*
......@@ -43,16 +44,13 @@ public class RoleBean implements RoleBeanLocal {
private EventBeanLocal eventBean;
@EJB
private RoleFacade roleFacade;
@EJB
private UserFacade userFacade;
@Override
@RolesAllowed(UserPermission.S_READ_ROLES)
public List<Role> listRoles() {
return listRoles(eventBean.getCurrentEvent());
}
@RolesAllowed(UserPermission.S_READ_ROLES)
public List<Role> listRoles(LanEvent event) {
return roleFacade.findAll(event);
return roleFacade.findAll();
}
@Override
......@@ -167,4 +165,27 @@ public class RoleBean implements RoleBeanLocal {
roleFacade.flush();
return role;
}
@Override
@RolesAllowed(UserPermission.S_READ_ROLES)
public List<Role> getRoles(User user) {
return roleFacade.findForUser(user);
}
@Override
@RolesAllowed(UserPermission.S_WRITE_ROLES)
public void saveRoles(User usr, List<Role> usersRoles) {
List<Role> allRoles = roleFacade.findAll();
for (Role ur : allRoles)
{
if (usersRoles.contains(ur)) {
if (!ur.getUsers().contains(usr)) {
ur.getUsers().add(usr);
}
} else {
ur.getUsers().remove(usr);
}
}
}
}
......@@ -112,7 +112,6 @@ public class SitePageBean implements SitePageBeanLocal {
private List<PageContent> getContentsForPage(SitePage page)
{
List<Role> roles = userbean.localFindUsersRoles(permbean.getCurrentUser());
logger.info("Got userroles {}", roles);
List<PageContent> ret = null;
if (page != null && page.getAllowedRoles() != null)
......@@ -130,7 +129,6 @@ public class SitePageBean implements SitePageBeanLocal {
@Override
public List<PageContent> findContentsForUser(String name) {
SitePage page = sitepagefacade.find(name);
logger.info("Trying to fetch contents for page {}, {}", name, page);
return getContentsForPage(page);
}
}
......@@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.enums.apps.SpecialPermission;
import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.facade.GroupMembershipFacade;
import fi.insomnia.bortal.facade.PlaceGroupFacade;
import fi.insomnia.bortal.facade.RoleFacade;
import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.facade.UserImageFacade;
......@@ -99,6 +100,8 @@ public class UserBean implements UserBeanLocal {
@EJB
private RoleFacade rolefacade;
@EJB
private PlaceGroupFacade pgfacade;
@Override
@RolesAllowed(UserPermission.S_VIEW_ALL)
......@@ -321,7 +324,7 @@ public class UserBean implements UserBeanLocal {
pg.setName("Invitebean");
String token = PasswordFunctions.generateRandomString(30, PasswordFunctions.ALL_CHARS);
pg.getMembers().add(new GroupMembership(pg, null, token));
creator.getPlaceGroups().add(pg);
pgfacade.create(pg);
MailMessage msg = new MailMessage();
msg.setSubject(eventBean.getPropertyString(LanEventPropertyKey.INVITEMAIL_SUBJECT));
......@@ -344,13 +347,6 @@ public class UserBean implements UserBeanLocal {
gm.setUser(user);
gm.setInviteAccepted(Calendar.getInstance());
if (user.getGroupMemberships() == null) {
user.setGroupMemberships(new ArrayList<GroupMembership>());
}
if (!user.getGroupMemberships().contains(gm)) {
user.getGroupMemberships().add(gm);
}
userFacade.create(user);
}
......
......@@ -9,19 +9,15 @@ 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.beans.EventBeanLocal;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.Bill_;
import fi.insomnia.bortal.model.User;
@Stateless
@LocalBean
public class BillFacade extends IntegerPkGenericFacade<Bill> {
private static final Logger logger = LoggerFactory.getLogger(BillFacade.class);
@EJB
private EventBeanLocal eventbean;
......@@ -57,4 +53,14 @@ public class BillFacade extends IntegerPkGenericFacade<Bill> {
return getEm().createQuery(cq).getResultList();
}
public List<Bill> find(User user) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Bill> cq = cb.createQuery(Bill.class);
Root<Bill> root = cq.from(Bill.class);
cq.where(cb.equal(root.get(Bill_.event), eventbean.getCurrentEvent()),
cb.equal(root.get(Bill_.user), user)
);
return getEm().createQuery(cq).getResultList();
}
}
......@@ -10,6 +10,7 @@ import javax.persistence.criteria.Root;
import fi.insomnia.bortal.model.EventOrganiser;
import fi.insomnia.bortal.model.EventOrganiser_;
import fi.insomnia.bortal.model.User;
@Stateless
@LocalBean
......@@ -37,4 +38,13 @@ public class EventOrganiserFacade extends IntegerPkGenericFacade<EventOrganiser>
CriteriaQuery<EventOrganiser> cq = cb.createQuery(EventOrganiser.class);
return getEm().createQuery(cq).getResultList();
}
public List<EventOrganiser> find(User user) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<EventOrganiser> cq = cb.createQuery(EventOrganiser.class);
Root<EventOrganiser> root = cq.from(EventOrganiser.class);
cq.where(cb.equal(root.get(EventOrganiser_.admin), user));
return getEm().createQuery(cq).getResultList();
}
}
package fi.insomnia.bortal.facade;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.model.PlaceGroup;
import fi.insomnia.bortal.model.PlaceGroup_;
import fi.insomnia.bortal.model.User;
@Stateless
@LocalBean
public class PlaceGroupFacade extends IntegerPkGenericFacade<PlaceGroup> {
@EJB
private EventBeanLocal eventbean;
public PlaceGroupFacade() {
super(PlaceGroup.class);
}
public List<PlaceGroup> find(User user) {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<PlaceGroup> cq = cb.createQuery(PlaceGroup.class);
Root<PlaceGroup> root = cq.from(PlaceGroup.class);
cq.where(cb.equal(root.get(PlaceGroup_.event), eventbean.getCurrentEvent()),
cb.equal(root.get(PlaceGroup_.creator), user)
);
return getEm().createQuery(cq).getResultList();
}
}
package fi.insomnia.bortal.facade;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
......@@ -25,23 +24,6 @@ public class PrintedCardFacade extends IntegerPkGenericFacade<PrintedCard> {
super(PrintedCard.class);
}
public List<PrintedCard> findForUser(LanEvent event, User user) {
ArrayList<PrintedCard> retlist = new ArrayList<PrintedCard>();
for (PrintedCard pc : user.getPrintedCards()) {
if (pc.getEvent().equals(event)) {
retlist.add(pc);
}
}
// TypedQuery<PrintedCard> q =
// em.createQuery("SELECT pc from PrintedCard pc where pc.id.eventId = :eventid and pc.user = :user",
// PrintedCard.class);
// q.setParameter("eventid", event.getId());
// q.setParameter("user", user);
// return q.getResultList();
return retlist;
}
@EJB
private EventBeanLocal eventbean;
......
......@@ -51,11 +51,11 @@ public class RoleFacade extends IntegerPkGenericFacade<Role> {
return ret;
}
public List<Role> findAll(LanEvent event) {
public List<Role> findAll() {
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Role> cq = cb.createQuery(Role.class);
Root<Role> root = cq.from(Role.class);
cq.where(cb.equal(root.get(Role_.event), event));
cq.where(cb.equal(root.get(Role_.event), eventbean.getCurrentEvent()));
return getEm().createQuery(cq).getResultList();
}
......
......@@ -22,7 +22,7 @@ public interface AccountEventBeanLocal {
List<Role> getRolesFromAccountEvents(User u);
List<AccountEvent> shopCash(User shoppingUser, Map<Product, BigDecimal>
void shopCash(User shoppingUser, Map<Product, BigDecimal>
shopMap, boolean buyInstant);
BigDecimal getAccountBalance(User user);
......
......@@ -9,6 +9,7 @@ import javax.ejb.Local;
import fi.insomnia.bortal.bortal.views.BillSummary;
import fi.insomnia.bortal.model.Bill;
import fi.insomnia.bortal.model.User;
@Local
public interface BillBeanLocal {
......@@ -33,4 +34,6 @@ public interface BillBeanLocal {
Bill save(Bill bill);
List<Bill> find(User user);
}
......@@ -6,6 +6,7 @@ import javax.ejb.Local;
import fi.insomnia.bortal.model.EventOrganiser;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.User;
@Local
public interface EventOrganiserBeanLocal {
......@@ -20,4 +21,6 @@ public interface EventOrganiserBeanLocal {
LanEvent findEvent(Integer eventid);
List<EventOrganiser> getOrganisations(User user);
}
......@@ -6,6 +6,7 @@ import java.util.List;
import javax.ejb.Local;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.PlaceGroup;
import fi.insomnia.bortal.model.User;
@Local
......@@ -21,10 +22,12 @@ public interface PlaceGroupBeanLocal {
void releaseAndGenerateToken(GroupMembership gmem);
void getGroupMembershipPdf(List<GroupMembership> memberships, OutputStream ostream);
List<GroupMembership> getMembershipsAndCreations(User user);
List<GroupMembership> getMemberships(User user);
List<PlaceGroup> getPlacegroups(User user);
void getGroupMembershipPdf(User usr, OutputStream ostream);
}
......@@ -11,6 +11,7 @@ import javax.ejb.Local;
import fi.insomnia.bortal.enums.apps.IAppPermission;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
/**
*
......@@ -31,4 +32,8 @@ public interface RoleBeanLocal {
public Role setPermissions(Role role, List<IAppPermission> newPerms);
public List<Role> getRoles(User selectedUser);
public void saveRoles(User usr, List<Role> usersRoles);
}
......@@ -198,7 +198,8 @@ public class Bill extends GenericEntity {
public Calendar getDueDate() {
Calendar dueDate = (Calendar) this.getSentDate().clone();
Calendar dueDate = Calendar.getInstance();
dueDate.setTime(this.getSentDate());
dueDate.add(Calendar.DATE, this.getPaymentTime());
return dueDate;
}
......
......@@ -7,6 +7,7 @@ import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
......@@ -36,7 +37,10 @@ public class Role extends GenericEntity {
@Column(name = NAME_COLUMN, nullable = false)
private String name;
@ManyToMany(mappedBy = "roles")
@ManyToMany()
@JoinTable(name = "role_memberships",
joinColumns = { @JoinColumn(name = "role_id", referencedColumnName = Role.ID_COLUMN) },
inverseJoinColumns = { @JoinColumn(name = "user_id", referencedColumnName = User.ID_COLUMN) })
private List<User> users;
@ManyToMany(mappedBy = "parents")
......
package fi.insomnia.bortal.model;
import static javax.persistence.CascadeType.ALL;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
......@@ -13,8 +10,6 @@ import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.OrderBy;
......@@ -106,78 +101,74 @@ public class User extends GenericEntity {
@Column(name = "superadmin")
private boolean superadmin = false;
@OneToMany(mappedBy = "voter", cascade = CascadeType.ALL)
private List<Vote> votes;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<UserNote> notes;
@ManyToMany()
@JoinTable(name = "role_memberships", inverseJoinColumns = {
@JoinColumn(name = "role_id", referencedColumnName = Role.ID_COLUMN) },
joinColumns = { @JoinColumn(name = "user_id", referencedColumnName = "id") })
private List<Role> roles = new ArrayList<Role>();
@OneToMany(mappedBy = "user")
private List<LogEntry> logEntryList;
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@OrderBy
@PrivateOwned
private List<UserImage> userImageList;
@OneToMany(mappedBy = "user")
private List<CompoEntryParticipant> compoEntryParticipants;
@OneToMany(mappedBy = "creator")
@OrderBy("id")
private List<CompoEntry> compoEntries;
@OneToMany(mappedBy = "creator", cascade = ALL)
private List<PlaceGroup> placeGroups = new ArrayList<PlaceGroup>();
@OneToMany(mappedBy = "user")
private List<GroupMembership> groupMemberships;
/**
* The places this user has registered into.
*/
@OneToMany(mappedBy = "currentUser", fetch = FetchType.LAZY)
@OrderBy("id")
private List<Place> currentPlaces;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
private List<PrintedCard> printedCards;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
@OrderBy("id")
private List<AccountEvent> accountEvents;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
@OrderBy("id")
private List<Bill> bills;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "seller")
@OrderBy("id")
private List<AccountEvent> soldItems;
@OneToMany(mappedBy = "admin")
private List<EventOrganiser> eventOrganiser;
@OneToMany(mappedBy = "user")
private List<PollAnswer> pollAnswers;
// NOTICE!!!!
// These parameters are event specific and should not be accessed directly!
//
// @OneToMany(mappedBy = "voter", cascade = CascadeType.ALL)
// private List<Vote> votes;
//
// @OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
// private List<UserNote> notes;
//
// @ManyToMany()
// @JoinTable(name = "role_memberships", inverseJoinColumns = {
// @JoinColumn(name = "role_id", referencedColumnName = Role.ID_COLUMN) },
// joinColumns = { @JoinColumn(name = "user_id", referencedColumnName =
// "id") })
// private List<Role> roles = new ArrayList<Role>();
//
// @OneToMany(mappedBy = "user")
// private List<LogEntry> logEntryList;
//
// @OneToMany(mappedBy = "user")
// private List<CompoEntryParticipant> compoEntryParticipants;
//
// @OneToMany(mappedBy = "creator")
// @OrderBy("id")
// private List<CompoEntry> compoEntries;
//
// @OneToMany(mappedBy = "creator", cascade = ALL)
// private List<PlaceGroup> placeGroups = new ArrayList<PlaceGroup>();
//
// @OneToMany(mappedBy = "user")
// private List<GroupMembership> groupMemberships;
//
// /**
// * The places this user has registered into.
// */
// @OneToMany(mappedBy = "currentUser", fetch = FetchType.LAZY)
// @OrderBy("id")
// private List<Place> currentPlaces;
//
// @OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
// private List<PrintedCard> printedCards;
//
// @OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
// @OrderBy("id")
// private List<AccountEvent> accountEvents;
//
// @OneToMany(cascade = CascadeType.ALL, mappedBy = "user")
// @OrderBy("id")
// private List<Bill> bills;
//
// @OneToMany(cascade = CascadeType.ALL, mappedBy = "seller")
// @OrderBy("id")
// private List<AccountEvent> soldItems;
//
// @OneToMany(mappedBy = "admin")
// private List<EventOrganiser> eventOrganiser;
//
// @OneToMany(mappedBy = "user")
// private List<PollAnswer> pollAnswers;
@Transient
private static final Logger logger = LoggerFactory.getLogger(User.class);
public List<Vote> getVotes() {
return votes;
}
public void setVotes(List<Vote> votes) {
this.votes = votes;
}
public Calendar getCreated() {
return created;
}
......@@ -300,22 +291,6 @@ public class User extends GenericEntity {
}
public List<Vote> getVoteList() {
return votes;
}
public void setVoteList(List<Vote> voteList) {
this.votes = voteList;
}
public List<LogEntry> getLogEntryList() {
return logEntryList;
}
public void setLogEntryList(List<LogEntry> logEntryList) {
this.logEntryList = logEntryList;
}
public List<UserImage> getUserImageList() {
return userImageList;
}
......@@ -324,87 +299,6 @@ public class User extends GenericEntity {
this.userImageList = userImageList;
}
public List<CompoEntryParticipant> getCompoEntryParticipants() {
return compoEntryParticipants;
}
public void setCompoEntryParticipants(
List<CompoEntryParticipant> compoEntryParticipantList) {
this.compoEntryParticipants = compoEntryParticipantList;
}
public List<CompoEntry> getCompoEntries() {
return compoEntries;
}
public void setCompoEntries(List<CompoEntry> compoEntryList) {
this.compoEntries = compoEntryList;
}
public List<PlaceGroup> getPlaceGroups() {
return placeGroups;
}
public void setPlaceGroups(List<PlaceGroup> placeGroupList) {
this.placeGroups = placeGroupList;
}
public List<GroupMembership> getGroupMemberships() {
return groupMemberships;
}
public void setGroupMemberships(List<GroupMembership> groupMembershipList) {
this.groupMemberships = groupMembershipList;
}
public List<Place> getCurrentPlaces() {
return currentPlaces;
}
public void setCurrentPlaces(List<Place> placeList) {
this.currentPlaces = placeList;
}
public List<PrintedCard> getPrintedCards() {
return printedCards;
}
public void setPrintedCards(List<PrintedCard> printedCardList) {
this.printedCards = printedCardList;
}
public List<AccountEvent> getAccountEvents() {
return accountEvents;
}
public void setAccountEvents(List<AccountEvent> accountEventList) {
this.accountEvents = accountEventList;
}
public List<Bill> getBills() {
return bills;
}
public void setBills(List<Bill> billList) {
this.bills = billList;
}
public void setRoles(List<Role> roles) {
this.roles = roles;
}
public List<Role> getRoles() {
return roles;
}
public void setSoldItems(List<AccountEvent> accountEvents) {
this.soldItems = accountEvents;
}
public List<AccountEvent> getSoldItems() {
return soldItems;
}
/**
* @return the confirmHash
*/
......@@ -445,14 +339,6 @@ public class User extends GenericEntity {
return matches;
}
public void setEventOrganiser(List<EventOrganiser> eventOrganiser) {
this.eventOrganiser = eventOrganiser;
}
public List<EventOrganiser> getEventOrganiser() {
return eventOrganiser;
}
public void setSuperadmin(boolean superadmin) {
this.superadmin = superadmin;
}
......@@ -485,14 +371,6 @@ public class User extends GenericEntity {
return currentImage;
}
public void setPollAnswers(List<PollAnswer> pollAnswers) {
this.pollAnswers = pollAnswers;
}
public List<PollAnswer> getPollAnswers() {
return pollAnswers;
}
@Transient
private Boolean isAnon;
......@@ -503,11 +381,4 @@ public class User extends GenericEntity {
return isAnon;
}
public List<UserNote> getNotes() {
return notes;
}
public void setNotes(List<UserNote> notes) {
this.notes = notes;
}
}
......@@ -2,13 +2,15 @@
<pageflow:Pageflow xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pageflow="http://www.sybase.com/suade/pageflow" id="pf13012981621060" configfile="/LanBortalWeb/WebContent/WEB-INF/faces-config.xml">
<nodes xsi:type="pageflow:PFPage" name="*" x="122" y="370" id="pf131682121330014" referenceLink="//@navigationRule.0/@fromViewId|" outlinks="pf131682121330015 pf13196506256640" path="*"/>
<nodes xsi:type="pageflow:PFPage" name="auth/logoutResponse" x="338" y="178" id="pf131682121330016" referenceLink="//@navigationRule.0/@navigationCase.0/@toViewId|" inlinks="pf131682121330015" path="/auth/logoutResponse"/>
<nodes xsi:type="pageflow:PFPage" name="place/placemap" x="122" y="754" id="pf13168224196920" referenceLink="//@navigationRule.2/@navigationCase.0/@toViewId|" outlinks="pf13168224196921" inlinks="pf13168224196921" path="/place/placemap"/>
<nodes xsi:type="pageflow:PFPage" name="place/placemap" x="122" y="754" id="pf13168224196920" referenceLink="//@navigationRule.3/@navigationCase.0/@toViewId|" outlinks="pf13168224196921" inlinks="pf13168224196921" path="/place/placemap"/>
<nodes xsi:type="pageflow:PFPage" name="user/sendPicture" x="338" y="562" id="pf13196506256641" referenceLink="//@navigationRule.0/@navigationCase.1/@toViewId|" inlinks="pf13196506256640" path="/user/sendPicture"/>
<nodes xsi:type="pageflow:PFPage" name="news/edit" x="122" y="1138" id="pf13241645918110" path="/news/edit.xhtml"/>
<nodes xsi:type="pageflow:PFPage" name="news/listAll" x="122" y="1522" id="pf13241645918111" path="/news/listAll.xhtml"/>
<nodes xsi:type="pageflow:PFPage" name="actionlog/messagelist" x="122" y="2290" id="pf13336707109910" referenceLink="//@navigationRule.3/@navigationCase.0/@toViewId|" outlinks="pf13336707109911" inlinks="pf13336707109911" path="/actionlog/messagelist.xhtml"/>
<nodes xsi:type="pageflow:PFPage" name="news/editNews" id="pf13336707109912" referenceLink="//@navigationRule.1/@fromViewId|" outlinks="pf13336707109913" path="/news/editNews"/>
<nodes xsi:type="pageflow:PFPage" name="news/listAll" id="pf13336707109914" referenceLink="//@navigationRule.1/@navigationCase.0/@toViewId|" inlinks="pf13336707109913" path="/news/listAll"/>
<nodes xsi:type="pageflow:PFPage" name="actionlog/messagelist" x="122" y="2290" id="pf13336707109910" referenceLink="//@navigationRule.4/@navigationCase.0/@toViewId|" outlinks="pf13336707109911" inlinks="pf13336707109911" path="/actionlog/messagelist.xhtml"/>
<nodes xsi:type="pageflow:PFPage" name="news/editNews" x="36" y="96" id="pf13336707109912" referenceLink="//@navigationRule.1/@fromViewId|" outlinks="pf13336707109913" path="/news/editNews"/>
<nodes xsi:type="pageflow:PFPage" name="news/listAll" x="352" y="84" id="pf13336707109914" referenceLink="//@navigationRule.1/@navigationCase.0/@toViewId|" inlinks="pf13336707109913" path="/news/listAll"/>
<nodes xsi:type="pageflow:PFPage" name="shop/createBill" x="468" y="144" id="pf13365201875590" referenceLink="//@navigationRule.2/@fromViewId|" outlinks="pf13365201875591" path="/shop/createBill"/>
<nodes xsi:type="pageflow:PFPage" name="bill/list" x="732" y="96" id="pf13365201875592" referenceLink="//@navigationRule.2/@navigationCase.0/@toViewId|" inlinks="pf13365201875591" path="/bill/list"/>
<links id="pf131682121330015" target="pf131682121330016" source="pf131682121330014" outcome="logoutDone" redirect="true"/>
<links id="pf13196506256640" target="pf13196506256641" source="pf131682121330014" outcome="redirToUserimage" redirect="true"/>
<links id="pf13168224196921" target="pf13168224196920" source="pf13168224196920" outcome="placesReserved" redirect="true">
......@@ -22,4 +24,5 @@
<bendPoints d1Width="-64" d2Width="-64"/>
</links>
<links id="pf13336707109913" target="pf13336707109914" source="pf13336707109912" outcome="news/listAll" redirect="true"/>
<links id="pf13365201875591" target="pf13365201875592" source="pf13365201875590" outcome="bill_list" redirect="true"/>
</pageflow:Pageflow>
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
......@@ -48,10 +49,10 @@
<navigation-case>
<from-outcome>logoutDone</from-outcome>
<to-view-id>/auth/logoutResponse</to-view-id>
<redirect/>
<redirect />
</navigation-case>
<navigation-case>
<navigation-case>
<from-outcome>redirToUserimage</from-outcome>
<to-view-id>/user/sendPicture</to-view-id>
<redirect>
......@@ -61,6 +62,11 @@
</view-param>
</redirect>
</navigation-case>
<navigation-case>
<from-outcome>redirBillList</from-outcome>
<to-view-id>/bill/list</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
......@@ -69,7 +75,7 @@
<navigation-case>
<from-outcome>news/listAll</from-outcome>
<to-view-id>/news/listAll</to-view-id>
<redirect/>
<redirect />
</navigation-case>
</navigation-rule>
......@@ -83,11 +89,11 @@
<!-- </navigation-case> -->
<!-- </navigation-rule> -->
<!-- <navigation-rule> -->
<!-- <from-view-id>/product/createBill.xhtml</from-view-id> -->
<!-- <from-view-id>/shop/createBill</from-view-id> -->
<!-- <navigation-case> -->
<!-- <from-outcome>success</from-outcome> -->
<!-- <to-view-id>/bill/list.xhtml</to-view-id> -->
<!-- <from-outcome>bill_list</from-outcome> -->
<!-- <to-view-id>/bill/list</to-view-id> -->
<!-- <redirect /> -->
<!-- </navigation-case> -->
<!-- </navigation-rule> -->
<factory>
......@@ -99,7 +105,7 @@
<navigation-case>
<from-outcome>placesReserved</from-outcome>
<to-view-id>/place/placemap</to-view-id>
<redirect/>
<redirect />
</navigation-case>
</navigation-rule>
<navigation-rule>
......@@ -108,7 +114,7 @@
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/actionlog/messagelist.xhtml</to-view-id>
<redirect/>
<redirect />
</navigation-case>
</navigation-rule>
</faces-config>
......
......@@ -104,16 +104,7 @@
value="#{userView.passwordcheck}"
/>
<h:message rendered="#{cc.attrs.creating}" for="passwordcheck" />
<h:outputLabel rendered="#{roleView.canReadRoles()}" value="#{i18n['user.roles']}:" for="roles" />
<h:selectManyCheckbox converter="#{roleConverter}" rendered="#{roleView.canReadRoles()}"
disabled="#{!roleView.canWriteRoles()}" layout="pageDirection" id="roles" value="#{userView.selectedUser.roles}"
>
<f:selectItems var="roleitem" itemLabel="#{roleitem.name}" value="#{roleDataView.roles}" />
</h:selectManyCheckbox>
<h:message rendered="#{roleView.canReadRoles()}" for="roles" />
<h:commandButton rendered="#{cc.attrs.creating or userView.canSave()}" id="commitbtn"
action="#{cc.attrs.commitaction}" value="#{cc.attrs.commitvalue}"
/>
......
......@@ -7,7 +7,6 @@
>
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<ui:param name="thispage" value="page.role.edit" />
<f:metadata>
<f:viewParam name="roleid" value="#{roleView.roleid}" />
<f:event type="preRenderView" listener="#{roleView.initViewFromId()}" />
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:tools="http://java.sun.com/jsf/composite/cditools"
xmlns:account="http://java.sun.com/jsf/composite/cditools/account" xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:account="http://java.sun.com/jsf/composite/cditools/account"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
......@@ -17,81 +15,9 @@
</ui:define>
<ui:define name="content">
<users:edit commitaction="#{userView.saveUser()}" commitvalue="#{i18n['user.save']}" />
<!--
<h2>#{i18n['user.accountEventHeader']}</h2>
<h:outputText rendered="#{userView.user.accountEvents.size() le 0}" value="#{i18n['user.noAccountevents']}" />
<account:list rendered="#{!empty userView.user.accountEvents}" accountevents="#{userView.user.accountEvents}" />
<h2>#{i18n['user.placegroups']}</h2>
<h:outputText value="#{i18n['user.noPlacegroups']}" rendered="#{empty userView.user.placeGroups}" />
<h:form id="placegrouplist" rendered="#{!empty userView.user.placeGroups}">
<h:dataTable border="1" id="placegroup" value="#{userView.user.placeGroups}" var="placegroup">
<h:column>
<f:facet name="header">
<h:outputText value="ID" />
</f:facet>
<h:outputText value="#{placegroup.id}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.name']}" />
</f:facet>
<h:outputText value="#{placegroup.name}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.creator']}" />
</f:facet>
<h:outputText value="#{placegroup.creator.wholeName}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.created']}" />
</f:facet>
<h:outputText value="#{placegroup.created.time}">
<f:convertDateTime />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.edited']}" />
</f:facet>
<h:outputText value="#{placegroup.edited.time}">
<f:convertDateTime />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.details']}" />
</f:facet>
<h:outputText value="#{placegroup.details}">
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.places']}" />
</f:facet>
<h:dataTable border="0" id="placegroup" value="#{placegroup.places}" var="place">
<h:column>
<h:outputText value="#{place.name}" />
</h:column>
<h:column>
<h:outputText rendered="#{! empty place.placeReserver}" value="#{place.placeReserver.user.nick}" />
</h:column>
</h:dataTable>
</h:column>
<h:column>
<h:commandButton id="saverole" action="#{placegroupView.editGroup()}" value="#{i18n['placegroup.edit']}" />
</h:column>
</h:dataTable>
</h:form>
-->
</ui:define>
</ui:composition>
</h:body>
......
<!DOCTYPE html
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
......@@ -95,7 +95,7 @@
</h:form>
<h3>RFID</h3>
<h:form rendered="#{empty readerView.readername}">
<h:form rendered="#{empty readerNameContainer.readerId}">
<h:dataTable border="1" id="reader" value="#{readerListDataView.readers}" var="rr">
<h:column>
<f:facet name="header">
......@@ -109,7 +109,7 @@
</h:dataTable>
</h:form>
<shop:readerevents rendered="#{!empty readerView.readername}" />
<shop:readerevents rendered="#{!empty readerNameContainer.readerId}" />
</ui:fragment>
......
......@@ -18,8 +18,8 @@
</ui:define>
<ui:define name="content">
<h:outputLabel value="#{i18n['user.accountBalance']}: " for="accountbalance" />
<h:outputText id="accountbalance" value="#{userView.user.accountBalance}" />
<h:dataTable border="1" id="ac" value="#{userView.user.accountEvents}" var="ac">
<h:outputText id="accountbalance" value="#{userView.accountBalance}" />
<h:dataTable border="1" id="ac" value="#{userView.accountEvents}" var="ac">
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['accountEvent.productname']}" />
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:tools="http://java.sun.com/jsf/composite/cditools"
xmlns:account="http://java.sun.com/jsf/composite/cditools/account" xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:account="http://java.sun.com/jsf/composite/cditools/account"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
<f:metadata>
......@@ -18,81 +16,22 @@
</ui:define>
<ui:define name="content">
<users:edit commitaction="#{userView.saveUser()}" commitvalue="#{i18n['user.save']}" />
<!--
<h2>#{i18n['user.accountEventHeader']}</h2>
<h:outputText rendered="#{userView.user.accountEvents.size() le 0}" value="#{i18n['user.noAccountevents']}" />
<account:list rendered="#{!empty userView.user.accountEvents}" accountevents="#{userView.user.accountEvents}" />
<h:form id="roleform" rendered="#{roleView.canReadRoles()}">
<h2>
<h:outputText value="#{i18n['user.roles']}:" />
</h2>
<h:selectManyCheckbox converter="#{roleConverter}" disabled="#{!roleView.canWriteRoles()}" layout="pageDirection" id="roles" value="#{userView.usersRoles}">
<f:selectItems var="roleitem" itemLabel="#{roleitem.name}" value="#{roleDataView.roles}" />
</h:selectManyCheckbox>
<div>
<h:message rendered="#{roleView.canReadRoles()}" for="roles" />
</div>
<h:commandButton action="#{userView.saveRoles}" value="#{i18n['user.saveRoles']}" />
<h2>#{i18n['user.placegroups']}</h2>
<h:outputText value="#{i18n['user.noPlacegroups']}" rendered="#{empty userView.user.placeGroups}" />
<h:form id="placegrouplist" rendered="#{!empty userView.user.placeGroups}">
<h:dataTable border="1" id="placegroup" value="#{userView.user.placeGroups}" var="placegroup">
<h:column>
<f:facet name="header">
<h:outputText value="ID" />
</f:facet>
<h:outputText value="#{placegroup.id}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.name']}" />
</f:facet>
<h:outputText value="#{placegroup.name}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.creator']}" />
</f:facet>
<h:outputText value="#{placegroup.creator.wholeName}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.created']}" />
</f:facet>
<h:outputText value="#{placegroup.created.time}">
<f:convertDateTime />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.edited']}" />
</f:facet>
<h:outputText value="#{placegroup.edited.time}">
<f:convertDateTime />
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.details']}" />
</f:facet>
<h:outputText value="#{placegroup.details}">
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{i18n['placegroup.places']}" />
</f:facet>
<h:dataTable border="0" id="placegroup" value="#{placegroup.places}" var="place">
<h:column>
<h:outputText value="#{place.name}" />
</h:column>
<h:column>
<h:outputText rendered="#{! empty place.placeReserver}" value="#{place.placeReserver.user.nick}" />
</h:column>
</h:dataTable>
</h:column>
<h:column>
<h:commandButton id="saverole" action="#{placegroupView.editGroup()}" value="#{i18n['placegroup.edit']}" />
</h:column>
</h:dataTable>
</h:form>
-->
</ui:define>
</ui:composition>
</h:body>
......
......@@ -495,6 +495,7 @@ user.sex.FEMALE = Female
user.sex.MALE = Male
user.sex.UNDEFINED = Undefined
user.shop = Buy
user.successfullySaved = Changes saved successfully
user.superadmin = Superadmin
user.thisIsCurrentImage = Current image
user.town = City
......
package fi.insomnia.bortal.servlet;
import java.io.IOException;
import java.util.List;
import javax.ejb.EJB;
import javax.servlet.ServletException;
......@@ -15,7 +14,6 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.PermissionBeanLocal;
import fi.insomnia.bortal.beans.PlaceGroupBeanLocal;
import fi.insomnia.bortal.model.GroupMembership;
/**
* Servlet implementation class PlaceGroupPdf
......@@ -48,10 +46,9 @@ public class PlaceGroupPdf extends HttpServlet {
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "filename=Reservations.pdf");
List<GroupMembership> members = pgbean.getMembershipsAndCreations(permbean.getCurrentUser());
ServletOutputStream ostream = response.getOutputStream();
pgbean.getGroupMembershipPdf(members, ostream);
pgbean.getGroupMembershipPdf(permbean.getCurrentUser(), ostream);
// ByteArrayOutputStream billstream = new ByteArrayOutputStream();
// billentity.getPdfBillStream(bill, billstream);
......
......@@ -10,7 +10,6 @@ import javax.inject.Inject;
import javax.inject.Named;
import fi.insomnia.bortal.beans.PlaceGroupBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.apps.MapPermission;
import fi.insomnia.bortal.model.GroupMembership;
import fi.insomnia.bortal.model.Place;
......@@ -33,8 +32,6 @@ public class PlacegroupView extends GenericCDIView {
@EJB
private transient PlaceGroupBeanLocal placegroupBean;
@EJB
private transient UserBeanLocal userbean;
private Place place;
private PlaceGroup group;
......@@ -85,9 +82,9 @@ public class PlacegroupView extends GenericCDIView {
public ListDataModel<PlaceGroup> getPlacegroups() {
if (placegroups == null) {
List<PlaceGroup> retlist = new ArrayList<PlaceGroup>();
retlist.addAll(user.getPlaceGroups());
retlist.addAll(placegroupBean.getPlacegroups(user));
for (GroupMembership gm : user.getGroupMemberships()) {
for (GroupMembership gm : placegroupBean.getMemberships(user)) {
if (!retlist.contains(gm.getPlaceGroup())) {
retlist.add(gm.getPlaceGroup());
}
......
......@@ -91,7 +91,7 @@ public class EventOrgView extends GenericCDIView {
if (getUser().isSuperadmin()) {
setOrganisations(eventorgbean.getEventOrganisers());
} else {
setOrganisations(getUser().getEventOrganiser());
setOrganisations(eventorgbean.getOrganisations(getUser()));
}
}
}
......
......@@ -33,7 +33,7 @@ public class BillListView extends GenericCDIView {
@EJB
private transient BillBeanLocal billbean;
private transient ListDataModel<Bill> bills;
private ListDataModel<Bill> bills;
private boolean writeBill;
......@@ -57,7 +57,7 @@ public class BillListView extends GenericCDIView {
public void initUsersBills() {
if (requirePermissions(BillPermission.VIEW_OWN, permbean.isLoggedIn())) {
beginConversation();
bills = new ListDataModel<Bill>(user.getBills());
bills = new ListDataModel<Bill>(billbean.find(user));
writeBill = permbean.hasPermission(BillPermission.WRITE_ALL);
}
......@@ -80,10 +80,7 @@ public class BillListView extends GenericCDIView {
}
public ListDataModel<Bill> getBills() {
if (bills == null) {
bills = new ListDataModel<Bill>(user.getBills());
beginConversation();
}
return bills;
}
......
......@@ -47,6 +47,8 @@ public class ProductShopView extends GenericCDIView {
private boolean payInstant;
private transient ListDataModel<ProductShopItem> shoppingcart;
@Inject
private BillListView billListView;
public void initView() {
boolean ok = true;
......@@ -100,8 +102,7 @@ public class ProductShopView extends GenericCDIView {
}
billbean.createBill(bill);
addFaceMessage("productshop.billCreated");
return "/bill/list";
return "redirBillList";
}
public void setUser(User user) {
......@@ -137,4 +138,12 @@ public class ProductShopView extends GenericCDIView {
public boolean isPayInstant() {
return payInstant;
}
public BillListView getBillListView() {
return billListView;
}
public void setBillListView(BillListView billListView) {
this.billListView = billListView;
}
}
......@@ -69,8 +69,7 @@ public class RoleView extends GenericCDIView {
}
public void initViewFromId() {
if (requirePermissions(UserPermission.READ_ROLES, roleid != null)
&& role == null) {
if (requirePermissions(UserPermission.READ_ROLES) && role == null) {
super.beginConversation();
setRole(rolebean.find(getRoleid()));
......
......@@ -18,10 +18,12 @@ import org.slf4j.LoggerFactory;
import fi.insomnia.bortal.beans.AccountEventBeanLocal;
import fi.insomnia.bortal.beans.CardTemplateBeanLocal;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.apps.UserPermission;
import fi.insomnia.bortal.model.AccountEvent;
import fi.insomnia.bortal.model.PrintedCard;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.model.UserImage;
import fi.insomnia.bortal.web.annotations.LoggedIn;
......@@ -67,6 +69,9 @@ public class UserView extends GenericCDIView {
@EJB
private AccountEventBeanLocal acbean;
private List<AccountEvent> accountevents;
private List<Role> usersRoles;
@EJB
private RoleBeanLocal rolebean;
@Produces
@LoggedIn
......@@ -87,6 +92,20 @@ public class UserView extends GenericCDIView {
return user;
}
public void saveRoles()
{
rolebean.saveRoles(user, usersRoles);
usersRoles = null;
}
public List<Role> getUsersRoles() {
if (usersRoles == null && user != null)
{
usersRoles = rolebean.getRoles(getSelectedUser());
}
return usersRoles;
}
public BigDecimal getAccountBalance()
{
if (balance == null)
......@@ -244,4 +263,8 @@ public class UserView extends GenericCDIView {
public void setCroppedImage(CroppedImage croppedImage) {
this.croppedImage = croppedImage;
}
public void setUsersRoles(List<Role> usersRoles) {
this.usersRoles = usersRoles;
}
}
......@@ -19,7 +19,6 @@ public class LayoutView {
@Inject
private FacesContext context;
private ResourceBundle rb;
private String pagegroup;
private String pagename;
private static final Logger logger = LoggerFactory.getLogger(LayoutView.class);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!