AdminUser и пользователь, ActiveAdmin и разработка

107
12

Мне нужна помощь в реализации моих системных требований на данный момент, я "новичок в Rails". У меня есть два драгоценных камня (active_admin и devise), и взаимодействие после некоторых изменений не то, что я хочу.

Я хочу создать аутентификацию AdminUser, используя электронную почту и пароль (поведение ActiveAdmin по умолчанию), и система Пользователь уже проходит проверку подлинности с помощью document_type и document_number и пароля. Это означает, что два объекта отдельно находятся в системной БД с другой логикой входа.

Проблема заключается в том, что ActiveAdmin использует для проверки подлинность и у меня возникают проблемы с формой /admin/login page, она отображает поля document_type и document, которые извлекаются из первоначального файла конфигурации. Я определил document_type и документ как ключи пользователя.

Обходной путь, который я нашел для аутентификации, заключается в удалении условий document и document_type и использовании электронной почты в качестве важного значения для проверки. Теперь моя модель AdminUser выглядит так:

class AdminUser < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable,
:recoverable, :rememberable, :trackable, :validatable

# Setup accessible (or protected) attributes for your model
attr_accessible :email, :login, :password, :password_confirmation, :remember_me, :document, :document_type
attr_accessor :document, :document_type

protected

def self.find_for_database_authentication(warden_conditions)
conditions = warden_conditions.dup
puts "Conditions:" + conditions.to_s
document = conditions.delete(:document)
document_type = conditions.delete(:document_type)
where(conditions).where(["lower(email) = :value", { :value => document.strip.downcase }]).first
end
end

К сожалению, я должен сказать, что это не работает для меня. Аутентификация всегда терпит неудачу, я попробовал много вариантов без везения.
Изучая, я нашел интересную идею использовать модель User в обоих направлениях, но в этом случае у них нет общих атрибутов, и роли действительно разные.
Кто-нибудь реализовал что-то подобное? Я надеюсь Да. Идеи приветствуются.

спросил(а) 2014-09-13T09:28:00+04:00 6 лет, 1 месяц назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема