locomotivecms (github)에 간단한 기능을 추가하려고합니다. 매우 간단한 기능 : 로그인 후 다른 페이지를 편집하려고하는 경우에도 현재 사용자는 "기본 관리 허브"(/ admin /)로 리디렉션됩니다. 대신 로그인 한 후 해당 페이지로 이동하게하십시오.Devise + LocomotiveCMS - 로그인을 요청하기 전에 방문한 페이지를 기억하십시오.
추가하는 것은 매우 간단하고 합리적인 것으로 보이지만 2 일 후에 내가 도움을 청하기로 결정했습니다.
이것은 내가 지금까지 알아 낸 것입니다.
- 는이 응용 프로그램은 액티브를 사용하지 않지만 Mongoid은 (백엔드 DB는 MongoDB를)입니다. 인증은 "계정"(전자 메일, 암호, 이름 등)과 "사이트"(다중 사이트 CMS)의 두 부분으로 나뉩니다. "사이트"에는 "회원"이 많이 있습니다. 회원은 하나의 site_id와 account_id를 가지고 있습니다 (또한 역할은 중요하지만 중요하지 않습니다).
- 기관차의 "행동"의 대부분은
/admin/
경로 뒤에 있습니다. 예를 들어 로그인 경로는/admin/log_in
입니다. 대부분의 컨트롤러는/admin/
하위 폴더 안에 있습니다. /admin/sessions_controller
에 this bit이 발견되어/admin/
루트에 로그인 한 후 방문한 URL을 분명히 "고칩니다". A에 대한 내가 제대로 고안의 설명서를 이해 한 경우def after_sign_in_path_for(resource) stored_location_for(resource) || admin_pages_url end
,
stored_location_for
검색 :def after_sign_in_path_for(resource) admin_pages_url end
나는 내가 필요로하는 대신이 것을 거의 확신 :
여기에 관련 비트입니다 세션의 가치 (기관차의 경우 session['admin_return_to']
)를 "누군가 어딘가에 돌아가고 싶어하는지 확인"하십시오. 비어 있으면 || 관리자 루트에 대한 안전한 경로를 보장합니다.
불행히도 이것은 작동하지 않습니다. 그것은 내가 필요한 세션 변수가 설정되지 않는 것 같습니다. 나는 Devise가 이런 종류의 것을 자동으로했다고 가정하고있었습니다.
세션 값을 직접 설정해야합니까? 그렇다면 어디에서? 또는 내 가정이 틀렸는가?
고맙습니다.