바닐라 authlogic/cantango 설정은 테스트 중에 하드 코드 된 roles_list
으로 테스트하여 [:user]
을 반환합니다. 테스트 permissions.yml 파일 : 첫 번째 요청에처음 요청한 후 cancan/cantango 사용자/사용자 세션 및/또는 역할을 잃을 때
roles:
user:
can:
manage:
- User
, user_can?(:manage, User)
내가 기대한다. 그러나 후속 요청에서, 그것은 더 이상 사실이 아니며, 나의 허가는 사라집니다.
Duh :/current_user
및
current_user_session
바는 각 요청마다 바뀝니다. 그것이 내가 dev 환경에 있고, 무엇인가 다시로드되고 있기 때문에 그것이있는 지 명확히하지 않고있다. 그러나 그것은 나를 조금 밖으로 밑그림을 친다.
ApplicationController
의 구현은 기본 authlogic 예를 따릅니다.
나는 콘솔로드하는 경우 : 내가 cantango의 문서 당 cantango.rb에 (단지의 경우) cantango의 캐싱을 해제하려고 시도
pry(main)> u = User.first
=> #<User id: 2, email: "[email protected]", [...]
pry(main)> a = CanTango::Ability.new u
=> [lots of stuff, available on request]
pry(main)> a.can?(:manage, User.new)
=> true
pry(main)> a.can?(:manage, User.new)
=> true
[...]>
하나를 힌트/팁/포인터/소스/워드 프로세서?
_ 추가 정보 : _ cantango는 현재'current_user' 메소드를 사용할 수 없다고 생각합니다. 그래서 guest 사용자를 호출합니다. 게스트 사용자는 여전히 같은 역할 목록을 반환하지만 원래 문제는 여전히 존재하지만 지금은 다른 문제가 있습니다. 이 질문을 묻는 과정은 지금까지 거꾸로 작동하고 있습니다. –
_ 추가 정보 : _ 캐싱을 해제하는 캔 탱고 워드 프로세서가 올바르지 않습니다. 캐싱을 해제하면 게스트 사용자 역할이 작동합니다 (놀랍지도 않지만 실제로). 그러나 cantango는 여전히 응용 프로그램 컨트롤러의 current_user 도우미 메서드가 존재하지 않는다고 생각합니다. –
_ 추가 정보 : _ 붙여 넣기의 위험; 내 응용 프로그램 컨트롤러의 도우미 메서드는 private이었습니다. 보호 대상으로 변경하면 문제가 해결됩니다. 이제 캔 탱고는 내 게스트 사용자를 인스턴스화하지 않습니다 (현재는 아니지만). –