myślałem mogę dać krótki komentarz w tej sprawie, ale pole jest krótki, przepraszam, jeśli to nie będzie prawidłowa odpowiedź, ale:
Wspomniałeś czary - Myślę, że to system uwierzytelniania i nie ma nic wspólnego z autoryzacją. (Nie znam implementacji gem magii - po prostu powtarzam instrukcję z dokumentacji i zakładam, że opis wylicza takie systemy, które zastępuje i jest to poprawna definicja). Sądzę, że to po prostu pomyłka.
fundamentalne pytanie należy sobie zadać jest ...
Ile System oparty na rolach czy rozwijać? Myślę, że jeśli jest to tylko kwestia ról publicznych/prywatnych/administracyjnych, powinieneś rozważyć przeniesienie go do różnych interfejsów API.
To może być uciążliwe w pewnych okolicznościach, ale warte spróbowania dla nieskomplikowanych żadnych addytywnych ról. Prosty montaż w gronie rozwiąże problem OOTB.
Prawdziwy problem polega na tym, że myślisz o rozszerzalnym/dynamicznym systemie ról lub chcesz być po prostu SUCHĄ. To może być bolesne ;-). Myślę, że wdrożenie klejnotów Rayana Bajtów pomoże ci zrozumieć, jak można rozwiązać ten problem na wyższym abstrakcyjnym poziomie. W przypadku konkretnej (bez większej abstrakcji - takiej jak dynamiczne role) wdrożenie powinno być w porządku, aby używać obecnie dostępnych pomocników z winogron i delegować swoje obowiązki na model (podstawowe użycie).
helpers do
def current_user
@current_user ||= User.authorize!(env)
end
def authenticate!
error!('401 Unauthorized', 401) unless current_user
end
end
więc cała historia jest o tym, jak wdrożyć User.authorize! (Env) i uważam, że powinno być zrobione w modelu i zależy ściśle od potrzeb.
Hey bud dzięki, tylko jedna rzecz, druga param metody autoryzacji jest faktycznie symbolem 'autoryzacji: foo,: pokaż' Pierwszy param może być symbol, nazwa klasy lub instancją? klasa – juliangonzalez
@JGonzalezD: Ładnie złapałem, naprawiłem. Dzięki! – fengye87