Ситуация: рельсы 3.2 приложение с демо-периодом, после которого пользователи должны начать оплачивать услугу.Каковы наилучшие методы авторизации?
Вопрос: Если пользователь не добавляет способ оплаты или не выбирает план платежей, каков рекомендуемый способ ограничения доступа пользователей к «платной» части веб-приложения?
мне нужно что-то, что сортирует пользователей следующим образом:
if user.admin? || user.in_demo || user.has_all_payment_data
# carry on
elsif user.should_add_payment_method
# send them to add payment method page
elsif user.should_choose_plan
# send them to add plan
else
# redirect to home page or whatever
end
Я начал с before_filter
на контроллере приложения, который проверяет статус оплаты пользователя на каждом запросе и перенаправляет их соответствующим образом (пропустив этот в таких местах, как редактирование домашней страницы/профиля и т. д.), но я думаю, что должен быть лучший способ, поскольку он быстро становится слишком сложным, и он просто чувствует себя не так, имея всю эту сложность в контроллере приложения. Я смотрю на библиотеки пользовательских ролей, такие как cancan, но я не могу найти ничего подходящего.
DEPA, спасибо за ваши изменения. Просто добавлю, что у нас уже есть авторизация с точки зрения пользователя/пароля и администратора - я просто не знаю, как лучше всего это расширить, чтобы включить статус оплаты пользователя. – omnikron
Я полагаю, вы хотите сказать, что у вас уже есть аутентификация, что-то другое. – depa
вы совершенно правы! Я не обманывал разницу между этими двумя понятиями. Так много всего это просто знать, какой термин для google ... – omnikron