Я только начал работать с Ruby on Rails, и я ищу динамический плагин авторизации, который позволяет администратору связывать разрешения с ролями и ролями для пользователей.Интерфейс динамической авторизации Rails
Я нашел сообщение здесь в stackoverflow и на некоторых форумах, а также некоторые подкасты в railscasts.org, нацеленные на эту тему, но все они ссылаются на acl9, declarative_authorization, Aegis, restful acl или даже Authlogic, который не является авторизацией, а плагин аутентификации. Другие не предлагают необходимую функциональность.
Может ли кто-нибудь сказать мне, можно ли настроить веб-интерфейс с помощью рубинов на рельсах для администрирования ролей пользователя?
Так что теперь я перенес свою базу данных, используя следующую миграцию.
class AddRolesAndRightsTables < ActiveRecord::Migration
def self.up
create_table :roles_users do |t|
t.integer :role_id
t.integer :user_id
end
create_table :roles do |t|
t.string :name
end
create_table :rights_roles do |t|
t.integer :right_id
t.integer :role_id
end
create_table :rights do |t|
t.string :name
t.string :controller
t.string :action
end
end
def self.down
drop_table :roles_users
drop_table :roles
drop_table :rights_roles
drop_table :rights
end
end
В дополнение к некоторым представлениям и действиям контроллера я добавил следующее действие в ApplicationController.
def check_authorization
user = User.find(session[:user])
unless user.roles.detect do |role|
role.rights.select do |right|
right.action == action_name && right.controller == self.class.controller_path
end
end
redirect_back_or user
flash[:notice] = "You are not authorized to view the page you requested."
return false
end
Запуск Right.synchronize_with_controllers (см записи блога от Wolfman-Blog), я получаю следующее сообщение об ошибке.
syntax error, unexpected $end, expecting kEND (line 17 in application_controller)
Так можно программировать интерфейс так админ возможность создавать новые роли и назначать разрешения с t изменение кода? – Phidelux
Да. Канкан и большинство других авторских камней, вероятно, не будут мешать тому, как вы применяете разрешения. Я обновляю свой ответ с помощью коротких ссылок n ссылок. –
Аведо, ответ не приемлем для вас? –