This should fix https://fedorahosted.org/freeipa/ticket/3829


--
PetrĀ³
From f5127411bdc21102022ed3d4849371501fc625f7 Mon Sep 17 00:00:00 2001
From: Petr Viktorin <pvikt...@redhat.com>
Date: Mon, 28 Apr 2014 14:23:19 +0200
Subject: [PATCH] Replace "replica admins read access" ACI with a permission

Add a 'Read Replication Agreements' permission to replace
the read ACI for cn=config.

https://fedorahosted.org/freeipa/ticket/3829
---
 install/share/replica-acis.ldif                    |  5 --
 install/updates/20-aci.update                      |  5 ++
 .../install/plugins/update_managed_permissions.py  | 61 ++++++++++++++++++++++
 3 files changed, 66 insertions(+), 5 deletions(-)

diff --git a/install/share/replica-acis.ldif b/install/share/replica-acis.ldif
index f4e96139f356826b1c6e07f7dfdfad2de42aafbd..8c0bc8ec3826a57ee531726cfeec2789484a3032 100644
--- a/install/share/replica-acis.ldif
+++ b/install/share/replica-acis.ldif
@@ -1,10 +1,5 @@
 # Replica administration
 
-dn: cn=config
-changetype: modify
-add: aci
-aci: (targetattr != aci)(version 3.0; aci "replica admins read access"; allow (read, search, compare) groupdn = "ldap:///cn=Modify Replication Agreements,cn=permissions,cn=pbac,$SUFFIX";)
-
 dn: cn="$SUFFIX",cn=mapping tree,cn=config
 changetype: modify
 add: aci
diff --git a/install/updates/20-aci.update b/install/updates/20-aci.update
index d9dcad2e572ab72ff793c41a4300562caead6c77..f31c2017796d17ab988f0426fa2e6617bbc50062 100644
--- a/install/updates/20-aci.update
+++ b/install/updates/20-aci.update
@@ -46,3 +46,8 @@ dn: $SUFFIX
 add:aci:'(targetfilter = "(objectClass=krbPwdPolicy)")(targetattr = "krbMaxPwdLife || krbMinPwdLife || krbPwdMinDiffChars || krbPwdMinLength || krbPwdHistoryLength")(version 3.0;acl "Admins can write password policies"; allow (read, search, compare, write) groupdn = "ldap:///cn=admins,cn=groups,cn=accounts,$SUFFIX";;)'
 # Read-only
 add:aci:'(targetattr="ipaUniqueId || memberOf || enrolledBy || krbExtraData || krbPrincipalName || krbCanonicalName || krbPasswordExpiration || krbLastPwdChange || krbLastSuccessfulAuth || krbLastFailedAuth || krbLoginFailedCount")(version 3.0; acl "Admin read-only attributes"; allow (read, search, compare) groupdn = "ldap:///cn=admins,cn=groups,cn=accounts,$SUFFIX";;)'
+
+# Removal of obsolete ACIs
+dn: cn=config
+# Replaced by 'System: Read Replication Agreements'
+remove:aci: '(targetattr != aci)(version 3.0; aci "replica admins read access"; allow (read, search, compare) groupdn = "ldap:///cn=Modify Replication Agreements,cn=permissions,cn=pbac,$SUFFIX";)'
diff --git a/ipaserver/install/plugins/update_managed_permissions.py b/ipaserver/install/plugins/update_managed_permissions.py
index bffd9bbf434e76c9c6d74d0167a718acc96a54b1..637e546498ca4ed843797198afa3b8bd89445980 100644
--- a/ipaserver/install/plugins/update_managed_permissions.py
+++ b/ipaserver/install/plugins/update_managed_permissions.py
@@ -155,6 +155,67 @@
             'ipantdomainguid', 'ipantfallbackprimarygroup',
         },
     },
+    'System: Read Replication Agreements': {
+        'ipapermlocation': DN('cn=config'),
+        'ipapermtargetfilter': {
+            '(|'
+                '(objectclass=nsds5Replica)'
+                '(objectclass=nsds5replicationagreement)'
+                '(objectclass=nsDSWindowsReplicationAgreement)'
+                '(objectClass=nsMappingTree)'
+            ')'
+        },
+        'ipapermbindruletype': 'all',
+        'ipapermright': {'read', 'search', 'compare'},
+        'ipapermdefaultattr': {
+            'cn', 'objectclass',
+            # nsds5Replica
+            'nsds5replicaroot', 'nsds5replicaid', 'nsds5replicacleanruv',
+            'nsds5replicaabortcleanruv', 'nsds5replicatype',
+            'nsds5replicabinddn', 'nsstate', 'nsds5replicaname',
+            'nsds5flags', 'nsds5task', 'nsds5replicareferral',
+            'nsds5replicaautoreferral', 'nsds5replicapurgedelay',
+            'nsds5replicatombstonepurgeinterval', 'nsds5replicachangecount',
+            'nsds5replicalegacyconsumer', 'nsds5replicaprotocoltimeout',
+            'nsds5replicabackoffmin', 'nsds5replicabackoffmax',
+            # nsds5replicationagreement
+            'nsds5replicacleanruvnotified', 'nsds5replicahost',
+            'nsds5replicaport', 'nsds5replicatransportinfo',
+            'nsds5replicabinddn', 'nsds5replicacredentials',
+            'nsds5replicabindmethod', 'nsds5replicaroot',
+            'nsds5replicatedattributelist',
+            'nsds5replicatedattributelisttotal', 'nsds5replicaupdateschedule',
+            'nsds5beginreplicarefresh', 'description', 'nsds50ruv',
+            'nsruvreplicalastmodified', 'nsds5replicatimeout',
+            'nsds5replicachangessentsincestartup', 'nsds5replicalastupdateend',
+            'nsds5replicalastupdatestart', 'nsds5replicalastupdatestatus',
+            'nsds5replicaupdateinprogress', 'nsds5replicalastinitend',
+            'nsds5replicaenabled', 'nsds5replicalastinitstart',
+            'nsds5replicalastinitstatus', 'nsds5debugreplicatimeout',
+            'nsds5replicabusywaittime', 'nsds5replicastripattrs',
+            'nsds5replicasessionpausetime', 'nsds5replicaprotocoltimeout',
+            # nsDSWindowsReplicationAgreement
+            'nsds5replicahost', 'nsds5replicaport',
+            'nsds5replicatransportinfo', 'nsds5replicabinddn',
+            'nsds5replicacredentials', 'nsds5replicabindmethod',
+            'nsds5replicaroot', 'nsds5replicatedattributelist',
+            'nsds5replicaupdateschedule', 'nsds5beginreplicarefresh',
+            'description', 'nsds50ruv', 'nsruvreplicalastmodified',
+            'nsds5replicatimeout', 'nsds5replicachangessentsincestartup',
+            'nsds5replicalastupdateend', 'nsds5replicalastupdatestart',
+            'nsds5replicalastupdatestatus', 'nsds5replicaupdateinprogress',
+            'nsds5replicalastinitend', 'nsds5replicalastinitstart',
+            'nsds5replicalastinitstatus', 'nsds5debugreplicatimeout',
+            'nsds5replicabusywaittime', 'nsds5replicasessionpausetime',
+            'nsds7windowsreplicasubtree', 'nsds7directoryreplicasubtree',
+            'nsds7newwinusersyncenabled', 'nsds7newwingroupsyncenabled',
+            'nsds7windowsdomain', 'nsds7dirsynccookie', 'winsyncinterval',
+            'onewaysync', 'winsyncmoveaction', 'nsds5replicaenabled',
+            'winsyncdirectoryfilter', 'winsyncwindowsfilter',
+            'winsyncsubtreepair',
+        },
+        'default_privileges': {'Replication Administrators'},
+    }
 }
 
 
-- 
1.9.0

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to