mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-12 09:11:55 -06:00
Fix counting of successfully added members. Add checks for use_ldap2 in group2. Some cosmetic changes.
This commit is contained in:
parent
a3ae5047f3
commit
1e55b0a1ab
@ -27,7 +27,7 @@ from ipalib import Command, Object
|
|||||||
from ipalib import Flag, Int, List, Str
|
from ipalib import Flag, Int, List, Str
|
||||||
|
|
||||||
_default_attributes = ['cn', 'description', 'member', 'memberOf']
|
_default_attributes = ['cn', 'description', 'member', 'memberOf']
|
||||||
_default_class = 'groupofnames'
|
_default_class = 'groupOfNames'
|
||||||
|
|
||||||
|
|
||||||
def get_dn_by_attr(ldap, attr, value, object_class, parent_dn=''):
|
def get_dn_by_attr(ldap, attr, value, object_class, parent_dn=''):
|
||||||
@ -141,7 +141,7 @@ class basegroup2_create(crud.Create):
|
|||||||
"""
|
"""
|
||||||
Create new group.
|
Create new group.
|
||||||
"""
|
"""
|
||||||
base_classes = ("top", _default_class)
|
base_classes = ('top', _default_class)
|
||||||
|
|
||||||
def execute(self, cn, **kw):
|
def execute(self, cn, **kw):
|
||||||
"""
|
"""
|
||||||
@ -405,7 +405,8 @@ class basegroup2_add_member(Command):
|
|||||||
"""
|
"""
|
||||||
Execute the group-add-member operation.
|
Execute the group-add-member operation.
|
||||||
|
|
||||||
Returns the updated group entry
|
Returns a tuple containing the number of members added
|
||||||
|
and the updated entry.
|
||||||
|
|
||||||
:param cn: The group name to add new members to.
|
:param cn: The group name to add new members to.
|
||||||
:param kw: groups is a comma-separated list of groups to add
|
:param kw: groups is a comma-separated list of groups to add
|
||||||
@ -415,19 +416,18 @@ class basegroup2_add_member(Command):
|
|||||||
assert self.api.env.use_ldap2, 'use_ldap2 is False'
|
assert self.api.env.use_ldap2, 'use_ldap2 is False'
|
||||||
ldap = self.api.Backend.ldap2
|
ldap = self.api.Backend.ldap2
|
||||||
dn = get_dn_by_attr(ldap, 'cn', cn, self.filter_class, self.container)
|
dn = get_dn_by_attr(ldap, 'cn', cn, self.filter_class, self.container)
|
||||||
add_failed = []
|
|
||||||
to_add = []
|
to_add = []
|
||||||
|
add_failed = []
|
||||||
completed = 0
|
completed = 0
|
||||||
total = 0
|
|
||||||
|
|
||||||
members = kw.get('groups', [])
|
members = kw.get('groups', [])
|
||||||
(to_add, add_failed) = find_members(
|
(to_add, add_failed) = find_members(
|
||||||
ldap, add_failed, members, 'cn', 'ipaUserGroup', self.container
|
ldap, add_failed, members, 'cn', 'ipaUserGroup',
|
||||||
|
self.api.env.container_group
|
||||||
)
|
)
|
||||||
(completed, add_failed) = add_members(
|
(completed, add_failed) = add_members(
|
||||||
ldap, completed, to_add, add_failed, dn, "member"
|
ldap, completed, to_add, add_failed, dn, 'member'
|
||||||
)
|
)
|
||||||
total += completed
|
|
||||||
|
|
||||||
members = kw.get('users', [])
|
members = kw.get('users', [])
|
||||||
(to_add, add_failed) = find_members(
|
(to_add, add_failed) = find_members(
|
||||||
@ -437,9 +437,8 @@ class basegroup2_add_member(Command):
|
|||||||
(completed, add_failed) = add_members(
|
(completed, add_failed) = add_members(
|
||||||
ldap, completed, to_add, add_failed, dn, 'member'
|
ldap, completed, to_add, add_failed, dn, 'member'
|
||||||
)
|
)
|
||||||
total += completed
|
|
||||||
|
|
||||||
return (total, ldap.get_entry(dn, self.default_attributes))
|
return (completed, ldap.get_entry(dn, self.default_attributes))
|
||||||
|
|
||||||
def output_for_cli(self, textui, result, *args, **options):
|
def output_for_cli(self, textui, result, *args, **options):
|
||||||
"""
|
"""
|
||||||
@ -481,9 +480,10 @@ class basegroup2_del_member(Command):
|
|||||||
|
|
||||||
def execute(self, cn, **kw):
|
def execute(self, cn, **kw):
|
||||||
"""
|
"""
|
||||||
Execute the group-remove-member operation.
|
Execute the group-del-member operation.
|
||||||
|
|
||||||
Returns the members that could not be added
|
Returns a tuple containing the number of members removed
|
||||||
|
and the updated entry.
|
||||||
|
|
||||||
:param cn: The group name to add new members to.
|
:param cn: The group name to add new members to.
|
||||||
:param kw: groups is a comma-separated list of groups to remove
|
:param kw: groups is a comma-separated list of groups to remove
|
||||||
@ -496,16 +496,15 @@ class basegroup2_del_member(Command):
|
|||||||
to_remove = []
|
to_remove = []
|
||||||
remove_failed = []
|
remove_failed = []
|
||||||
completed = 0
|
completed = 0
|
||||||
total = 0
|
|
||||||
|
|
||||||
members = kw.get('groups', [])
|
members = kw.get('groups', [])
|
||||||
(to_remove, remove_failed) = find_members(
|
(to_remove, remove_failed) = find_members(
|
||||||
ldap, remove_failed, members, 'cn', 'ipaUserGroup', self.container
|
ldap, remove_failed, members, 'cn', 'ipaUserGroup',
|
||||||
|
self.api.env.container_group
|
||||||
)
|
)
|
||||||
(completed, remove_failed) = del_members(
|
(completed, remove_failed) = del_members(
|
||||||
ldap, completed, to_remove, remove_failed, dn, 'member'
|
ldap, completed, to_remove, remove_failed, dn, 'member'
|
||||||
)
|
)
|
||||||
total += completed
|
|
||||||
|
|
||||||
members = kw.get('users', [])
|
members = kw.get('users', [])
|
||||||
(to_remove, remove_failed) = find_members(
|
(to_remove, remove_failed) = find_members(
|
||||||
@ -515,9 +514,8 @@ class basegroup2_del_member(Command):
|
|||||||
(completed, remove_failed) = del_members(
|
(completed, remove_failed) = del_members(
|
||||||
ldap, completed, to_remove, remove_failed, dn, 'member'
|
ldap, completed, to_remove, remove_failed, dn, 'member'
|
||||||
)
|
)
|
||||||
total += completed
|
|
||||||
|
|
||||||
return (total, ldap.get_entry(dn, self.default_attributes))
|
return (completed, ldap.get_entry(dn, self.default_attributes))
|
||||||
|
|
||||||
def output_for_cli(self, textui, result, *args, **options):
|
def output_for_cli(self, textui, result, *args, **options):
|
||||||
"""
|
"""
|
||||||
|
@ -29,6 +29,7 @@ _container_dn = api.env.container_group
|
|||||||
_default_attributes = ['cn', 'description', 'gidNumber', 'member', 'memberOf']
|
_default_attributes = ['cn', 'description', 'gidNumber', 'member', 'memberOf']
|
||||||
_default_class = 'ipaUserGroup'
|
_default_class = 'ipaUserGroup'
|
||||||
|
|
||||||
|
|
||||||
class group2(basegroup2):
|
class group2(basegroup2):
|
||||||
"""
|
"""
|
||||||
Group object.
|
Group object.
|
||||||
@ -177,6 +178,10 @@ class group2_find(basegroup2_find):
|
|||||||
container = _container_dn
|
container = _container_dn
|
||||||
filter_class = _default_class
|
filter_class = _default_class
|
||||||
|
|
||||||
|
def execute(self, cn, **kw):
|
||||||
|
assert self.api.env.use_ldap2, 'use_ldap2 is False'
|
||||||
|
return super(group2_find, self).execute(cn, **kw)
|
||||||
|
|
||||||
api.register(group2_find)
|
api.register(group2_find)
|
||||||
|
|
||||||
|
|
||||||
@ -187,21 +192,35 @@ class group2_show(basegroup2_show):
|
|||||||
default_attributes = _default_attributes
|
default_attributes = _default_attributes
|
||||||
container = _container_dn
|
container = _container_dn
|
||||||
|
|
||||||
|
def execute(self, cn, **kw):
|
||||||
|
assert self.api.env.use_ldap2, 'use_ldap2 is False'
|
||||||
|
return super(group2_show, self).execute(cn, **kw)
|
||||||
|
|
||||||
api.register(group2_show)
|
api.register(group2_show)
|
||||||
|
|
||||||
|
|
||||||
class group2_add_member(basegroup2_add_member):
|
class group2_add_member(basegroup2_add_member):
|
||||||
"""
|
"""
|
||||||
Add member to group.
|
Add members to group.
|
||||||
"""
|
"""
|
||||||
container = _container_dn
|
container = _container_dn
|
||||||
|
|
||||||
|
def execute(self, cn, **kw):
|
||||||
|
assert self.api.env.use_ldap2, 'use_ldap2 is False'
|
||||||
|
return super(group2_add_member, self).execute(cn, **kw)
|
||||||
|
|
||||||
api.register(group2_add_member)
|
api.register(group2_add_member)
|
||||||
|
|
||||||
|
|
||||||
class group2_del_member(basegroup2_del_member):
|
class group2_del_member(basegroup2_del_member):
|
||||||
'Remove a member from a group.'
|
"""
|
||||||
|
Remove members from group.
|
||||||
|
"""
|
||||||
container = _container_dn
|
container = _container_dn
|
||||||
|
|
||||||
|
def execute(self, cn, **kw):
|
||||||
|
assert self.api.env.use_ldap2, 'use_ldap2 is False'
|
||||||
|
return super(group2_del_member, self).execute(cn, **kw)
|
||||||
|
|
||||||
api.register(group2_del_member)
|
api.register(group2_del_member)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user