For reference, I've solved this as follows:
For pages requiring a logged-in user:
* I've added a method #gotoLoggedIn: to WAAnchorTag which I use instead of
#goto: when linking to pages which assume a logged in user.
* The implementation of #gotoLoggedIn: creates a login/registration command
if "self context isLoggedIn not". The command stores the destination
structure which is passed to the #gotoLoggedIn: method as a parameter.
* If the login/registration command completes successfully, the destination
structure is set in the context.
For actions requiring a logged-in user:
* I've added an extension method #requiresLogin to PRCommand which by
default returns false.
* In #onChangeContext: of my derived from PRContentsWidget class, I check to
see if (aContext isLoggedIn not and: [aContext command requiresLogin])
* I then set the context command to be my login/registration command and
storing the initial command in the login/registration command.
* If the login/registration command completes successfully, the original
command is set in the context.
On 17 May 2010 11:44, Nick Ager <nick.ager(a)gmail.com> wrote:
I'd like to flag various pages in my site as being only valid if the user
is logged in. I've an action which creates a popup login/registration dialog
and ideally I'd like to tie to two together so that pages that are flagged
as requiring a user will display the popup login/registration dialog.
Has anyone developed anything like this before or any thoughts on how to
hook into Pier to provide the required behaviour?