Opravena kontrola členství členů komise přiřazované do střediska.

closes #123
multitenant
Josef Rokos 10 years ago
parent 58506cae3f
commit 2b24f30fb4

@ -35,10 +35,6 @@ public class WorkgroupServiceImpl extends AbstractOwnedService<Workgroup> implem
throw new WorkgroupException(WorkgroupException.CYCLIC_MEMBER); throw new WorkgroupException(WorkgroupException.CYCLIC_MEMBER);
} }
if (!member.isPerson() && !checkGroups((Workgroup)member, workgroup)) {
throw new WorkgroupException(WorkgroupException.CYCLIC_MEMBER);
}
JobMapping mapping = new JobMapping(member, role); JobMapping mapping = new JobMapping(member, role);
if (!workgroup.getMembers().contains(mapping)) { if (!workgroup.getMembers().contains(mapping)) {
workgroup.getMembers().add(mapping); workgroup.getMembers().add(mapping);
@ -86,6 +82,7 @@ public class WorkgroupServiceImpl extends AbstractOwnedService<Workgroup> implem
return false; return false;
} }
// check, jestli nahodou nekdo z komise neni clemen strediska, do nehoz se komise pridava
private boolean checkGroups(Workgroup workgroup, Member member) { private boolean checkGroups(Workgroup workgroup, Member member) {
if (member.equals(workgroup)) { if (member.equals(workgroup)) {
return false; return false;
@ -97,9 +94,12 @@ public class WorkgroupServiceImpl extends AbstractOwnedService<Workgroup> implem
Workgroup toAdd = Workgroup.class.cast(member); Workgroup toAdd = Workgroup.class.cast(member);
for (JobMapping jm : toAdd.getMembers()) { for (JobMapping jm : toAdd.getMembers()) {
if (!jm.getMember().isPerson() && !checkGroups(workgroup, jm.getMember())) { for (JobMapping wJm : workgroup.getMembers()) {
return false; if (jm.getMember().equals(wJm.getMember())) {
return false;
}
} }
} }
return true; return true;

Loading…
Cancel
Save