mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Add delete user and group to webgui.
NOTE: this doesn't handle referential integrity.
This commit is contained in:
parent
28641544e7
commit
859291a706
@ -299,10 +299,10 @@ class IPAClient:
|
|||||||
|
|
||||||
return self.transport.update_group(group.origDataDict(), group.toDict())
|
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."""
|
"""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):
|
def add_group_to_group(self, group_cn, tgroup_cn):
|
||||||
"""Add a group to an existing group.
|
"""Add a group to an existing group.
|
||||||
|
@ -534,12 +534,12 @@ class RPCClient:
|
|||||||
|
|
||||||
return ipautil.unwrap_binary_data(result)
|
return ipautil.unwrap_binary_data(result)
|
||||||
|
|
||||||
def delete_group(self,group_cn):
|
def delete_group(self,group_dn):
|
||||||
"""Delete a group. group_cn is the cn of the group to be deleted."""
|
"""Delete a group. group_dn is the dn of the group to be deleted."""
|
||||||
server = self.setup_server()
|
server = self.setup_server()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
result = server.delete_group(group_cn)
|
result = server.delete_group(group_dn)
|
||||||
except xmlrpclib.Fault, fault:
|
except xmlrpclib.Fault, fault:
|
||||||
raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
|
raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
|
||||||
except socket.error, (value, msg):
|
except socket.error, (value, msg):
|
||||||
|
@ -380,6 +380,22 @@ class GroupController(IPAController):
|
|||||||
turbogears.flash("Group show failed: " + str(e))
|
turbogears.flash("Group show failed: " + str(e))
|
||||||
raise turbogears.redirect("/")
|
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)
|
@validate(form=group_new_form)
|
||||||
@identity.require(identity.not_anonymous())
|
@identity.require(identity.not_anonymous())
|
||||||
def groupcreatevalidate(self, tg_errors=None, **kw):
|
def groupcreatevalidate(self, tg_errors=None, **kw):
|
||||||
|
@ -127,9 +127,11 @@ class UserController(IPAController):
|
|||||||
new_user.setValue('businesscategory', kw.get('businesscategory'))
|
new_user.setValue('businesscategory', kw.get('businesscategory'))
|
||||||
new_user.setValue('description', kw.get('description'))
|
new_user.setValue('description', kw.get('description'))
|
||||||
new_user.setValue('employeetype', kw.get('employeetype'))
|
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('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('carlicense', kw.get('carlicense'))
|
||||||
new_user.setValue('labeleduri', kw.get('labeleduri'))
|
new_user.setValue('labeleduri', kw.get('labeleduri'))
|
||||||
@ -515,6 +517,22 @@ class UserController(IPAController):
|
|||||||
turbogears.flash("User show failed: " + str(e))
|
turbogears.flash("User show failed: " + str(e))
|
||||||
raise turbogears.redirect("/")
|
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)
|
@validate(form=user_new_form)
|
||||||
@identity.require(identity.not_anonymous())
|
@identity.require(identity.not_anonymous())
|
||||||
def usercreatevalidate(self, tg_errors=None, **kw):
|
def usercreatevalidate(self, tg_errors=None, **kw):
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
<div xmlns:py="http://purl.org/kid/ns#"
|
<div xmlns:py="http://purl.org/kid/ns#"
|
||||||
class="simpleroster">
|
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"
|
<form action="${action}" name="${name}" method="${method}" class="tableform"
|
||||||
onsubmit="preSubmit()" >
|
onsubmit="preSubmit()" >
|
||||||
|
|
||||||
@ -13,6 +19,14 @@
|
|||||||
<input type="submit" class="submitbutton" name="submit"
|
<input type="submit" class="submitbutton" name="submit"
|
||||||
value="Cancel Edit" />
|
value="Cancel Edit" />
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
<input type="button" class="deletebutton"
|
||||||
|
value="Delete Group"
|
||||||
|
onclick="return confirmDelete();"
|
||||||
|
/>
|
||||||
|
<br/><br/>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@ -46,6 +60,13 @@ from ipagui.helpers import ipahelper
|
|||||||
evalScripts: true });
|
evalScripts: true });
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function confirmDelete() {
|
||||||
|
if (confirm("Are you sure you want to delete this group?")) {
|
||||||
|
$('deleteform').submit();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div py:for="field in hidden_fields"
|
<div py:for="field in hidden_fields"
|
||||||
@ -188,6 +209,14 @@ from ipagui.helpers import ipahelper
|
|||||||
<input type="submit" class="submitbutton" name="submit"
|
<input type="submit" class="submitbutton" name="submit"
|
||||||
value="Cancel Edit" />
|
value="Cancel Edit" />
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<input type="button" class="deletebutton"
|
||||||
|
value="Delete Group"
|
||||||
|
onclick="return confirmDelete();"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
<div xmlns:py="http://purl.org/kid/ns#"
|
<div xmlns:py="http://purl.org/kid/ns#"
|
||||||
class="simpleroster">
|
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"
|
<form action="${action}" name="${name}" method="${method}" class="tableform"
|
||||||
onsubmit="preSubmit()">
|
onsubmit="preSubmit()">
|
||||||
|
|
||||||
@ -13,7 +19,13 @@
|
|||||||
<input type="submit" class="submitbutton" name="submit"
|
<input type="submit" class="submitbutton" name="submit"
|
||||||
value="Cancel Edit" />
|
value="Cancel Edit" />
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td>
|
||||||
|
|
||||||
|
<input type="button" class="deletebutton"
|
||||||
|
value="Delete Person"
|
||||||
|
onclick="return confirmDelete();"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@ -84,6 +96,13 @@ from ipagui.helpers import ipahelper
|
|||||||
evalScripts: true });
|
evalScripts: true });
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function confirmDelete() {
|
||||||
|
if (confirm("Are you sure you want to delete this person?")) {
|
||||||
|
$('deleteform').submit();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
@ -715,7 +734,14 @@ from ipagui.helpers import ipahelper
|
|||||||
<input type="submit" class="submitbutton" name="submit"
|
<input type="submit" class="submitbutton" name="submit"
|
||||||
value="Cancel Edit" />
|
value="Cancel Edit" />
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td>
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<input type="button" class="deletebutton"
|
||||||
|
value="Delete Person"
|
||||||
|
onclick="return confirmDelete();"
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
@ -1013,13 +1013,12 @@ class IPAServer:
|
|||||||
groups.
|
groups.
|
||||||
"""
|
"""
|
||||||
group = self.get_entry_by_dn(group_dn, ['dn', 'cn'], opts)
|
group = self.get_entry_by_dn(group_dn, ['dn', 'cn'], opts)
|
||||||
|
if group is None:
|
||||||
if len(group) != 1:
|
|
||||||
raise ipaerror.gen_exception(ipaerror.LDAP_NOT_FOUND)
|
raise ipaerror.gen_exception(ipaerror.LDAP_NOT_FOUND)
|
||||||
|
|
||||||
conn = self.getConnection(opts)
|
conn = self.getConnection(opts)
|
||||||
try:
|
try:
|
||||||
res = conn.deleteEntry(group[0]['dn'])
|
res = conn.deleteEntry(group_dn)
|
||||||
finally:
|
finally:
|
||||||
self.releaseConnection(conn)
|
self.releaseConnection(conn)
|
||||||
return res
|
return res
|
||||||
|
Loading…
Reference in New Issue
Block a user