URL: https://github.com/freeipa/freeipa/pull/565 Author: pvoborni Title: #565: permissions: add permissions for reading and modifying external group members Action: synchronized
To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/565/head:pr565 git checkout pr565
From 1a80b146b0b371dffeafefaafddb93ce05732b88 Mon Sep 17 00:00:00 2001 From: Petr Vobornik <pvobo...@redhat.com> Date: Thu, 23 Jun 2016 17:42:17 +0200 Subject: [PATCH] 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 --- ACI.txt | 4 ++++ ipaserver/plugins/group.py | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/ACI.txt b/ACI.txt index a36d460..5e84d05 100644 --- a/ACI.txt +++ b/ACI.txt @@ -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 67a264a..218da3c 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': {
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code