Hi,

another way to solve this, without modifying oVirt WebAdmin sources,
is to write a small UI plugin that performs the redirect within its
UserLogout callback:

  var api = parent.pluginApi('ExampleRedirectOnLogoutPlugin');
  api.register({
    UserLogout: function() { window.location.assign('http://www.example.org'); }
  });
  api.ready();

Reference documentation: http://www.ovirt.org/Features/UIPlugins

Regards,
Vojtech


----- Original Message -----
> From: "温蓓" <wenbei_43409...@qq.com>
> To: "awels" <aw...@redhat.com>, "devel" <devel@ovirt.org>
> Sent: Friday, November 13, 2015 3:34:27 AM
> Subject: [ovirt-devel] 回复:  In windows OS & firefox brower, 
> Window.Location.replace(url) would stop System to execute
> Command, and would not catch any error info.But other OS like firefox in 
> linux would not happen like that
> 
> Hi Alexander
> I tried your method ,and it works! right, I want to redirect another page
> after user logged out, but also I want Ovirt-engine could execute Logout
> user command to clear session.
> I tried to insert Window.Location.replrace in LoginModel.java ,
> ApplicationPlaceManager.java etc. In any version firefox of window7 OS, even
> if another page could be redirected correctly ,ovirt-engine would not
> execute Logout user command ,so user's session would not be clear, and I can
> see previous page.
> It's strange that this stuff would not happen in other browsers(chrome/IE),
> even the firefox of Linux. I try to replace in callback() as your advice,
> now, for every browsers, ovirt-engine can execute logout command, it works!
> Thank you so much for your patience :)
> 
> 
> ------------------ 原始邮件 ------------------
> 发件人: "Alexander Wels"<aw...@redhat.com>;
> 发送时间: 2015年11月12日(星期四) 晚上10:37
> 收件人: "devel"<devel@ovirt.org>;
> 抄送: "温蓓"<wenbei_43409...@qq.com>;
> 主题: Re: [ovirt-devel] In windows OS & firefox brower,
> Window.Location.replace(url) would stop System to execute Command, and would
> not catch any error info.But other OS like firefox in linux would not happen
> like that
> 
> On Thursday, November 12, 2015 01:41:38 PM 温蓓 wrote:
> > HiI want to redirct the page when ovirt admin logout, so I add
> > :Window.Location.replace("/test.html") in ApplicationPlaceManager.java as
> > below:
> > @Override
> > public void revealDefaultPlace() {
> > PlaceRequest pr = getDefaultPlace();
> > if (pr == null) {
> > //Window.Location.replace("/test.html"); //$NON-NLS-1$
> > } else {
> > revealPlace(pr);
> > }
> > } or in
> > LoginModel.java\BaseApplicationInit.java etc. It can achieve to redirect by
> > chrome,IE and firefox in Linux, and would execute LogoutUserCommand to
> > clean user session,Then at firefox in Windows no matter which version, it
> > could redirect but would not execute LogoutUserCommand, so I can log into
> > System by previous URL without password. How can I redirect URL when
> > logout?Is there any config files for this? I could not find it, thanks a
> > lot :) Version-Release number of selected component (if applicable): 3.4.5
> > Steps to Reproduce: 1.update code:ApplicationPlaceManager.java public void
> > revealDefaultPlace() { PlaceRequest pr = getDefaultPlace();
> > if (pr == null) { //Window.Location.replace("/test.html");
> > //$NON-NLS-1$ } else { revealPlace(pr); } }
> > 2.login system and logout 3.input previous url like
> > :xxxxxx/ovirt-engine/webadmin/?locale=zh_CN#vms and can redirect. Actual
> > results: redirect into vm page. Expected results: redirect into login page.
> 
> Hi,
> 
> I am trying to decipher your message (it got garbled for some reason). And I
> am trying to understand what you are trying to do. If I understand correctly
> you want to redirect to some other page after you have logged out of the web
> admin.
> 
> To get back to the specifics of your question. The DefaultPlace is the #XXX
> in
> the URL you are sent to (note its not an actual redirect, since there is no
> round trip to the server), if you don't specify a particular place. When you
> do #vms the whole DefaultPlace mechanism is not in play since you specified a
> particular place.
> 
> What does happen is that the framework asks the LoggedInGatekeeper if the
> user
> is logged in (in the canReveal() method). If the user is logged in, it will
> proceed to the normal place requested (in your example #vms). If the user is
> not logged in, it will switch places to #login and display the login screen.
> 
> Now you say you are using 3.4.5 which is quite old, and its been some time
> since I worked with it. If I understand correctly what you are trying to do,
> don't mess around with the DefaultPlace. In BaseApplicationInit there should
> be a 'onLogout' method. In there should be a callback that happens AFTER the
> user is logged out from the server. Right now it says something
> Window.Location.reload() to reload the page after the logout. You should be
> able to put your Window.Location.replace in there (replace the reload with
> the
> replace). Which I think will do what you want.
> 
> If it doesn't do what you want, I am going to need some more information on
> what it is that you are trying to do.
> 
> Alexander
> 
> _______________________________________________
> Devel mailing list
> Devel@ovirt.org
> http://lists.ovirt.org/mailman/listinfo/devel
_______________________________________________
Devel mailing list
Devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel

Reply via email to