Rails: единый вход на сеансовой аутентификации - PullRequest
2 голосов
/ 14 декабря 2010

Я использую систему аутентификации с единым входом перед моим приложением rails, поэтому вы не можете получить доступ к приложению вообще, пока не пройдете аутентификацию через нашу систему бизнес-аутентификации.

После аутентификации я хочу установить рольАвторизация на основе, но я считаю, что мне все еще нужно настроить какую-то пользовательскую модель, чтобы это работало.

Я стремлюсь использовать канкан для авторизации и, возможно, легкие роли для ролей.но как мне пройти регистрацию текущего авторизованного пользователя?До этого момента я просто обращался к переменным сеанса.

Я не могу использовать переменные сеанса для ролей, так как не могу контролировать нашу систему единого входа в систему.

Я искалдля некоторых просто как, но не смогли найти.

1 Ответ

0 голосов
/ 15 декабря 2010

Я создал контроллер для администраторов и ввел в него всех пользователей-администраторов, и я просто собираюсь реализовать очень простую авторизацию, как в случае с Райаном Бейтсом в начале железнодорожной трансляции: http://railscasts.com/episodes/20-restricting-access

Я ограничиваю доступ на каждом контроллере и в представлениях. Я чувствую его немного грязным, но это работает.

В функции проверки администратора я проверяю, есть ли в таблице учетные данные пользователя сеансов:

helper_method :admin?

def admin?
  admin = Admin.find_all_by_username(request.env["SPEP_ATTR_uid"])
  if admin.empty?
    false
  else
    true
  end
end

def authorize
  unless admin?
    flash[:error] = "unauthorized access"
    redirect_to home_url
    false
  end
end
...