2016-01-23 4 views
0

У меня есть cancan и devise установлен. В настоящее время он просто ограничивает пользователя входами и некоторыми контроллерами. Я хочу расширить разрешение, в котором пользователь может получить доступ только к записям компании, в которой они работают:
* Почтовые отправления отправляются по почте.
* Customer_order - это, конечно же, заказы клиентов.Все пользователи работают только с определенными записями

user.company_id == mailers.company_id 
OR user.company.id == customer_order.company_id 

Если эти соответствия, то пользователь может выполнить CRUD на этих записях.

ответ

0

Просто просмотрите разрешения в before_filter. Если у вас есть companies_controller, вы можете сделать это следующим образом:

before_filter :check_permission, only: [:show, :new, :create] # and all the actions you want to protect 

# Your actions 

private 

def check_permission 
    # current_user is available if you're using Devise 
    # you have to set mailers somehow, maybe with another filter 
    unless current_user.company_id == @mailers.company_id 
    redirect_to root_path 
    end 
end