summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2011-12-20 18:09:20 -0600
committerEndi S. Dewata <edewata@redhat.com>2011-12-21 13:22:45 -0600
commitedd37d20198ba95ebabdbdbf8030f1ec1ecffb6b (patch)
tree0148f184369ffbb944775763d6040adcb12e0fb6
parent78e93c11f680dd4bc23fd88f520fb333f0119f7f (diff)
downloadfreeipa-edd37d20198ba95ebabdbdbf8030f1ec1ecffb6b.tar.gz
freeipa-edd37d20198ba95ebabdbdbf8030f1ec1ecffb6b.tar.xz
freeipa-edd37d20198ba95ebabdbdbf8030f1ec1ecffb6b.zip
Reload UI when the user changes.
The JSON server has been modified to return the principal name in all responses. The UI has been modified to keep the principal obtained during whoami operation and check the principal returned in subsequent operations. If the principal changes the UI will reload itself. Ticket #1400
-rw-r--r--install/ui/ipa.js4
-rw-r--r--ipaserver/rpcserver.py1
2 files changed, 5 insertions, 0 deletions
diff --git a/install/ui/ipa.js b/install/ui/ipa.js
index 5d59a89a4..080f4836d 100644
--- a/install/ui/ipa.js
+++ b/install/ui/ipa.js
@@ -120,6 +120,7 @@ var IPA = function() {
},
on_success: function(data, text_status, xhr) {
that.whoami = data.result[0];
+ that.principal = that.whoami.krbprincipalname[0];
}
}));
@@ -419,6 +420,9 @@ IPA.command = function(spec) {
message: data ? xhr.statusText : IPA.get_message('errors.no_response', 'No response')
});
+ } else if (IPA.principal && data.principal && IPA.principal !== data.principal) {
+ window.location.reload();
+
} else if (data.error) {
// error_handler() calls IPA.hide_activity_icon()
error_handler.call(this, xhr, text_status, /* error_thrown */ {
diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py
index e12f2706e..2bfb8ea60 100644
--- a/ipaserver/rpcserver.py
+++ b/ipaserver/rpcserver.py
@@ -469,6 +469,7 @@ class jsonserver(WSGIExecutioner):
result=result,
error=error,
id=_id,
+ principal=unicode(context.principal),
)
response = json_encode_binary(response)
return json.dumps(response, sort_keys=True, indent=4)