Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // До него должне быть хелпер для типов правил. Работа его по такой логике
- // есть разрешающие права, независимо от запрещающих [true,false]
- // нет разрешающих, но есть запрещающие [false]
- // нет разрешающих и запрещающих []
- //Фильтр для платформ
- public Collection<PlatformEntity> filterForHelperPlatform(Long firmId, Boolean ruleType, Collection<PlatformEntity> platformEntities) {
- Collection<FirmPermissionsEntity> firmPermissionsEntities = firmPermissionsRepository.findOneEffectiveByfirmId(firmId);
- Collection<PlatformEntity> result = new HashSet<>();
- int fl = 0;
- for (FirmPermissionsEntity f : firmPermissionsEntities) { //проверка на то, есть ли у фирмы запрещающие правила
- if (f.getRuleType() == false) {
- fl++;
- break;
- }
- }
- if (firmPermissionsEntities.size() != 0) {
- for (PlatformEntity p : platformEntities) {
- for (FirmPermissionsEntity f : firmPermissionsEntities) {
- if (ruleType == true) {
- if (f.getRuleType() == true) {
- if (p.getId() == f.getPlatformEntity().getId() || f.getPlatformEntity().getId() == 1)
- if (!result.contains(p))
- result.add(p);// не превысило права фирмы
- } else {
- if (p.getId() == f.getPlatformEntity().getId() || f.getPlatformEntity().getId() == 1)
- if (result.contains(p))
- result.remove(p);// попало в число запрещенных
- }
- } else {
- if (fl == 0) {//нет запрещающих прав
- if (p.getId() == f.getPlatformEntity().getId() || f.getPlatformEntity().getId() == 1)
- if (!result.contains(p))
- result.add(p);//не превысило права фирмы, можем запретить
- } else {//есть запрещающие права
- if (f.getRuleType() == false) {
- if (p.getId() == f.getPlatformEntity().getId() || p.getId() == 1)
- result.add(p);
- }
- }
- }
- }
- }
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement