ravip0711
ravip0711

Reputation: 511

How to create and organize an admin to have access to features other than Users in Rails

Rails newbie: I currently have a basic app where Customers(users) have many points (customer model and points model). And I want an admin user (new model) to have the ability to add points to the customer.

-The customer enters their phone number (#index route). -If the customer is not found, they will be brought to a signup page (#new/#create route). -If customer is found in the database, their profile will show (#show route). Now on this page, I want to be able to have an admin passcode, which once entered, gives access to adding points. I also want to keep track of which admin user, gives which customer points on a different page.

How would the schema look like with the admin user? How would I give it access certain access to features like adding points. (I assume I'm going to have to create a helper method for checking if admin is logged in, and keep track of that somehow, maybe with sessions?)

class Customer < ActiveRecord::Base
  has_many :points
end

class Point < ActiveRecord::Base
  belongs_to :customer
end

class Admin < ActiveRecord::Base
#??? (my best guess is has_many :points, has_many :customers)
end

www.loyalty-app.herokuapp.com

Upvotes: 0

Views: 74

Answers (1)

baron816
baron816

Reputation: 701

I think the best way is to not have a special admin class and just make admins a type of customer (or user). Then use a gem like cancan or access granted (I prefer access granted) to handle what the different types of users can do.

Upvotes: 0

Related Questions