Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Require scope in activeadmin resource

I am using activeadmin and need to figure out how to require a scope to only show records pertaining to the current user.

I also have other scopes that users can select, but those scopes need to be "pre-scoped" so to speak so that only records belonging to that user are available at any given time.

I hope this makes sense. I'm fairly new to all of this, so i'm not real sure where to start. Thanks in advance for any help.

like image 628
Sean Avatar asked Sep 04 '26 08:09

Sean


1 Answers

Did you try scoping with scope_to :current_user ?

AA has some examples with docs . Here they are http://activeadmin.info/docs/2-resource-customization.html#scoping_the_queries

current_user is helper method to get currently logged in user (currend_admin_user is default I think) code from AA initializer

# This setting changes the method which Active Admin calls
# to return the currently logged in user.
config.current_user_method = :current_user

If you had some kind of metod in your model that use your logged in user you can do something like that

controller do
      def scoped_collection
        Post.some_method(current_user)
        #or for example Post.select(current_user.visible_posts_columns) ... etc
      end
    end
like image 155
Fivell Avatar answered Sep 06 '26 04:09

Fivell



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!