@Before public void setUp() throws Exception { ueb = new Uebergabeblatt(); initializeNiederlassungen(); initializeZuege(); ueb.initializeBeteiligteRb(); ueb.refreshZugStatusRbEntry(); }
@Test public void testInitializeBeteiligteRegionalbereiche() { ueb.initializeBeteiligteRb(); Set<Regionalbereich> beteiligteRbs = ueb.getBeteiligteRegionalbereiche(); assertEquals(2, beteiligteRbs.size()); assertTrue(beteiligteRbs.contains(new Regionalbereich(rb1))); assertTrue(beteiligteRbs.contains(new Regionalbereich(rb2))); }
@SuppressWarnings("unchecked") /* * Gibt ACCESS_GRANTED zurueck, wenn der Benutzer eine Rolle hat, die ihm eine der * requestedAuthorizations auf die Baumassnahme erlaubt. * * <pre> requested: baumassnahme_bewerten, granted: baumassnahme_bewerten_alle oder * baumassnahme_bewerten_region, wenn die Region dem Benutzer zugeordnet ist </pre> */ public int vote(Authentication authentication, Object object, ConfigAttributeDefinition config) { int result = ACCESS_DENIED; User user = UserServiceImpl.getCurrentApplicationUser(); Uebergabeblatt zvf = (Uebergabeblatt) object; Iterator iter = config.getConfigAttributes(); while (iter.hasNext()) { // Schleife über erforderliche Berechtigungen ConfigAttribute attribute = (ConfigAttribute) iter.next(); if (supports(attribute)) { GrantedAuthority[] authorities = authentication.getAuthorities(); // Schleife über vorhandene Berechtigungen for (int i = 0; i < authorities.length; i++) { if (authorities[i].getAuthority().startsWith(attribute.getAttribute())) { if (logger.isDebugEnabled()) logger.debug(String.format("Found authority %s", authorities[i])); // Zentral if (authorities[i].getAuthority().endsWith("_ALLE")) result = ACCESS_GRANTED; // Regional else if (authorities[i].getAuthority().endsWith("_REGIONALBEREICH")) { if (attribute.getAttribute().startsWith("ROLE_BBZR_ANLEGEN")) { result = ACCESS_GRANTED; } else if (user.getRegionalbereich() != null) { // MasterRB try { String masterRB = zvf.getMassnahmen().iterator().next().getMasterniederlassung().substring(3); if (user.getRegionalbereich().getName().equalsIgnoreCase(masterRB)) result = ACCESS_GRANTED; } catch (NoSuchElementException e) { } } } if (result == ACCESS_GRANTED) break; } } } } return result; }
@Override public void fill(Uebergabeblatt bbzr, Collection<FetchPlan> plans) { if (log.isDebugEnabled()) log.debug("Entering BbzrServiceImpl:fill()"); if (plans.contains(FetchPlan.BBZR_HEADER) || plans.contains(FetchPlan.UEB_HEADER_SENDER) || plans.contains(FetchPlan.UEB_HEADER_EMPFAENGER)) { Hibernate.initialize(bbzr.getHeader()); if (plans.contains(FetchPlan.UEB_HEADER_SENDER) && bbzr.getHeader() != null) Hibernate.initialize(bbzr.getHeader().getSender()); if (plans.contains(FetchPlan.UEB_HEADER_EMPFAENGER) && bbzr.getHeader() != null) { Header h = bbzr.getHeader(); Hibernate.initialize(h.getEmpfaenger()); } } if (plans.contains(FetchPlan.BBZR_BAUMASSNAHMEN)) { Hibernate.initialize(bbzr.getMassnahmen()); for (Massnahme m : bbzr.getMassnahmen()) { if (m == null) continue; if (plans.contains(FetchPlan.ZVF_MN_VERSION)) { Hibernate.initialize(m.getVersion()); } if (plans.contains(FetchPlan.ZVF_MN_STRECKEN)) { Hibernate.initialize(m.getStrecke()); if (plans.contains(FetchPlan.ZVF_MN_STRECKE_STRECKEVZG)) { StreckeService streckeService = EasyServiceFactory.getInstance().createStreckeService(); streckeService.fill(m.getStrecke(), plans); } } if (plans.contains(FetchPlan.ZVF_MN_BBPSTRECKE)) { Hibernate.initialize(m.getBbp()); } if (plans.contains(FetchPlan.ZVF_MN_ALLG_REGELUNGEN)) { Hibernate.initialize(m.getAllgregelungen()); } if (plans.contains(FetchPlan.BBZR_MN_ZUEGE)) { Hibernate.initialize(m.getZug()); if (m.getZug() != null) { // uebergabeblattspezifische fetchplans entfernen FetchPlan[] newFetchPlans = new FetchPlan[0]; List<FetchPlan> newPlans = new ArrayList<FetchPlan>(plans); newPlans.remove(FetchPlan.UEB_MN_ZUEGE); newPlans.remove(FetchPlan.UEB_KNOTENZEITEN); newPlans.remove(FetchPlan.UEB_BEARBEITUNGSSTATUS); newFetchPlans = newPlans.toArray(newFetchPlans); ZugService zugService = EasyServiceFactory.getInstance().createZugService(); zugService.fill(m.getZug(), newFetchPlans); } } } } }
@Test public void testZugstatusRefresh() { ueb.initializeBeteiligteRb(); ueb.refreshZugStatusRbEntry(); Massnahme m = ueb.getMassnahmen().iterator().next(); Zug z1 = m.getZug().get(0); Zug z2 = m.getZug().get(1); Map<Regionalbereich, Boolean> status1 = z1.getBearbeitungsStatusMap(); Map<Regionalbereich, Boolean> status2 = z2.getBearbeitungsStatusMap(); assertEquals(2, status1.size()); assertEquals(2, status2.size()); Set<Regionalbereich> rbs1 = status1.keySet(); assertTrue(rbs1.contains(new Regionalbereich(rb1))); assertTrue(rbs1.contains(new Regionalbereich(rb2))); Set<Regionalbereich> rbs2 = status1.keySet(); assertTrue(rbs2.contains(new Regionalbereich(rb1))); assertTrue(rbs2.contains(new Regionalbereich(rb2))); }
private void initializeNiederlassungen() { List<Niederlassung> niederlassungen = ueb.getMassnahmen().iterator().next().getFplonr().getNiederlassungen(); RegionalbereichService rbService = new RegionalbereichServiceImpl(); List<Regionalbereich> rbs = rbService.findAll(); List<String> rbNames = RegionalbereichAdapter.getRegionalbereichNames(); for (Regionalbereich r : rbs) { if (rbNames.contains(r.getName())) { niederlassungen.add(new Niederlassung(r)); } } for (Niederlassung n : niederlassungen) { if (n.getRegionalbereich().getName().equals(rb1) || n.getRegionalbereich().getName().equals(rb2)) n.setBeteiligt(true); } }
@Test public void testGetStatusZug2() { Zug z2 = ueb.getMassnahmen().iterator().next().getZug().get(0); Map<Regionalbereich, Boolean> status = z2.getBearbeitungsStatusMap(); assertEquals(2, status.size()); }
private void initializeZuege() { ueb.getMassnahmen().iterator().next().addZug(new Zug()); ueb.getMassnahmen().iterator().next().addZug(new Zug()); }