Great! Thanks. That helped!

On Apr 28, 9:33 pm, jonah honeyman <[email protected]>
wrote:
> If you want to break the request chain in a before filter, you need to
> 'throw(:halt)'.
>
> def check_role
>   throw :halt, redirect('/admin') if session.user.role != :user
> end
>
>
>
> On Wed, Apr 28, 2010 at 8:20 PM, Dan Sosedov <[email protected]> wrote:
> > Hello,
>
> > I found a really strange bug (or maybe not bug, not sure) in merb.
>
> > So, i have controller Settings which handles all user settings. But
> > for different types of users (user, manager, admin) it supposed to be
> > different. Settings pages are available for users only. For managers
> > and admins it should redirect them to different route /admin.
>
> > so my controller looks like this:
>
> > class Settings < Application
> >  before :ensure_authenticated
> >  before :check_role
>
> >  private
>
> >  def check_role
> >     redirect "/admin" if session.user.role != :user
> >  end
>
> >  public
>
> >  def profile
> >      .... logic ....
> >  end
>
> >  ... all logic ...
> > end
>
> > But for some reason page is not redirected there. In actions log
> > (stdout) it shows that redirect header was triggered correctly: merb :
> > worker (port 4000) ~ Redirecting to: /admin (302).
> > Thus, other user types does not have any information to show on
> > settings page and thats why instead of redirect im getting exception
> > that user objects were not found (nils).
>
> > So, im really confused about such behavior of merb.
>
> > Any ideas why?
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "merb" 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 
> > athttp://groups.google.com/group/merb?hl=en.
>
> --
> -jonah
>
> --
> You received this message because you are subscribed to the Google Groups 
> "merb" 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 
> athttp://groups.google.com/group/merb?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"merb" 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/merb?hl=en.

Reply via email to