botbot
botbot

Reputation: 7359

Set Up Admin Users to Edit Users, Articles, Collaborators

I am trying to solve an issue I'm having with setting up admin on my site. Here is a simple version of my routes.

resources :users
  resources :articles
  resources :collaborators
end

resources :admin

Admin users are very similar to Collaborators, because they can edit and create Articles, but Admin has the ability to also c.r.u.d. Users, Collaborators, and Articles for every User. Collaborators can only c.r.u.d. Articles that are associated with the User they have been assigned to.

The part where this gets a little bit confusing is how to set up the controller and views that Admin uses for CRUD operations. As of now the way I am trying to implement it is to create separate CRUD views within admin/. The problem with this is that the functionality is so simimlar to a collaborator, I feel like it could be DRYer somehow.

Anybody know the most basic way to implement something like this? Thanks!

Update: I'd like to update this to say that it's super easy to google admin tools for rails. I'm more wondering how to implement this without an admin tool, or if that sounds like a bad idea, why?

Upvotes: 1

Views: 208

Answers (2)

botbot
botbot

Reputation: 7359

The answer I came up with is to create Collaborators with an admin field true / false. I also set up CanCan and it's working pretty nicely.

Here is my CanCan ability.rb

def initialize(user)

if user.admin?
  can :manage, :all
else 
  can :manage, Article, :id => user.article_id
  cannot :index, Article
end

end

I just used "user" because it's more readable and shorter than collaborator and basically a user...

Upvotes: 1

Thomas Tran
Thomas Tran

Reputation: 467

Try ActiveAdmin (http://activeadmin.info/). I think it is the most simplest way to build administrator backend for your application.

Upvotes: 0

Related Questions