mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Implement user-del
rename is_user_unique() to user_exists()
This commit is contained in:
@@ -134,9 +134,10 @@ def get_entry_by_dn (dn, sattrs=None):
|
|||||||
|
|
||||||
# User support
|
# User support
|
||||||
|
|
||||||
def is_user_unique(uid):
|
def user_exists(uid):
|
||||||
"""Return True if the uid is unique in the tree, False otherwise."""
|
"""Return True if the exists, False otherwise."""
|
||||||
# FIXME
|
# FIXME: fix the filter
|
||||||
|
# FIXME: should accept a container to look in
|
||||||
# uid = self.__safe_filter(uid)
|
# uid = self.__safe_filter(uid)
|
||||||
searchfilter = "(&(uid=%s)(objectclass=posixAccount))" % uid
|
searchfilter = "(&(uid=%s)(objectclass=posixAccount))" % uid
|
||||||
|
|
||||||
@@ -292,6 +293,10 @@ def add_entry(entry):
|
|||||||
"""Add a new entry"""
|
"""Add a new entry"""
|
||||||
return context.conn.getConn().addEntry(entry)
|
return context.conn.getConn().addEntry(entry)
|
||||||
|
|
||||||
|
def delete_entry(dn):
|
||||||
|
"""Remove an entry"""
|
||||||
|
return context.conn.getConn().deleteEntry(dn)
|
||||||
|
|
||||||
def uniq_list(x):
|
def uniq_list(x):
|
||||||
"""Return a unique list, preserving order and ignoring case"""
|
"""Return a unique list, preserving order and ignoring case"""
|
||||||
myset = {}
|
myset = {}
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ class user_add(crud.Add):
|
|||||||
|
|
||||||
user['uid'] = args[0]
|
user['uid'] = args[0]
|
||||||
|
|
||||||
if not servercore.is_user_unique(user['uid']):
|
if servercore.user_exists(user['uid']):
|
||||||
# FIXME, specific error
|
# FIXME, specific error
|
||||||
raise SyntaxError("user already exists")
|
raise SyntaxError("user already exists")
|
||||||
if servercore.uid_too_long(user['uid']):
|
if servercore.uid_too_long(user['uid']):
|
||||||
@@ -177,6 +177,31 @@ api.register(user_add)
|
|||||||
|
|
||||||
class user_del(crud.Del):
|
class user_del(crud.Del):
|
||||||
'Delete an existing user.'
|
'Delete an existing user.'
|
||||||
|
def execute(self, *args, **kw):
|
||||||
|
"""args[0] = uid of the user to remove
|
||||||
|
|
||||||
|
Delete a user. Not to be confused with inactivate_user. This
|
||||||
|
makes the entry go away completely.
|
||||||
|
|
||||||
|
uid is the uid of the user to delete
|
||||||
|
|
||||||
|
The memberOf plugin handles removing the user from any other
|
||||||
|
groups.
|
||||||
|
"""
|
||||||
|
uid = args[0]
|
||||||
|
if uid == "admin":
|
||||||
|
raise ipaerror.gen_exception(ipaerror.INPUT_ADMIN_REQUIRED)
|
||||||
|
# logging.info("IPA: delete_user '%s'" % uid)
|
||||||
|
user = servercore.get_user_by_uid(uid, ['dn', 'uid'])
|
||||||
|
if not user:
|
||||||
|
# FIXME, specific error
|
||||||
|
raise SyntaxError("user doesn't exist")
|
||||||
|
|
||||||
|
return servercore.delete_entry(user['dn'])
|
||||||
|
def forward(self, *args, **kw):
|
||||||
|
result = super(crud.Del, self).forward(*args, **kw)
|
||||||
|
if result != False:
|
||||||
|
print "User %s removed" % args[0]
|
||||||
api.register(user_del)
|
api.register(user_del)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user