Am 19.09.2007 um 02:43 schrieb Lachlan Deck:
On 19/09/2007, at 8:15 AM, Lachlan Scott wrote:In our application, we have a log in component which adds a User objectto the Session if the supplied credentials are correct.For testing purposes, we use a 'component menu' component which displays a list of available components, and provides action methods to displaythem individually.We can write an action method in the menu to do a login and then displaythe component, like this (pseudo code) Public WOComponent doLoginAndCallNewPage(){ // do usual login stuff // return the actual page we want }Which is all well and good, but feels clumsy, and hard codes the login variables. I wondered if we couldn't somehow call the desired page andaddress its user variable from the WOD, something like this: MyWebObjectName : MyDesiredComponentName { user = <some construct to set a User to this variable>; }
Seems to me that your code will not work properly as your function is declared to return...
Sure...
-- CurrentPage.java --
public User fechedUser() {
... an object of type User
if ( session().hasUser() ) {
return session().user();
}
else if ( ! hasCredentials() )
return this;
but here a WOComponent is returned.
// fetch user from credentials try { NSDictionary creds = new NSMutableDictionary(); creds.setObjectForKey( userName(), User.UserNameKey ); creds.setObjectForKey( ..... );session().setUser( ( User )EOUtilities.objectMatchingValues( ec, User.ENTITY_NAME, creds ) );return fetchedUser(); } catch ( EOUtilities.MoreThanOneException e ) { logger.error( "Mayday... no unique constraints on database!" ); throw new NSForwardException( "Woops..." ... ); } catch ( EOObjectNotAvailableException e ) { setCredentialsValue( false ); return this;
Here also a wrong return type.I think you should return null in these two cases and check in the MyDesiredComponentName component for null value and redirect back to the login page if true.
jw
} } MyWebObjectName : MyDesiredComponentName { user = fetchedUser; } -- MyDesiredComponentName.java -- public User loggedInUser() { if ( _user == null ) _user = ( User )valueForBinding( "user" ); return _user; } with regards, -- Lachlan Deck _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription:http://lists.apple.com/mailman/options/webobjects-dev/werner% 40isd.uni-stuttgart.deThis email sent to [EMAIL PROTECTED]
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
