Date: Fri, 29 Mar 2024 09:15:56 +0000 (UTC) Message-ID: <977337973.7753.1711703756993@ip-10-10-7-29.ec2.internal> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_7752_1718971549.1711703756992" ------=_Part_7752_1718971549.1711703756992 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
For reprieve groups (e.g. for status or training or two step), when adde= d to group, maybe you want an automatic 7 day in future end date on members= hip
Add this rule to a group where the membership is added and should have d= isabled date.
Note: the end of the script adds GrouperSystem to the group, sees the ex= pire date, and then removed GrouperSystem. If you dont want to do tha= t, then remove that part starting at group.addMember().
String = groupName =3D "penn:apps:ngss:knowledgeLink:prod:ngssProdHasTakenTrainingRe= prieve"; String expireAfterDays =3D "7"; grouperSession =3D GrouperSession.startRootSession(); group =3D GroupFinder.findByName(grouperSession, groupName); AttributeAssign attributeAssign =3D group.getAttributeDelegate().addAttribu= te(RuleUtils.ruleAttributeDefName()).getAttributeAssign(); AttributeValueDelegate attributeValueDelegate =3D attributeAssign.getAttrib= uteValueDelegate(); attributeValueDelegate.assignValue(RuleUtils.ruleActAsSubjectSourceIdName()= , SubjectFinder.findRootSubject().getSourceId()); attributeValueDelegate.assignValue(RuleUtils.ruleActAsSubjectIdName(), Subj= ectFinder.findRootSubject().getId()); attributeValueDelegate.assignValue(RuleUtils.ruleCheckTypeName(),RuleCheckT= ype.membershipAdd.name()); attributeValueDelegate.assignValue(RuleUtils.ruleThenEnumName(), RuleThenEn= um.assignMembershipDisabledDaysForOwnerGroupId.name()); attributeValueDelegate.assignValue(RuleUtils.ruleThenEnumArg0Name(), expire= AfterDays); attributeValueDelegate.assignValue(RuleUtils.ruleThenEnumArg1Name(), "F"); attributeValueDelegate.assignValue(RuleUtils.ruleValidName(), "T"); String isValidString =3D attributeValueDelegate.retrieveValueString(RuleUti= ls.ruleValidName()); if (!"T".equals(isValidString)) {throw new RuntimeException("Not valid! " += isValidString);} group.addMember(SubjectFinder.findRootSubject()); Member member =3D MemberFinder.findBySubject(grouperSession, SubjectFinder.= findRootSubject(), true); Membership membership =3D group.getImmediateMembership(Group.getDefaultList= (), member, true, true); java.sql.Timestamp disabledTime =3D membership.getDisabledTime(); group.deleteMember(SubjectFinder.findRootSubject()); if (disabledTime =3D=3D null) {throw new RuntimeException("Rule didnt set t= he disabled time");}