From 425edee520f5423031c65c7dd26e985278e4cc05 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 4 Apr 2014 18:01:19 -0400 Subject: [PATCH] Properly support rename operation Signed-off-by: Simo Sorce --- ipsilon/providers/saml2/admin.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ipsilon/providers/saml2/admin.py b/ipsilon/providers/saml2/admin.py index 4e9741d..8a0a511 100755 --- a/ipsilon/providers/saml2/admin.py +++ b/ipsilon/providers/saml2/admin.py @@ -125,6 +125,7 @@ class SPAdminPage(Page): message = "Nothing was modified." message_type = "info" + rename = None save = False for key, value in kwargs.iteritems(): @@ -134,6 +135,7 @@ class SPAdminPage(Page): self._debug("Replacing %s: %s -> %s" % (key, self.sp.name, value)) self.sp.name = value + rename = [self.sp.name, value] save = True else: message = "Unauthorized to rename object" @@ -180,6 +182,8 @@ class SPAdminPage(Page): if save: try: self.sp.save_properties() + if rename: + self.parent.rename_sp(rename[0], rename[1]) message = "Properties succssfully changed" message_type = "success" except Exception: # pylint: disable=broad-except @@ -216,6 +220,11 @@ class AdminPage(Page): self.providers.append(sp) return page + def rename_sp(self, oldname, newname): + page = getattr(self.sp, oldname) + self.sp.del_subtree(oldname) + self.sp.add_subtree(newname, page) + def del_sp(self, name): try: page = getattr(self.sp, name) -- 2.20.1