Поиск пользователя - это администратор или нет с декалятивной авторизацией.

Я реализовал декларативную авторизацию в своем приложении блога. Теперь у меня есть три макета для администратора, аутентифицированного пользователя и гостя. Поэтому мне нужно проверить, какой тип пользователей использует приложение в определенное время. У нас есть модель пользователя, ролевая модель и модель назначения.

User.rb

class User < ActiveRecord::Base

  attr_accessible :login, :email, :password, :password_confirmation, :role_ids

  has_many :articles
  has_many :comments
  has_many :assignments

  has_many :roles, :through => :assignments

  def role_symbols
    roles.map do |role|
      role.name.underscore.to_sym
    end
  end

  acts_as_authentic do |c|
    c.login_field = :login
  end

  def deliver_password_reset_instructions!
    reset_perishable_token!
    Notifier.deliver_password_reset_instructions(self)
  end

end

Assignment.rb

class Assignment < ActiveRecord::Base
  belongs_to :user
  belongs_to :role
end

Role.rb

class Role < ActiveRecord::Base
  attr_accessible :name
  has_many :assignments
  has_many :users, :through => :assignments
end

Любое решение?

1 ответ

Вы можете упростить свою структуру с помощью этого драгоценного камня: https://github.com/platform45/easy_roles Следуйте инструкциям на github и измените свои модели, как описано здесь. Это действительно легко, всего несколько шагов. Вам просто нужна ваша пользовательская модель, и это все!

Кроме того, я бы порекомендовал камень канкан ( https://github.com/ryanb/cancan).

easy_roles и cancan - хорошая комбинация для определения ролей и разрешений довольно легко!

Другие вопросы по тегам