Tengo dos modelos de Usuario y Administrador (con RailsAdmin) que usan Devise. Me registro como usuario y luego iniciar sesión como administrador. Pero el resultado de cerrar sesión en uno de esos modelos es cerrar la sesión de dos modelos al mismo tiempo. ¿Cómo puedo arreglarlo? Por favor, ayuda :)Diseñe el cierre de sesión independiente para dos modelos diferentes
Respuesta
el problema estaba en una cadena en config/inicializadores/devise.rb:
defecto:
# Configurar el comportamiento sign_out.
# La acción Sign_out puede tener un alcance (es decir,/users/sign_out solo afecta: el alcance del usuario).
# El valor predeterminado es verdadero, lo que significa que cualquier acción de cierre de sesión cerrará la sesión de todos los ámbitos activos.
# config.sign_out_all_scopes = ciertonecesita:
config.sign_out_all_scopes = falsa
El alcance de Devise es la aplicación completa: inicia sesión en el sitio, no en un modelo. Tal vez desee agregar la distinción de roles - un usuario puede tener uno o más roles que le permitan ciertos privilegios. Devise solo te convierte en un usuario autenticado. Considere una gema como CanCan que proporciona soporte para "autorizaciones basadas en roles".
Gracias por su respuesta. Realmente me dijiste cosas más claras sobre el alcance de Devise. Inicialmente, quería utilizar dos modelos separados: [Creando un modelo de administrador] (https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role), pero ahora entiendo que no fue la mejor opción No obstante, ¿tengo alguna posibilidad de mantenerme en mi camino o será mejor usar roles solo con el modelo de usuario? –
Ambos: autenticación (Devise) y autorización (CanCan u otro enfoque de rol) son diferentes. –
El diseño se puede determinar por modelo: https://github.com/plataformatec/devise#configuring-multiple-models (Esto puede no haber sido así en el momento en que se respondió por primera vez a esta pregunta) –
- 1. ¿Cómo usar diferentes authentication_keys para dos modelos de dispositivo?
- 2. Cómo usar SLF4J para iniciar sesión en dos archivos diferentes según el tipo de mensaje ...?
- 3. ¿Cómo manejo el inicio/cierre de sesión en Caliburn.Micro?
- 4. Comparta modelos de CI entre diferentes aplicaciones
- 5. Cómo llamamos al servlet de cierre de sesión en el navegador cierre el evento
- 6. Datos principales: Error "No se pueden combinar modelos con dos entidades diferentes con el nombre 'foo'"
- 7. Operador de cierre de sesión de Symfony
- 8. CakePHP: uso de modelos en diferentes controladores
- 9. cierre de sesión y redirigir sesión en php
- 10. Cierre de sesión automático una vez que la sesión caduque
- 11. Django problema de cierre de sesión
- 12. Detectar el cierre de sesión de Windows en Python
- 13. Symfony2 tema de cierre de sesión
- 14. Obtener el evento de cierre de sesión del sistema
- 15. set_intersection para dos tipos diferentes de conjuntos
- 16. Cierre de Google - Html5History activa el evento NAVIGATE dos veces
- 17. ¿Cómo lograr el cierre de sesión automático en php?
- 18. Resultados de búsqueda de pajar: cómo usar diferentes plantillas para diferentes modelos en page.object_list?
- 19. Django Admin: ¿cómo mostrar los campos de dos modelos diferentes en la misma vista?
- 20. ¿Cómo podemos combinar predictores de dos modelos lineales diferentes en uno?
- 21. autenticación de ASP.NET inicio de sesión y cierre de sesión con el botón Atrás del navegador
- 22. Uso de dos modelos fuertemente tipados para una vista MVC
- 23. nginx en PROXY_PASS servidor independiente para múltiples aplicaciones con rieles sub URI de pasajeros independiente en diferentes cajas
- 24. utilizando una sesión JMS de diferentes hilos
- 25. ¿Por qué el método Arrays.sort de Java utiliza dos algoritmos de clasificación diferentes para diferentes tipos?
- 26. SQL Dos condiciones WHERE diferentes para dos columnas
- 27. ¿Cómo puedo administrar la sesión en el inicio/cierre de sesión de Android?
- 28. ¿Cómo divido models.py en diferentes archivos para diferentes modelos en Pyramid?
- 29. ¿Cómo diferenciar entre el cierre de sesión y la sesión expirada?
- 30. Dos diferentes OnClick en dos divs, uno sobre el otro
Mientras el OP está satisfecho con la respuesta aceptada, la respuesta técnica a la pregunta original es esta. –
Sí, tienes razón. –
¿Debería aceptar esto como una solución, o esto no es posible? –