Hmm, not sure what I just did, but now things work. I think the simple
"remember me" filter described here was playing havoc with my site:

http://www.symfony-project.org/book/1_2/06-Inside-the-Controller-Layer

I implemented it just as it is described on that page. Seem like the
most likely culprit for all of the trouble I had.

I removed the filter.


On Sep 19, 3:55 am, Jake Barnes <[email protected]> wrote:
> Curiously, this line will thrown an error even when I'm authenticated:
>
> $sf_user->getGuardUser()->getId()
>
> The method getGuardUser() seems to return nothing. Oddly, if I wish to
> go to a secure page that has been defined with this security:
>
> all:
>   is_secure:  off
>
> memberList:
>   is_secure:  on
>
> I can go to memberList and see all the members, as if I'm logged in,
> yet this still returns nothing:
>
> $sf_user->getGuardUser()
>
> $sf_user is an instance of myUser, which descend from
> sfGuardSecurityUser and which has this method:
>
>   public function getGuardUser()
>   {
>     if (!$this->user && $id = $this->getAttribute('user_id', null,
> 'sfGuardSecurityUser'))
>     {
>       $this->user = sfGuardUserPeer::retrieveByPk($id);
>
>       if (!$this->user)
>       {
>         // the user does not exist anymore in the database
>         $this->signOut();
>
>         throw new sfException('The user does not exist anymore in the
> database.');
>       }
>     }
>     return $this->user;
>   }
>
> On Sep 19, 12:14 am, Jake Barnes <[email protected]> wrote:
>
>
>
> > The following code always works for me. I can go to the front page of
> > the site, and I can log in and I never get an error.
>
> > For one of my clients, the site works great in FireFox, but throws an
> > error in Google Chrome. For another of my clients, the following code
> > dies with a fatal error all the time. The error is that the method
> > "getId()" is being called on either a non-existent object, or an
> > object without that method. In other words, this line throws a fatal
> > error:
>
> > $sf_user->getGuardUser()->getId()
>
> > This code appears in layout.php.
>
> > Here is the code:
>
> > <?php if(isset($sf_user)): ?>
>
> >   <?php if($sf_user->isAuthenticated()): ?>
>
> >     <?php $criteriaToFindProfile = new Criteria();
> > $criteriaToFindProfile->add(sfGuardUserProfilePeer::USER_ID, 
> > $sf_user->getGuardUser()->getId()); $thisUsersProfile =
>
> > sfGuardUserProfilePeer::doSelectOne($criteriaToFindProfile); ?>
>
> >     <?php if (@ is_object($thisUsersProfile)): $username =
> > $thisUsersProfile->getFirstName()." "; $username .= $thisUsersProfile-
>
> > >getLastName(); if (!$username) $username = $thisUsersProfile-
> > >getsfGuardUser()->getUsername(); endif; ?>
>
> >     <?php if (@ is_object($thisUsersProfile)): ?><p>Hello, <a
> > id="userid" href="<?php echo url_for('content/profile?id='.
> > $thisUsersProfile->getId()) ?>"><?php echo $username ?>!</a></p><?php
> > endif ?>
> >     <a href="<?php echo url_for("sfGuardAuth/signout") ?>"><img src="<?
> > php echo image_path('logout.png') ?>" alt="LOGOUT" /></a>
>
> >   <?php endif; ?>
>
> > <?php endif; ?>
>
> > Can anyone think why this would behave differently on different
> > people's browsers?
>
> > I'm having trouble fixing this bug, because I can not recreate it on
> > my own machine.
>
> > What is really bizarre is that my clients browser somehow got past
> > this line:
>
> >  <?php if($sf_user->isAuthenticated()): ?>
>
> > Since the page always died for them with a fatal error, they had no
> > way to log in.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to