diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2016-06-23 17:42:17 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2017-03-13 18:18:31 +0100 |
commit | da5487c407bee9bce41f4012d07970916b9456c1 (patch) | |
tree | ed1f407eab1f871771449e17be3560bde3b130db | |
parent | d4ad2c98aa43f03ecbd8e0a44410888acd83df6e (diff) | |
download | freeipa-da5487c407bee9bce41f4012d07970916b9456c1.tar.gz freeipa-da5487c407bee9bce41f4012d07970916b9456c1.tar.xz freeipa-da5487c407bee9bce41f4012d07970916b9456c1.zip |
permissions: add permissions for read and mod of external group members
Issue: "User Administrator" role cannot add users to an External Group.
https://fedorahosted.org/freeipa/ticket/5504
Reviewed-By: Martin Basti <mbasti@redhat.com>
-rw-r--r-- | ACI.txt | 4 | ||||
-rw-r--r-- | ipaserver/plugins/group.py | 17 |
2 files changed, 21 insertions, 0 deletions
@@ -95,9 +95,13 @@ aci: (targetattr = "a6record || aaaarecord || afsdbrecord || aplrecord || arecor dn: cn=groups,cn=accounts,dc=ipa,dc=example aci: (targetfilter = "(|(objectclass=ipausergroup)(objectclass=posixgroup))")(version 3.0;acl "permission:System: Add Groups";allow (add) groupdn = "ldap:///cn=System: Add Groups,cn=permissions,cn=pbac,dc=ipa,dc=example";) dn: cn=groups,cn=accounts,dc=ipa,dc=example +aci: (targetattr = "ipaexternalmember")(targetfilter = "(objectclass=ipaexternalgroup)")(version 3.0;acl "permission:System: Modify External Group Membership";allow (write) groupdn = "ldap:///cn=System: Modify External Group Membership,cn=permissions,cn=pbac,dc=ipa,dc=example";) +dn: cn=groups,cn=accounts,dc=ipa,dc=example aci: (targetattr = "member")(targetfilter = "(&(!(cn=admins))(objectclass=ipausergroup))")(version 3.0;acl "permission:System: Modify Group Membership";allow (write) groupdn = "ldap:///cn=System: Modify Group Membership,cn=permissions,cn=pbac,dc=ipa,dc=example";) dn: cn=groups,cn=accounts,dc=ipa,dc=example aci: (targetattr = "cn || description || gidnumber || ipauniqueid || mepmanagedby || objectclass")(targetfilter = "(|(objectclass=ipausergroup)(objectclass=posixgroup))")(version 3.0;acl "permission:System: Modify Groups";allow (write) groupdn = "ldap:///cn=System: Modify Groups,cn=permissions,cn=pbac,dc=ipa,dc=example";) +dn: cn=groups,cn=accounts,dc=ipa,dc=example +aci: (targetattr = "ipaexternalmember")(targetfilter = "(|(objectclass=ipausergroup)(objectclass=posixgroup))")(version 3.0;acl "permission:System: Read External Group Membership";allow (compare,read,search) userdn = "ldap:///all";) dn: dc=ipa,dc=example aci: (targetattr = "cn || createtimestamp || entryusn || gidnumber || memberuid || modifytimestamp || objectclass")(target = "ldap:///cn=groups,cn=compat,dc=ipa,dc=example")(version 3.0;acl "permission:System: Read Group Compat Tree";allow (compare,read,search) userdn = "ldap:///anyone";) dn: cn=groups,cn=accounts,dc=ipa,dc=example diff --git a/ipaserver/plugins/group.py b/ipaserver/plugins/group.py index 67a264a37..218da3c94 100644 --- a/ipaserver/plugins/group.py +++ b/ipaserver/plugins/group.py @@ -194,6 +194,13 @@ class group(LDAPObject): 'member', 'memberof', 'memberuid', 'memberuser', 'memberhost', }, }, + 'System: Read External Group Membership': { + 'ipapermbindruletype': 'all', + 'ipapermright': {'read', 'search', 'compare'}, + 'ipapermdefaultattr': { + 'ipaexternalmember', + }, + }, 'System: Add Groups': { 'ipapermright': {'add'}, 'replaces': [ @@ -216,6 +223,16 @@ class group(LDAPObject): 'Group Administrators', 'Modify Group membership' }, }, + 'System: Modify External Group Membership': { + 'ipapermright': {'write'}, + 'ipapermtargetfilter': [ + '(objectclass=ipaexternalgroup)', + ], + 'ipapermdefaultattr': {'ipaexternalmember'}, + 'default_privileges': { + 'Group Administrators', 'Modify Group membership' + }, + }, 'System: Modify Groups': { 'ipapermright': {'write'}, 'ipapermdefaultattr': { |