Issue448

Title Cannot log into search results page
Priority bug Status chatting
Superseder Nosy List dannystaple, ezio.melotti, loewis, r.david.murray, terry.reedy
Assigned To Topics

Created on 2012-04-05.16:43:01 by terry.reedy, last changed 2012-07-11.08:00:10 by loewis.

Messages
msg2432 (view) Author: terry.reedy Date: 2012-04-05.16:43:01
If I go to bugs.python.org, get default page with recent activity, fill in name,pass, hit [login], I get, with red background
"broken form: multiple @action values submitted"

If I go to search page and do same, I do get logged in.
If I do a search and do same from results page, get same error.
This is new behavior.

Win7, 64 bit, FireFox 11
msg2463 (view) Author: ezio.melotti Date: 2012-04-17.01:43:39
If you e.g. click on the logout link, you get redirected to http://bugs.python.org/?@action=logout.  IIUC you get an error because if e.g. you try to login again, the same url is used as target by the login form (<form method="post" action="#">) so the server receives an action via POST (<input type="hidden" name="@action" value="Login" />) plus the old one via GET (@action=logout in the URL).  I had this problem while switching between users, and the workaround was to go to homepage (e.g. bugs.python.org) after the logout in order to avoid having extra "action" in the URL when I was logging in again.
If we change the target to use only the name of the page, we should be able to solve the problem, but we will lose the ability to get back to the exact page we were visiting after a login (that shouldn't be a big problem though).
Note that the problem also affects the "show issue" form and possibly other forms.
msg2466 (view) Author: r.david.murray Date: 2012-04-17.13:17:21
Oh, I hate web sites that don't take me back to exactly the page I was on after I log in.  -1 on that proposal.  We could strip @action's from the URL, though, that would make sense.
msg2467 (view) Author: loewis Date: 2012-04-17.14:23:37
Ezio: but you would have a green bar "You are logged out - clear this message", right? And if you follow the "clear this message" link, you get to a URL with no action, right? So I doubt this is what Terry did.

Terry: can you reproduce this (I can't)? If so, please give exact reproduction steps. How exactly did you go to bugs.python.org?

I can reproduce it for the search case. In that case, stripping the action is not a good idea.

I think the __came_from field should include query parameters.
msg2468 (view) Author: ezio.melotti Date: 2012-04-17.17:39:12
> Oh, I hate web sites that don't take me back to exactly the page I was on after I log in.

I said it wouldn't be a big problem because if I'm not logged in already, I usually do it to reply to a message, and in that case you would be sent back to the right issue page (issueXXXXX).  It wouldn't work for searches or one of the "summary" query though, because it would redirect to the "issue" page.

> Ezio: but you would have a green bar "You are logged out - clear this message", right?

Yes

> And if you follow the "clear this message" link, you get to a URL with no action, right?

Yes, but I usually just click on the logo on the top-left (note that logging out already redirects to the list of issues).

> So I doubt this is what Terry did.

I only encountered this problem while switching accounts on my test tracker (so logout+login), it never happened to me on the regular tracker (probably because I never had to combine login/logout/search there).
msg2469 (view) Author: terry.reedy Date: 2012-04-17.22:08:19
Ezio is correct that the problem is having an 'action=xxx' in the url while doing a login. Logout -- back to main page but with url such as
http://bugs.python.org/issue?@action=logout&@pagesize=50&@startwith=0
instead of simple
bugs.python.org
(how I usually start from history) is the obvious way to trigger it.
I am not sure how I triggered this. Perhaps I hit 'logout' instead of 'your details'.

Why is 'action=logout' in the url? It has already happened and is not to be repeated. The remainder is not needed as it is the default. In this case, http:bugs.python.org would be enough, except maybe for a page to return to. Or the action should be, if anything 'login', not logout.

The other way to trigger the problem is to go to site, do a search, and get to a url is something like the following, with most invisible
http://bugs.python.org/issue?%40search_text=module&ignore=file%3Acontent&title=&%40columns=title&id=&%40columns=id&stage=&creation=&creator=&activity=&%40columns=activity&%40sort=activity&actor=&nosy=&type=&components=&versions=&dependencies=&assignee=&keywords=&priority=&%40group=priority&status=1&%40columns=status&resolution=&nosy_count=&message_count=&%40pagesize=50&%40startwith=0&%40action=search
including the 'action=search' at the end. Now remember "Oh, I forgot to login" and hit login. Red message. This is a bug in my opinion.

Here, perhaps the url is needed to return to the page, but does the search need to be repeated? Even if so, why are multiple actions prohibited?

I usually don't bother or remember to login until I am on an issue page, whose url has no action, and decide I want to comment or change headers. Or I go directly to an issue page from the Friday report. So I am probably wrong about problem being new, except to me.
msg2470 (view) Author: ezio.melotti Date: 2012-04-17.23:59:29
> Why is 'action=logout' in the url? It has already happened and is not to be repeated.

IIUC this happens because Roundup uses GET for the logout, so in order to logout you have to go to a page that contains action=logout in the URL -- e.g. the page you go to by clicking the "Logout" link.

> Here, perhaps the url is needed to return to the page, but
> does the search need to be repeated?

Most likely, unless the login/logout is implemented via AJAX (but that's impractical since the content of the page usually changes when you log in/out).

> Even if so, why are multiple actions prohibited?

The problem here is that Roundup is mixing GET and POST, normally you would have only one action, and having more actions might result in a conflict (e.g. login+logout).  Instead of giving an error Roundup could ignore the GET action if there's already a POST one, or use POST for the logout too.

> I usually don't bother or remember to login until I am on an issue page,
> whose url has no action, and decide I want to comment or change headers.

This is what I usually do, that's why I said that usually it wouldn't be a problem removing all the GET args from the URL.
msg2473 (view) Author: loewis Date: 2012-04-18.06:45:53
> Why is 'action=logout' in the url? It has already happened

Wrong. The URL you are seeing is the very one that did the
logout. This is how web browsers work: they show you the URL
that corresponds to the page you are seeing. Likewise for
your other suggestions and questions.
msg2554 (view) Author: dannystaple Date: 2012-07-07.12:49:27
This also occurred for me having done a search, then login to add a bug. Considering this is a standard workflow when seeing a bug to report (search first, so as not to add a duplicate), then the login action at least should support this some way - perhaps the url should be "action=login&original_action="urlescaped end of original" such that a successful login can redirect to the logged in version of the previous action.
msg2555 (view) Author: dannystaple Date: 2012-07-07.12:51:28
I am bumping this to urgent. I think that the red bar will discourage some people from submitting bugs on roundup sites.
msg2556 (view) Author: loewis Date: 2012-07-07.14:59:46
dannystaple: are you sure the issue you encountered is the very same issue as the one discussed here?

What is the exact sequence of URLs that you navigated to, and what is the error message that you got? roundup most certainly has a came_from parameter in the login process, so what you ask for should already work.

Please understand that assigning priorities to issues is largely irrelevant. The issue may be deal with today, a year from now, or five years from now - mostly independent of what it's priority is (but issues that we don't consider urgent, as this one, will likely be lowered again in their priority).
msg2559 (view) Author: dannystaple Date: 2012-07-07.23:27:37
Hmm - point taken about the priority, I know how these things can go down.

The initial comment (msg2432) has "If I do a search and do same [log in] from results page, get same error [red background - broken form error]". I've annotated with the square brackets, but this, including the same message, is consistent with what happened to me too.
msg2561 (view) Author: loewis Date: 2012-07-11.08:00:09
Ok, to focus the bug: the issue appears that people cannot log in when a search results page is displayed. Login seems to work fine otherwise.
History
Date User Action Args
2012-07-11 08:00:10loewissetmessages: + msg2561
title: Login not working (mostly) -> Cannot log into search results page
2012-07-07 23:27:37dannystaplesetmessages: + msg2559
2012-07-07 14:59:46loewissetpriority: urgent -> bug
messages: + msg2556
2012-07-07 12:51:28dannystaplesetpriority: bug -> urgent
messages: + msg2555
2012-07-07 12:49:28dannystaplesetnosy: + dannystaple
messages: + msg2554
2012-04-18 06:45:53loewissetmessages: + msg2473
title: Login not working with 'get' action -> Login not working (mostly)
2012-04-18 04:20:54terry.reedysettitle: Login not working (mostly) -> Login not working with 'get' action
2012-04-17 23:59:29ezio.melottisetmessages: + msg2470
2012-04-17 22:08:19terry.reedysetmessages: + msg2469
2012-04-17 17:39:12ezio.melottisetmessages: + msg2468
2012-04-17 14:23:38loewissetnosy: + loewis
messages: + msg2467
2012-04-17 13:17:21r.david.murraysetnosy: + r.david.murray
messages: + msg2466
2012-04-17 01:43:40ezio.melottisetpriority: urgent -> bug
status: unread -> chatting
messages: + msg2463
nosy: + ezio.melotti
2012-04-05 16:43:01terry.reedycreate