summaryrefslogtreecommitdiffstats
path: root/ipsilon/providers/saml2
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-04-04 18:01:19 -0400
committerSimo Sorce <simo@redhat.com>2014-04-04 18:01:53 -0400
commit425edee520f5423031c65c7dd26e985278e4cc05 (patch)
tree029a1f98446dd68d2332391d7afc5b9291dc8c01 /ipsilon/providers/saml2
parent33bab7b0d653200d4321a71a1467ba39714005c4 (diff)
downloadipsilon-425edee520f5423031c65c7dd26e985278e4cc05.tar.gz
ipsilon-425edee520f5423031c65c7dd26e985278e4cc05.tar.xz
ipsilon-425edee520f5423031c65c7dd26e985278e4cc05.zip
Properly support rename operation
Signed-off-by: Simo Sorce <simo@redhat.com>
Diffstat (limited to 'ipsilon/providers/saml2')
-rwxr-xr-xipsilon/providers/saml2/admin.py9
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)