On 4 April 2012 12:13, rme <rhojel.echano@gmail.com> wrote:
> Hi folks,
>
> Rails beginner here..
>
> I have a users resource where I implemented a callback that's supposed
> to prevent an admin user from deleting herself.
>
> before_filter :admin_no_delete, only: :destroy
>
> def admin_no_delete
> admin_id = current_user.id if current_user.admin?
> redirect_to users_path if params[:id] == admin_id
> end
>
> If this looks familiar to some, it's from Michael Hartl's rails
> tutorial, exercise #10 here
> http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users?version=3.2#sec:updating_deleting_exercises
>
> My (lame) test for this actually runs successfully
>
> describe "deleting herself should not be permitted" do
> before do
> delete user_path(admin)
> end
> it { should redirect_to(users_path) }
> end
> end
>
> The test seems lame because I was able to go around it using jQuery to
> delete the record being protected by the callback (using Web
> Inspector's javascript console):
> $.ajax({url: 'http://localhost:3000/users/104', type: 'DELETE',
> success: function(result){alert(result)} })
What was current_user when you did that? I note that your code will
only stop the admin user deleting herself, it will not stop another
user from deleting the admin user.
Colin
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
No comments:
Post a Comment