diff options
author | Simo Sorce <ssorce@redhat.com> | 2010-12-20 10:05:17 -0500 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2010-12-21 17:28:13 -0500 |
commit | 91f3e79d81671441bbf7c187d1415d864f80d101 (patch) | |
tree | f6a98d08b07cd7bccefbb2e4dfdc9a961d33a0c5 /install | |
parent | efd8b03ccfc5ba25c383eacafa948aa0aa5feddf (diff) | |
download | freeipa-91f3e79d81671441bbf7c187d1415d864f80d101.tar.gz freeipa-91f3e79d81671441bbf7c187d1415d864f80d101.tar.xz freeipa-91f3e79d81671441bbf7c187d1415d864f80d101.zip |
Remove referrals when removing agreements
Part of this fix requires also giving proper permission to change the
replication agreements root.
While there also fix replica-related permissions to have the classic
add/modify/remove triplet of permissions.
Fixes: https://fedorahosted.org/freeipa/ticket/630
Diffstat (limited to 'install')
-rw-r--r-- | install/share/delegation.ldif | 20 | ||||
-rw-r--r-- | install/share/replica-acis.ldif | 10 | ||||
-rwxr-xr-x | install/tools/ipa-replica-manage | 2 |
3 files changed, 24 insertions, 8 deletions
diff --git a/install/share/delegation.ldif b/install/share/delegation.ldif index 1399c7c8c..7b09ae130 100644 --- a/install/share/delegation.ldif +++ b/install/share/delegation.ldif @@ -441,20 +441,28 @@ member: cn=enrollhost,cn=privileges,cn=accounts,$SUFFIX # Replica administration -dn: cn=managereplica,cn=permissions,cn=accounts,$SUFFIX +dn: cn=addreplica,cn=permissions,cn=accounts,$SUFFIX changetype: add objectClass: top objectClass: groupofnames -cn: managereplica -description: Manage Replication Agreements +cn: addreplica +description: Add Replication Agreements member: cn=replicaadmin,cn=privileges,cn=accounts,$SUFFIX -dn: cn=deletereplica,cn=permissions,cn=accounts,$SUFFIX +dn: cn=modifyreplica,cn=permissions,cn=accounts,$SUFFIX changetype: add objectClass: top objectClass: groupofnames -cn: deletereplica -description: Delete Replication Agreements +cn: modifyreplica +description: Modify Replication Agreements +member: cn=replicaadmin,cn=privileges,cn=accounts,$SUFFIX + +dn: cn=removereplica,cn=permissions,cn=accounts,$SUFFIX +changetype: add +objectClass: top +objectClass: groupofnames +cn: removereplica +description: Remove Replication Agreements member: cn=replicaadmin,cn=privileges,cn=accounts,$SUFFIX # Entitlement management diff --git a/install/share/replica-acis.ldif b/install/share/replica-acis.ldif index 5ee65dacb..feda1d9b7 100644 --- a/install/share/replica-acis.ldif +++ b/install/share/replica-acis.ldif @@ -3,9 +3,15 @@ dn: cn="$SUFFIX",cn=mapping tree,cn=config changetype: modify add: aci -aci: (targetattr=*)(targetfilter="(|(objectclass=nsds5Replica)(objectclass=nsds5replicationagreement)(objectclass=nsDSWindowsReplicationAgreement))")(version 3.0; acl "Manage Replication Agreements"; allow (read, write, search) groupdn = "ldap:///cn=managereplica,cn=permissions,cn=accounts,$SUFFIX";) +aci: (targetattr=*)(targetfilter="(|(objectclass=nsds5replicationagreement)(objectclass=nsDSWindowsReplicationAgreement))")(version 3.0;acl "Add Replication Agreements";allow (add) groupdn = "ldap:///cn=addreplica,cn=permissions,cn=accounts,$SUFFIX";) dn: cn="$SUFFIX",cn=mapping tree,cn=config changetype: modify add: aci -aci: (targetattr=*)(targetfilter="(|(objectclass=nsds5replicationagreement)(objectclass=nsDSWindowsReplicationAgreement))")(version 3.0;acl "Delete Replication Agreements";allow (delete) groupdn = "ldap:///cn=deletereplica,cn=permissions,cn=accounts,$SUFFIX";) +aci: (targetattr=*)(targetfilter="(|(objectclass=nsds5Replica)(objectclass=nsds5replicationagreement)(objectclass=nsDSWindowsReplicationAgreement)(objectClass=nsMappingTree))")(version 3.0; acl "Modify Replication Agreements"; allow (read, write, search) groupdn = "ldap:///cn=modifyreplica,cn=permissions,cn=accounts,$SUFFIX";) + +dn: cn="$SUFFIX",cn=mapping tree,cn=config +changetype: modify +add: aci +aci: (targetattr=*)(targetfilter="(|(objectclass=nsds5replicationagreement)(objectclass=nsDSWindowsReplicationAgreement))")(version 3.0;acl "Remove Replication Agreements";allow (delete) groupdn = "ldap:///cn=removereplica,cn=permissions,cn=accounts,$SUFFIX";) + diff --git a/install/tools/ipa-replica-manage b/install/tools/ipa-replica-manage index 6f857e9d4..9894d2ad4 100755 --- a/install/tools/ipa-replica-manage +++ b/install/tools/ipa-replica-manage @@ -219,6 +219,7 @@ def del_link(replica1, replica2, dirman_passwd, force=False): failed = False try: repl2.delete_agreement(replica1) + repl2.delete_referral(replica1) except ldap.LDAPError, e: desc = e.args[0]['desc'].strip() info = e.args[0].get('info', '').strip() @@ -238,6 +239,7 @@ def del_link(replica1, replica2, dirman_passwd, force=False): print "Forcing removal on '%s'" % replica1 repl1.delete_agreement(replica2) + repl1.delete_referral(replica2) def del_master(replman, hostname, force=False): has_repl_agreement = True |