Я работаю над списком пользователей для администраторов.Они будут фильтровать результаты по всем полям объекта «Пользователь».Единственное ограничение, которое у них будет, заключается в том, что они не смогут видеть пользователей с одной конкретной комбинацией ролей из-за защиты данных.
Я пытаюсь реализовать это с помощью комбинации двух спецификаций..
Первый получает все фильтры от внешнего интерфейса и фильтрует пользователей по их значениям.
Второй фильтрует список с помощью negationalSpecification, который возвращает всех пользователей, которые не имеликомбинация ролей: ROLE_USER (все пользователи имеют эту роль, чтобы иметь возможность войти в систему) и ROLE_FARMER (роль с защитой данных).
Здесь возникает проблема.Похоже, как JHipster реализует QueryService. Я не могу использовать две роли одновременно со значениями для отрицания.В этой функции нет if (filter.getIn ()! = Null):
<code>/**
* Helper function to return a specification for filtering on one-to-many or many-to-many reference. Usage:
* <pre>
* Specification<Employee> specByEmployeeId = buildReferringEntitySpecification(criteria.getEmployeId(),
* Project_.employees, Employee_.id);
* Specification<Employee> specByEmployeeName = buildReferringEntitySpecification(criteria.getEmployeName(),
* Project_.project, Project_.name);
*
* * @param filter объект фильтра, который содержит значение, которому необходимо соответствовать, или флаг, если пустота отмечена *,* @param ссылка на атрибут статической метамодели для ссылающейся сущности.* @param valueField - атрибут статической метамодели указанной сущности, где должно быть проверено равенство.* @param Тип ссылочной сущности.* @param Тип атрибута, который фильтруется.* @ вернуть спецификацию * / защищенСпецификация buildReferringEntitySpecification (Фильтр фильтр, SetAttributeссылка, SingularAttributevalueField) {if (filter.getEquals ()! = null) {return equalsSetSpecification (reference, valueField, filter.getEquals ());} else if (filter.getSpecified ()! = null) {return byFieldSpecified (reference, filter.getSpecified ());} return null;}
Я новичок в JHipster, так что, возможно, я что-то упускаю, но я вижу похожие проблемы, подобные этой:
Фильтрация не работает для некоторых типов и некоторых параметров Любая помощь будет очень признательна.