summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins/f_group.py
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2008-10-09 23:11:03 -0400
committerRob Crittenden <rcritten@redhat.com>2008-10-10 03:36:57 -0400
commit8a97b3e8a8f437cd99cc7cabbc719368b0247983 (patch)
treedfb0067cb969671c2078fcda389ed73c1ecb9ae0 /ipalib/plugins/f_group.py
parent5c07d978659b3f91441a42295531539a1ae8eacc (diff)
downloadfreeipa.git-8a97b3e8a8f437cd99cc7cabbc719368b0247983.tar.gz
freeipa.git-8a97b3e8a8f437cd99cc7cabbc719368b0247983.tar.xz
freeipa.git-8a97b3e8a8f437cd99cc7cabbc719368b0247983.zip
Implement group-del
Diffstat (limited to 'ipalib/plugins/f_group.py')
-rw-r--r--ipalib/plugins/f_group.py48
1 files changed, 46 insertions, 2 deletions
diff --git a/ipalib/plugins/f_group.py b/ipalib/plugins/f_group.py
index c5a37e72..fd56b3ff 100644
--- a/ipalib/plugins/f_group.py
+++ b/ipalib/plugins/f_group.py
@@ -27,6 +27,7 @@ from ipalib.frontend import Param
from ipalib import api
from ipa_server import servercore
from ipa_server import ipaldap
+from ipa_server import ipautil
import ldap
@@ -83,13 +84,49 @@ class group_add(crud.Add):
result = servercore.add_entry(entry)
return result
-
-
+ def forward(self, *args, **kw):
+ result = super(crud.Add, self).forward(*args, **kw)
+ if result:
+ print "Group %s added" % args[0]
api.register(group_add)
class group_del(crud.Del):
'Delete an existing group.'
+ def execute(self, *args, **kw):
+ """args[0] = dn of the group to remove
+
+ Delete a group
+
+ The memberOf plugin handles removing the group from any other
+ groups.
+ """
+ group_dn = args[0]
+
+ group = servercore.get_entry_by_dn(group_dn, ['dn', 'cn'])
+ if group is None:
+ raise errors.NotFound
+# logging.info("IPA: delete_group '%s'" % group_dn)
+
+ # We have 2 special groups, don't allow them to be removed
+ # FIXME
+# if "admins" in group.get('cn') or "editors" in group.get('cn'):
+# raise ipaerror.gen_exception(ipaerror.CONFIG_REQUIRED_GROUPS)
+
+ # Don't allow the default user group to be removed
+ config=servercore.get_ipa_config()
+ default_group = servercore.get_entry_by_cn(config.get('ipadefaultprimarygroup'), None)
+ if group_dn == default_group.get('dn'):
+ raise errors.DefaultGroup
+
+ return servercore.delete_entry(group_dn)
+ def forward(self, *args, **kw):
+ group = self.api.Command['group_show'](ipautil.utf8_encode_value(args[0]))
+ if not group:
+ print "nothing found"
+ return False
+ a = group.get('dn')
+ result = super(crud.Del, self).forward(a)
api.register(group_del)
@@ -113,4 +150,11 @@ api.register(group_find)
class group_show(crud.Get):
'Examine an existing group.'
+ def execute(self, *args, **kw):
+ cn=args[0]
+ result = servercore.get_sub_entry(servercore.basedn, "cn=%s" % cn, ["*"])
+ return result
+ def forward(self, *args, **kw):
+ result = super(crud.Get, self).forward(*args, **kw)
+ return result
api.register(group_show)