diff options
author | Simo Sorce <simo@redhat.com> | 2014-04-04 18:01:19 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2014-04-04 18:01:53 -0400 |
commit | 425edee520f5423031c65c7dd26e985278e4cc05 (patch) | |
tree | 029a1f98446dd68d2332391d7afc5b9291dc8c01 /ipsilon | |
parent | 33bab7b0d653200d4321a71a1467ba39714005c4 (diff) | |
download | ipsilon.git-425edee520f5423031c65c7dd26e985278e4cc05.tar.gz ipsilon.git-425edee520f5423031c65c7dd26e985278e4cc05.tar.xz ipsilon.git-425edee520f5423031c65c7dd26e985278e4cc05.zip |
Properly support rename operation
Signed-off-by: Simo Sorce <simo@redhat.com>
Diffstat (limited to 'ipsilon')
-rwxr-xr-x | ipsilon/providers/saml2/admin.py | 9 |
1 files changed, 9 insertions, 0 deletions
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) |