Skip to content

Commit

Permalink
Add query option for multiple privilege ids
Browse files Browse the repository at this point in the history
  • Loading branch information
tijsrademakers committed Apr 26, 2024
1 parent 9f5a2e2 commit 9e2c94a
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ public interface PrivilegeQuery extends Query<PrivilegeQuery, Privilege> {

/** Only select {@link Privilege}s with the given id/ */
PrivilegeQuery privilegeId(String id);

/** Only select {@link Privilege}s with the given ids/ */
PrivilegeQuery privilegeIds(List<String> id);

/** Only select {@link Privilege}s with the given name */
PrivilegeQuery privilegeName(String name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class PrivilegeQueryImpl extends AbstractQuery<PrivilegeQuery, Privilege>
private static final long serialVersionUID = 1L;

protected String id;
protected List<String> ids;
protected String name;
protected String userId;
protected String groupId;
Expand All @@ -53,6 +54,12 @@ public PrivilegeQuery privilegeId(String id) {
this.id = id;
return this;
}

@Override
public PrivilegeQuery privilegeIds(List<String> ids) {
this.ids = ids;
return this;
}

@Override
public PrivilegeQuery privilegeName(String name) {
Expand Down Expand Up @@ -87,6 +94,14 @@ public void setId(String id) {
this.id = id;
}

public List<String> getIds() {
return ids;
}

public void setIds(List<String> ids) {
this.ids = ids;
}

public String getName() {
return name;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,13 @@
<if test="id != null">
RES.ID_ = #{id}
</if>
<if test="ids != null &amp;&amp; !ids.empty">
and RES.ID_ IN
<foreach item="id" index="index" collection="ids"
open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="name != null">
and RES.NAME_ = #{name}
</if>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

Expand Down Expand Up @@ -224,5 +225,32 @@ public void testPrivilegeUniqueName() {

idmIdentityService.deletePrivilege(privilege.getId());
}

@Test
public void testGetPrivilegesByIds() {
Privilege adminPrivilege = idmIdentityService.createPrivilegeQuery().privilegeName(adminPrivilegename).singleResult();
Privilege modelerPrivilege = idmIdentityService.createPrivilegeQuery().privilegeName(modelerPrivilegeName).singleResult();
List<String> privilegeIds = new ArrayList<>();
privilegeIds.add(adminPrivilege.getId());
privilegeIds.add(modelerPrivilege.getId());
List<Privilege> privileges = idmIdentityService.createPrivilegeQuery().privilegeIds(privilegeIds).list();
assertThat(privileges).hasSize(2);
assertThat(privileges)
.extracting(Privilege::getId)
.contains(adminPrivilege.getId(), modelerPrivilege.getId());
assertThat(privileges)
.extracting(Privilege::getName)
.contains(adminPrivilegename, modelerPrivilegeName);

privilegeIds.add("unexisting");
privileges = idmIdentityService.createPrivilegeQuery().privilegeIds(privilegeIds).list();
assertThat(privileges).hasSize(2);

privilegeIds = new ArrayList<>();
privilegeIds.add("unknown");
privilegeIds.add("unexisting");
privileges = idmIdentityService.createPrivilegeQuery().privilegeIds(privilegeIds).list();
assertThat(privileges).hasSize(0);
}

}

0 comments on commit 9e2c94a

Please sign in to comment.