Альтернатива драгоценным камням Permissive rails? - PullRequest
0 голосов
/ 16 ноября 2011

Кто-нибудь знает альтернативы Permissive? Или другие драгоценные камни, которые сравнивают по характеристикам?

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Я бы предпочел декларативное_авторизация , а не канкан, , если роли пользователя более сложные

https://github.com/stffn/declarative_authorization

http://railscasts.com/episodes/188-declarative-authorization

http://steffenbartsch.com/blog/2008/09/delclarative-authorization/


С помощью declarative_authorization вы можете определить авторизацию ваших моделей и методов на основе ролей.

Вы можете определить разрешения для моделей и методов в модели. Вы можете дополнительно ограничить разрешения, если выполняются определенные условия, например, Вы можете указать, что определенные разрешения применяются только в том случае, если определенный атрибут объекта имеет определенное значение.

Вот пример, в котором указано, что обычный пользователь может только читать и изменять учетные записи компаний, в которых он / она работает. (При условии, что учетные записи расположены в древовидной форме, например, с жемчужиной "предков")

authorization do 
 role :user do
    # ...
    has_permission_on :accounts , :to => [:index, :show, :edit, :update] do
      if_attribute :id => is_in { user.employed_at_account.subtree_ids }
    end
    # ...
  end

  role :admin do
    # ...
    has_permission_on :accounts , :to => [:create, :new, :index, :show , :edit, :update  ]
    # ...
  end   
end
1 голос
/ 16 ноября 2011

Я не знаю, квалифицируется ли он как «основанный на модели», но вы смотрели на CanCan?:

https://github.com/ryanb/cancan

Edit:

Cancan был прекращен (неофициально), и один из авторов создал новый проект под названием Cancancan.

https://github.com/bryanrite/cancancan

...