Skip to content

Commit

Permalink
SHIBUI-2394
Browse files Browse the repository at this point in the history
incremental progress
  • Loading branch information
chasegawa committed Sep 27, 2022
1 parent e0f1808 commit 671b079
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package edu.internet2.tier.shibboleth.admin.ui.security.model;

import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;

@Data
@NoArgsConstructor
@Entity(name = "approvers")
public class Approvers {
@Id
@Column(name = "resource_id")
private String resourceId = UUID.randomUUID().toString();

@ManyToMany
private Set<Group> approverGroups = new HashSet<>();
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
package edu.internet2.tier.shibboleth.admin.ui.security.model;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Transient;

import com.fasterxml.jackson.annotation.JsonIgnore;
Expand Down Expand Up @@ -51,6 +54,9 @@ public class Group implements Owner {
@Column(name = "validation_regex")
private String validationRegex;

@OneToMany
private List<Approvers> approvalGroups = new ArrayList<>();

/**
* Define a Group object based on the user
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package edu.internet2.tier.shibboleth.admin.ui.security.service

import edu.internet2.tier.shibboleth.admin.ui.AbstractBaseDataJpaTest
import edu.internet2.tier.shibboleth.admin.ui.security.exception.InvalidGroupRegexException
import edu.internet2.tier.shibboleth.admin.ui.security.model.Approvers
import edu.internet2.tier.shibboleth.admin.ui.security.model.Group
import org.springframework.test.annotation.Rollback

Expand Down Expand Up @@ -80,4 +81,37 @@ class GroupServiceTests extends AbstractBaseDataJpaTest {
!groupService.doesStringMatchGroupPattern("AAA", "something")
groupService.doesStringMatchGroupPattern("AAA", "/foobar/")
}

def "CRUD operations - approver groups" () {
given:
groupService.clearAllForTesting();
HashSet<Group> apprGroups = new HashSet<>()
String[] groupNames = ['AAA', 'BBB', 'CCC', 'DDD']
groupNames.each {name -> {
Group group = new Group().with({
it.name = name
it.description = name
it.resourceId = name
it
})
group = groupRepository.saveAndFlush(group)
if (!name.equals('AAA')) {
apprGroups.add(group)
}
}}

when: "Adding approval list to a group"
Approvers approvers = new Approvers()
approvers.setApproverGroups(apprGroups)
List<Approvers> apprList = new ArrayList<>()
apprList.add(approvers)
Group aaaGroup = groupService.find('AAA')
aaaGroup.setApprovalGroups(apprList)
groupService.updateGroup(aaaGroup)
Group lookupGroup = groupService.find('AAA')

then:
lookupGroup.getApprovalGroups().size() == 1
}

}

0 comments on commit 671b079

Please sign in to comment.