Skip to content

Commit

Permalink
GRP-1193: cant delete composite group
Browse files Browse the repository at this point in the history
  • Loading branch information
mchyzer committed Sep 9, 2015
1 parent 5f1def3 commit 988d1a1
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1757,10 +1757,7 @@ public Object callback(HibernateHandlerBean hibernateHandlerBean)
E.CANNOT_ADMIN + errorMessageSuffix);
}
try {

// Revoke all access privs
Group.this._revokeAllAccessPrivs();


//delete any attributes on this group
Set<AttributeAssign> attributeAssigns = GrouperDAOFactory.getFactory().getAttributeAssign().findByOwnerGroupId(Group.this.getId());

Expand All @@ -1787,6 +1784,10 @@ public Object callback(HibernateHandlerBean hibernateHandlerBean)
GrouperSession.staticGrouperSession().internal_getRootSession()
.getAttributeDefResolver().revokeAllPrivilegesForSubject(groupSubject);

// Revoke all access privs
// GRP-1193 - cant delete composite group
Group.this._revokeAllAccessPrivs();

//deletes.add(this); // ... And add the group last for good luck
String name = Group.this.getName(); // Preserve name for logging
GrouperDAOFactory.getFactory().getGroup().delete(Group.this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,7 @@ protected static void error(Interpreter i, Exception e) {
// @since 0.0.1
protected static void error(Interpreter interpreter, Exception e, String msg) {
interpreter.error(msg);
LOG.error("Error in GSH: " + msg, e);
if (isDebug(interpreter)) {
e.printStackTrace();
}
Expand Down Expand Up @@ -439,7 +440,7 @@ protected void run()
}

/** logger */
private static final Log LOG = GrouperUtil.getLog(ShellHelper.class);
private static final Log LOG = GrouperUtil.getLog(GrouperShell.class);

/**
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@
import edu.internet2.middleware.grouper.misc.SaveMode;
import edu.internet2.middleware.grouper.privs.AccessPrivilege;
import edu.internet2.middleware.grouper.privs.AttributeDefPrivilege;
import edu.internet2.middleware.grouper.privs.NamingPrivilege;
import edu.internet2.middleware.grouper.util.GrouperUtil;
import edu.internet2.middleware.subject.Subject;

Expand All @@ -114,10 +115,52 @@ public class TestGroup extends GrouperTest {
public static void main(String[] args) {
//TestRunner.run(new TestGroup("testNoLocking"));
//TestRunner.run(TestGroup.class);
TestRunner.run(new TestGroup("testReadonlyViewonlyAdmin"));
TestRunner.run(new TestGroup("testDeleteComposite"));
//TestRunner.run(TestGroup.class);
}

/**
*
*/
public void testDeleteComposite() {

GrouperConfig.retrieveConfig().propertiesOverrideMap().put("groups.create.grant.all.read", "false");
GrouperConfig.retrieveConfig().propertiesOverrideMap().put("groups.create.grant.all.view", "false");

// grouperSession = GrouperSession.startRootSession();
// suffix = "6";
// folderName = "test";
// subject = "test.subject.0";
// folder = new StemSave(grouperSession).assignName(folderName).save();
// grantPriv(folderName, subject, NamingPrivilege.STEM);
// compositeLeft = new GroupSave(grouperSession).assignName(folderName + ":compositeLeft" + suffix).save();
// grantPriv(folderName + ":compositeLeft" + suffix, subject, AccessPrivilege.READ);
// compositeRight = new GroupSave(grouperSession).assignName(folderName + ":compositeRight" + suffix).save();
// grantPriv(folderName + ":compositeRight" + suffix, subject, AccessPrivilege.READ);
// grouperSession = GrouperSession.start(SubjectFinder.findById(subject));
// compositeOwner = new GroupSave(grouperSession).assignName(folderName + ":compositeOwner" + suffix).save();
// addComposite(folderName + ":compositeOwner" + suffix,CompositeType.COMPLEMENT,folderName + ":compositeLeft" + suffix,folderName + ":compositeRight" + suffix);
// delGroup(folderName + ":compositeOwner" + suffix);

GrouperSession grouperSession = GrouperSession.startRootSession();
String suffix = "6";
String folderName = "test";
Subject subject = SubjectFinder.findById("test.subject.0", true);
Stem folder = new StemSave(grouperSession).assignName(folderName).save();
folder.grantPriv(subject, NamingPrivilege.STEM, false);
Group compositeLeft = new GroupSave(grouperSession).assignName(folderName + ":compositeLeft" + suffix).save();
compositeLeft.grantPriv(subject, AccessPrivilege.READ, false);
Group compositeRight = new GroupSave(grouperSession).assignName(folderName + ":compositeRight" + suffix).save();
compositeRight.grantPriv(subject, AccessPrivilege.READ, false);
grouperSession = GrouperSession.start(subject);
Group compositeOwner = new GroupSave(grouperSession).assignName(folderName + ":compositeOwner" + suffix).save();
compositeOwner.addCompositeMember(CompositeType.COMPLEMENT, compositeLeft, compositeRight);
compositeOwner.delete();



}

/**
*
*/
Expand Down

0 comments on commit 988d1a1

Please sign in to comment.