Add delete user and group to webgui.

NOTE: this doesn't handle referential integrity.
This commit is contained in:
Kevin McCarthy 2007-10-23 16:46:50 -07:00
parent 28641544e7
commit 859291a706
7 changed files with 100 additions and 12 deletions

View File

@ -299,10 +299,10 @@ class IPAClient:
return self.transport.update_group(group.origDataDict(), group.toDict())
def delete_group(self,group_cn):
def delete_group(self,group_dn):
"""Delete a group entry."""
return self.transport.delete_group(group_cn)
return self.transport.delete_group(group_dn)
def add_group_to_group(self, group_cn, tgroup_cn):
"""Add a group to an existing group.

View File

@ -534,12 +534,12 @@ class RPCClient:
return ipautil.unwrap_binary_data(result)
def delete_group(self,group_cn):
"""Delete a group. group_cn is the cn of the group to be deleted."""
def delete_group(self,group_dn):
"""Delete a group. group_dn is the dn of the group to be deleted."""
server = self.setup_server()
try:
result = server.delete_group(group_cn)
result = server.delete_group(group_dn)
except xmlrpclib.Fault, fault:
raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
except socket.error, (value, msg):

View File

@ -380,6 +380,22 @@ class GroupController(IPAController):
turbogears.flash("Group show failed: " + str(e))
raise turbogears.redirect("/")
@expose()
@identity.require(identity.not_anonymous())
def delete(self, dn):
"""Delete group."""
self.restrict_post()
client = self.get_ipaclient()
try:
client.delete_group(dn)
turbogears.flash("group deleted")
raise turbogears.redirect('/group/list')
except (SyntaxError, ipaerror.IPAError), e:
turbogears.flash("Group deletion failed: " + str(e) + "<br/>" + str(e.detail))
raise turbogears.redirect('/group/list')
@validate(form=group_new_form)
@identity.require(identity.not_anonymous())
def groupcreatevalidate(self, tg_errors=None, **kw):

View File

@ -127,9 +127,11 @@ class UserController(IPAController):
new_user.setValue('businesscategory', kw.get('businesscategory'))
new_user.setValue('description', kw.get('description'))
new_user.setValue('employeetype', kw.get('employeetype'))
new_user.setValue('manager', kw.get('manager'))
if kw.get('manager'):
new_user.setValue('manager', kw.get('manager'))
new_user.setValue('roomnumber', kw.get('roomnumber'))
new_user.setValue('secretary', kw.get('secretary'))
if kw.get('secretary'):
new_user.setValue('secretary', kw.get('secretary'))
new_user.setValue('carlicense', kw.get('carlicense'))
new_user.setValue('labeleduri', kw.get('labeleduri'))
@ -515,6 +517,22 @@ class UserController(IPAController):
turbogears.flash("User show failed: " + str(e))
raise turbogears.redirect("/")
@expose()
@identity.require(identity.not_anonymous())
def delete(self, uid):
"""Delete user."""
self.restrict_post()
client = self.get_ipaclient()
try:
client.delete_user(uid)
turbogears.flash("user deleted")
raise turbogears.redirect('/user/list')
except (SyntaxError, ipaerror.IPAError), e:
turbogears.flash("User deletion failed: " + str(e))
raise turbogears.redirect('/user/list')
@validate(form=user_new_form)
@identity.require(identity.not_anonymous())
def usercreatevalidate(self, tg_errors=None, **kw):

View File

@ -1,5 +1,11 @@
<div xmlns:py="http://purl.org/kid/ns#"
class="simpleroster">
<form style="display:none" id='deleteform'
method="post" action="${tg.url('/group/delete')}">
<input type="hidden" name="dn" value="${value.get('dn')}" />
</form>
<form action="${action}" name="${name}" method="${method}" class="tableform"
onsubmit="preSubmit()" >
@ -13,6 +19,14 @@
<input type="submit" class="submitbutton" name="submit"
value="Cancel Edit" />
</td>
<td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<input type="button" class="deletebutton"
value="Delete Group"
onclick="return confirmDelete();"
/>
<br/><br/>
</td>
</tr>
</table>
@ -46,6 +60,13 @@ from ipagui.helpers import ipahelper
evalScripts: true });
return false;
}
function confirmDelete() {
if (confirm("Are you sure you want to delete this group?")) {
$('deleteform').submit();
}
return false;
}
</script>
<div py:for="field in hidden_fields"
@ -188,6 +209,14 @@ from ipagui.helpers import ipahelper
<input type="submit" class="submitbutton" name="submit"
value="Cancel Edit" />
</td>
<td>
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<input type="button" class="deletebutton"
value="Delete Group"
onclick="return confirmDelete();"
/>
</td>
</tr>
</table>

View File

@ -1,5 +1,11 @@
<div xmlns:py="http://purl.org/kid/ns#"
class="simpleroster">
<form style="display:none" id='deleteform'
method="post" action="${tg.url('/user/delete')}">
<input type="hidden" name="uid" value="${value.get('uid')}" />
</form>
<form action="${action}" name="${name}" method="${method}" class="tableform"
onsubmit="preSubmit()">
@ -13,7 +19,13 @@
<input type="submit" class="submitbutton" name="submit"
value="Cancel Edit" />
</td>
<td></td>
<td>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<input type="button" class="deletebutton"
value="Delete Person"
onclick="return confirmDelete();"
/>
</td>
</tr>
</table>
@ -84,6 +96,13 @@ from ipagui.helpers import ipahelper
evalScripts: true });
return false;
}
function confirmDelete() {
if (confirm("Are you sure you want to delete this person?")) {
$('deleteform').submit();
}
return false;
}
</script>
@ -715,7 +734,14 @@ from ipagui.helpers import ipahelper
<input type="submit" class="submitbutton" name="submit"
value="Cancel Edit" />
</td>
<td></td>
<td>
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<input type="button" class="deletebutton"
value="Delete Person"
onclick="return confirmDelete();"
/>
</td>
</tr>
</table>

View File

@ -1013,13 +1013,12 @@ class IPAServer:
groups.
"""
group = self.get_entry_by_dn(group_dn, ['dn', 'cn'], opts)
if len(group) != 1:
if group is None:
raise ipaerror.gen_exception(ipaerror.LDAP_NOT_FOUND)
conn = self.getConnection(opts)
try:
res = conn.deleteEntry(group[0]['dn'])
res = conn.deleteEntry(group_dn)
finally:
self.releaseConnection(conn)
return res