Fix limit with negative integer for SearchUtil (#1627)

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
This commit is contained in:
Eduard Heimbuch
2021-04-21 16:19:16 +02:00
committed by GitHub
parent 05ef203038
commit 7579d91505
5 changed files with 160 additions and 310 deletions

View File

@@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package sonia.scm.group;
//~--- non-JDK imports --------------------------------------------------------
@@ -187,23 +187,14 @@ public class DefaultGroupManager extends AbstractGroupManager
final PermissionActionCheck<Group> check = GroupPermissions.read();
return SearchUtil.search(searchRequest, groupDAO.getAll(),
new TransformFilter<Group, Group>()
{
@Override
public Group accept(Group group)
{
Group result = null;
if (check.isPermitted(group) && matches(searchRequest, group))
{
result = group.clone();
group -> {
if (check.isPermitted(group) && matches(searchRequest, group)) {
return group.clone();
}
return result;
}
});
return null;
});
}
private boolean matches(SearchRequest searchRequest, Group group) {
return SearchUtil.matchesOne(searchRequest, group.getName(), group.getDescription());
}
@@ -222,7 +213,7 @@ public class DefaultGroupManager extends AbstractGroupManager
public Group get(String id)
{
GroupPermissions.read(id).check();
Group group = groupDAO.get(id);
if (group != null)

View File

@@ -21,7 +21,7 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package sonia.scm.user;
import com.github.sdorra.ssp.PermissionActionCheck;
@@ -217,16 +217,11 @@ public class DefaultUserManager extends AbstractUserManager
}
final PermissionActionCheck<User> check = UserPermissions.read();
return SearchUtil.search(searchRequest, userDAO.getAll(), new TransformFilter<User, User>() {
@Override
public User accept(User user)
{
User result = null;
if (check.isPermitted(user) && matches(searchRequest, user)) {
result = user.clone();
}
return result;
return SearchUtil.search(searchRequest, userDAO.getAll(), user -> {
if (check.isPermitted(user) && matches(searchRequest, user)) {
return user.clone();
}
return null;
});
}
@@ -313,16 +308,11 @@ public class DefaultUserManager extends AbstractUserManager
public Collection<User> getAll(Comparator<User> comaparator, int start, int limit) {
final PermissionActionCheck<User> check = UserPermissions.read();
return Util.createSubCollection(userDAO.getAll(), comaparator,
new CollectionAppender<User>()
{
@Override
public void append(Collection<User> collection, User item)
{
(collection, item) -> {
if (check.isPermitted(item)) {
collection.add(item.clone());
}
}
}, start, limit);
}, start, limit);
}
/**