diff options
Diffstat (limited to 'ipa-server')
-rw-r--r-- | ipa-server/ipa-gui/ipagui/subcontrollers/group.py | 16 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/subcontrollers/user.py | 22 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/templates/groupeditform.kid | 29 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/templates/usereditform.kid | 30 | ||||
-rw-r--r-- | ipa-server/xmlrpc-server/funcs.py | 5 |
5 files changed, 95 insertions, 7 deletions
diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/group.py b/ipa-server/ipa-gui/ipagui/subcontrollers/group.py index 4c6204c3..d4663f7a 100644 --- a/ipa-server/ipa-gui/ipagui/subcontrollers/group.py +++ b/ipa-server/ipa-gui/ipagui/subcontrollers/group.py @@ -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): diff --git a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py index 58e6c6ec..570ca2a4 100644 --- a/ipa-server/ipa-gui/ipagui/subcontrollers/user.py +++ b/ipa-server/ipa-gui/ipagui/subcontrollers/user.py @@ -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): diff --git a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid index 9b76daa0..2131193f 100644 --- a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid +++ b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid @@ -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> + + <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 /> + + <input type="button" class="deletebutton" + value="Delete Group" + onclick="return confirmDelete();" + /> + </td> </tr> </table> diff --git a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid b/ipa-server/ipa-gui/ipagui/templates/usereditform.kid index de28f62f..3a111961 100644 --- a/ipa-server/ipa-gui/ipagui/templates/usereditform.kid +++ b/ipa-server/ipa-gui/ipagui/templates/usereditform.kid @@ -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> + + <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 /> + + <input type="button" class="deletebutton" + value="Delete Person" + onclick="return confirmDelete();" + /> + </td> </tr> </table> diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py index 7ce83d57..257e84d2 100644 --- a/ipa-server/xmlrpc-server/funcs.py +++ b/ipa-server/xmlrpc-server/funcs.py @@ -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 |