diff --git a/demo/complex/add-ref-groups.gsh b/demo/complex/add-ref-groups.gsh
index 679910c..0e952ac 100644
--- a/demo/complex/add-ref-groups.gsh
+++ b/demo/complex/add-ref-groups.gsh
@@ -1,14 +1,14 @@
-def addGroups(gs,stem) {
- def supergroup = GroupFinder.findByName(gs, "etc:midpointGroups", true)
+def addGroups(gs,stem,owner,regexp) {
for (group in stem.childGroups) {
if (!group.name.endsWith('_includes') &&
!group.name.endsWith('_excludes') &&
!group.name.endsWith('_systemOfRecord') &&
- !group.name.endsWith('_systemOfRecordAndIncludes')) {
+ !group.name.endsWith('_systemOfRecordAndIncludes') &&
+ (regexp == null || group.extension ==~ regexp)) {
println 'Adding: ' + group
def s = SubjectFinder.findById(group.getId(), 'group', 'g:gsa')
- supergroup.addMember(s, false)
+ owner.addMember(s, false)
} else {
println 'Ignoring: ' + group
}
@@ -16,8 +16,11 @@ def addGroups(gs,stem) {
}
gs = GrouperSession.startRootSession()
+def supergroup = GroupFinder.findByName(gs, "etc:midpointGroups", true)
+def cs = GroupFinder.findByName(gs, "app:cs", true)
-addGroups(gs, StemFinder.findByName(gs, 'ref:affiliation'))
-addGroups(gs, StemFinder.findByName(gs, 'ref:dept'))
-addGroups(gs, StemFinder.findByName(gs, 'ref:course'))
+addGroups(gs, StemFinder.findByName(gs, 'ref:affiliation'), supergroup, null)
+//addGroups(gs, StemFinder.findByName(gs, 'ref:dept'), null)
+//addGroups(gs, StemFinder.findByName(gs, 'ref:course'), null)
+addGroups(gs, StemFinder.findByName(gs, 'ref:course'), cs, /CS.*/)
diff --git a/demo/complex/grouper_data/container_files/seed-data/demo.gsh b/demo/complex/grouper_data/container_files/seed-data/demo.gsh
index 0d13760..2cb43fd 100644
--- a/demo/complex/grouper_data/container_files/seed-data/demo.gsh
+++ b/demo/complex/grouper_data/container_files/seed-data/demo.gsh
@@ -73,7 +73,16 @@ attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperL
attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSubjectIdTypeName(), "subjectId");
midpointGroupsGroup = new GroupSave(gs).assignName("etc:midpointGroups").assignCreateParentStemsIfNotExist(true).save();
+
testGroup = new GroupSave(gs).assignName("midpoint:test").assignCreateParentStemsIfNotExist(true).save();
+chess = new GroupSave(gs).assignName("app:mailinglist:chess").assignCreateParentStemsIfNotExist(true).save()
+idmfans = new GroupSave(gs).assignName("app:mailinglist:idm-fans").assignCreateParentStemsIfNotExist(true).save()
+cs = new GroupSave(gs).assignName("app:cs").assignCreateParentStemsIfNotExist(true).save()
+volunteers = new GroupSave(gs).assignName("test:volunteers").assignCreateParentStemsIfNotExist(true).save()
+
+midpointGroupsGroup.addMember(SubjectFinder.findById(testGroup.getId(), 'group', 'g:gsa'), false)
+midpointGroupsGroup.addMember(SubjectFinder.findById(chess.getId(), 'group', 'g:gsa'), false)
+midpointGroupsGroup.addMember(SubjectFinder.findById(idmfans.getId(), 'group', 'g:gsa'), false)
+midpointGroupsGroup.addMember(SubjectFinder.findById(cs.getId(), 'group', 'g:gsa'), false)
+midpointGroupsGroup.addMember(SubjectFinder.findById(volunteers.getId(), 'group', 'g:gsa'), false)
-s = SubjectFinder.findById(testGroup.getId(), 'group', 'g:gsa');
-midpointGroupsGroup.addMember(s, false);
diff --git a/demo/complex/midpoint-objects/objectTemplates/template-org-mailing-list.xml b/demo/complex/midpoint-objects/objectTemplates/template-org-mailing-list.xml
new file mode 100644
index 0000000..058d131
--- /dev/null
+++ b/demo/complex/midpoint-objects/objectTemplates/template-org-mailing-list.xml
@@ -0,0 +1,18 @@
+
+
+ template-org-mailing-list
+
+ strong
+
+
+ RoleType
+ 1c7beff4-cdf6-4e9f-b54c-79d0766f6fbe
+
+
+
+ assignment
+
+
+
+
diff --git a/demo/complex/midpoint-objects/objectTemplates/template-user.xml b/demo/complex/midpoint-objects/objectTemplates/template-user.xml
index 288bd24..c2bb8a5 100644
--- a/demo/complex/midpoint-objects/objectTemplates/template-user.xml
+++ b/demo/complex/midpoint-objects/objectTemplates/template-user.xml
@@ -5,6 +5,15 @@
strong
extension/grouperGroup
+
+
+
+
+
@@ -15,7 +24,7 @@
@@ -33,7 +42,7 @@
@@ -62,4 +71,144 @@
+
+ strong
+
+ extension/grouperGroup
+
+
+
+
+
+
+
+
+ OrgType
+
+
+ name
+
+
+
+
+
+
+ mailing-list
+
+ true
+
+
+
+ name
+
+
+
+
+
+
+
+ subtype
+
+
+ mailing-list
+
+
+
+
+
+
+ assignment
+
+
+
+
+
+
+
+
+ strong
+
+ extension/grouperGroup
+
+
+
+
+
+
+
+
+ OrgType
+
+
+ name
+
+
+
+
+
+
+ affiliation
+
+ true
+
+
+
+ name
+
+
+
+
+
+
+
+ subtype
+
+
+ affiliation
+
+
+
+
+
+
+ assignment
+
+
+
+
+
+
+
diff --git a/demo/complex/midpoint-objects/resources/resource-grouper.xml b/demo/complex/midpoint-objects/resources/resource-grouper.xml
index 186e929..ebefae8 100644
--- a/demo/complex/midpoint-objects/resources/resource-grouper.xml
+++ b/demo/complex/midpoint-objects/resources/resource-grouper.xml
@@ -43,8 +43,10 @@
password
etc:midpointGroups
midpoint:.*
- ref:.*
- ref:.*_(includes|excludes|systemOfRecord|systemOfRecordAndIncludes)
+ app:.*
+ test:.*
+ ref:affiliation:.*
+ .*_(includes|excludes|systemOfRecord|systemOfRecordAndIncludes)
ldap
g:gsa
true
@@ -76,8 +78,8 @@
parameters = [
superGroup: 'etc:midpointGroups',
- groupIncludePattern: [ 'midpoint:.*', 'ref:.*' ],
- groupExcludePattern: [ 'ref:.*_(includes|excludes|systemOfRecord|systemOfRecordAndIncludes)' ],
+ groupIncludePattern: [ 'midpoint:.*', 'app:.*', 'test:.*', 'ref:affiliation:.*' ],
+ groupExcludePattern: [ '.*_(includes|excludes|systemOfRecord|systemOfRecordAndIncludes)' ],
relevantSourceId: 'ldap'
]
@@ -124,6 +126,17 @@
[icfs:name]
strong
+
+
+
name
@@ -131,7 +144,15 @@
strong
- generic-group
+
subtype
@@ -190,9 +211,16 @@
name
-
- $account/attributes/name
-
+
diff --git a/demo/complex/midpoint-objects/roles/metarole-affiliation.xml b/demo/complex/midpoint-objects/roles/metarole-affiliation.xml
index cdfa819..d986597 100644
--- a/demo/complex/midpoint-objects/roles/metarole-affiliation.xml
+++ b/demo/complex/midpoint-objects/roles/metarole-affiliation.xml
@@ -9,5 +9,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
oid="fecae27b-d1d3-40ae-95fa-8f7e44e2ee70">
metarole-affiliation
-
+
+
+
diff --git a/demo/complex/midpoint-objects/roles/metarole-mailing-list.xml b/demo/complex/midpoint-objects/roles/metarole-mailing-list.xml
new file mode 100644
index 0000000..acdc319
--- /dev/null
+++ b/demo/complex/midpoint-objects/roles/metarole-mailing-list.xml
@@ -0,0 +1,16 @@
+
+ metarole-mailing-list
+
+
+
+
+
diff --git a/demo/complex/midpoint-objects/systemConfigurations/SystemConfiguration.xml b/demo/complex/midpoint-objects/systemConfigurations/SystemConfiguration.xml
index eb5f90c..ac59d68 100644
--- a/demo/complex/midpoint-objects/systemConfigurations/SystemConfiguration.xml
+++ b/demo/complex/midpoint-objects/systemConfigurations/SystemConfiguration.xml
@@ -105,6 +105,11 @@
course
+
+ OrgType
+ mailing-list
+
+
OrgType
generic-group
diff --git a/demo/complex/upload-async-update-task.sh b/demo/complex/upload-async-update-task.sh
new file mode 100755
index 0000000..35e8640
--- /dev/null
+++ b/demo/complex/upload-async-update-task.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+function upload () {
+ local filename=$1
+ local regex="midpoint-objects.*/(.*)/(.*)"
+ if [[ $filename =~ $regex ]]
+ then
+ type="${BASH_REMATCH[1]}"
+ oid=`cat $filename | sed -n 's:.*oid=\"\([A-Za-z0-9\-]*\)\".*:\1:p' | sed -n '1 p'`
+ echo "Uploading $filename ($type, $oid)"
+ curl -k --user administrator:5ecr3t -H "Content-Type: application/xml" -X PUT "https://localhost:8443/midpoint/ws/rest/$type/$oid?options=overwrite" --data-binary @$filename
+ else
+ echo "Skipping $filename"
+ fi
+}
+
+upload midpoint-objects-manual/tasks/task-async-update-grouper.xml
diff --git a/demo/complex/upload-reconcile-grouper-groups.sh b/demo/complex/upload-reconcile-grouper-groups.sh
new file mode 100755
index 0000000..b1d14ee
--- /dev/null
+++ b/demo/complex/upload-reconcile-grouper-groups.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+function upload () {
+ local filename=$1
+ local regex="midpoint-objects.*/(.*)/(.*)"
+ if [[ $filename =~ $regex ]]
+ then
+ type="${BASH_REMATCH[1]}"
+ oid=`cat $filename | sed -n 's:.*oid=\"\([A-Za-z0-9\-]*\)\".*:\1:p' | sed -n '1 p'`
+ echo "Uploading $filename ($type, $oid)"
+ curl -k --user administrator:5ecr3t -H "Content-Type: application/xml" -X PUT "https://localhost:8443/midpoint/ws/rest/$type/$oid?options=overwrite" --data-binary @$filename
+ else
+ echo "Skipping $filename"
+ fi
+}
+
+upload midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml
diff --git a/demo/complex/upload-reconcile-grouper-users.sh b/demo/complex/upload-reconcile-grouper-users.sh
new file mode 100755
index 0000000..784403c
--- /dev/null
+++ b/demo/complex/upload-reconcile-grouper-users.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+function upload () {
+ local filename=$1
+ local regex="midpoint-objects.*/(.*)/(.*)"
+ if [[ $filename =~ $regex ]]
+ then
+ type="${BASH_REMATCH[1]}"
+ oid=`cat $filename | sed -n 's:.*oid=\"\([A-Za-z0-9\-]*\)\".*:\1:p' | sed -n '1 p'`
+ echo "Uploading $filename ($type, $oid)"
+ curl -k --user administrator:5ecr3t -H "Content-Type: application/xml" -X PUT "https://localhost:8443/midpoint/ws/rest/$type/$oid?options=overwrite" --data-binary @$filename
+ else
+ echo "Skipping $filename"
+ fi
+}
+
+upload midpoint-objects-manual/tasks/task-reconciliation-grouper-users.xml