diff --git a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java index a378abfeab4cc652f697579b40278c1656496c51..acd487be3d38e1d8515044ba721278c1ff6a756c 100644 --- a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java +++ b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java @@ -198,6 +198,9 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD if(resource instanceof OLATResourceImpl) { businessGroupRelationDAO.addRelationToResource(group, resource); + //add coach and participant permission + securityManager.createAndPersistPolicyWithResource(group.getOwnerGroup(), Constants.PERMISSION_COACH, resource); + securityManager.createAndPersistPolicyWithResource(group.getPartipiciantGroup(), Constants.PERMISSION_PARTI, resource); } return group; } @@ -1146,11 +1149,17 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD @Transactional public void addResourceTo(BusinessGroup group, OLATResource resource) { businessGroupRelationDAO.addRelationToResource(group, resource); + //add coach and participant permission + securityManager.createAndPersistPolicyWithResource(group.getOwnerGroup(), Constants.PERMISSION_COACH, resource); + securityManager.createAndPersistPolicyWithResource(group.getPartipiciantGroup(), Constants.PERMISSION_PARTI, resource); } @Override public void removeResourceFrom(BusinessGroup group, OLATResource resource) { businessGroupRelationDAO.deleteRelation(group, resource); + //remove permission + securityManager.deletePolicy(group.getOwnerGroup(), Constants.PERMISSION_COACH, resource); + securityManager.deletePolicy(group.getPartipiciantGroup(), Constants.PERMISSION_PARTI, resource); } @Override diff --git a/src/test/java/org/olat/group/test/BGRightManagerTest.java b/src/test/java/org/olat/group/test/BGRightManagerTest.java index cde72c59831eacde57b43675c0fd47bf06cf79d1..a72ba23a346a2fc3e321d058b0c5d333a55a9b15 100644 --- a/src/test/java/org/olat/group/test/BGRightManagerTest.java +++ b/src/test/java/org/olat/group/test/BGRightManagerTest.java @@ -236,7 +236,7 @@ public class BGRightManagerTest extends OlatTestCase { Assert.assertEquals(2, identities.size()); List<Policy> policies = securityManager.getPoliciesOfSecurityGroup(g1.getPartipiciantGroup()); - Assert.assertEquals(3, policies.size()); // read, archiving, courseeditor + Assert.assertEquals(4, policies.size()); // read, parti, archiving, courseeditor DBFactory.getInstance().closeSession(); // simulate user clicks assertFalse(rightManager.hasBGRight(CourseRights.RIGHT_ARCHIVING, id1, c2));