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. Facebook botón de cierre de sesión y cierre de sesión después de redirigir
- 6. Cómo llamamos al servlet de cierre de sesión en el navegador cierre el evento
- 7. Datos principales: Error "No se pueden combinar modelos con dos entidades diferentes con el nombre 'foo'"
- 8. CakePHP: uso de modelos en diferentes controladores
- 9. Operador de cierre de sesión de Symfony
- 10. cierre de sesión y redirigir sesión en php
- 11. Cierre de sesión automático una vez que la sesión caduque
- 12. Django problema de cierre de sesión
- 13. Detectar el cierre de sesión de Windows en Python
- 14. Facebook cierre de sesión C# SDK
- 15. Symfony2 tema de cierre de sesión
- 16. set_intersection para dos tipos diferentes de conjuntos
- 17. Obtener el evento de cierre de sesión del sistema
- 18. Cierre de Google - Html5History activa el evento NAVIGATE dos veces
- 19. ¿Cómo lograr el cierre de sesión automático en php?
- 20. Resultados de búsqueda de pajar: cómo usar diferentes plantillas para diferentes modelos en page.object_list?
- 21. Cómo funciona el cierre de sesión en Facebook SDK Android
- 22. Django Admin: ¿cómo mostrar los campos de dos modelos diferentes en la misma vista?
- 23. ¿Cómo podemos combinar predictores de dos modelos lineales diferentes en uno?
- 24. Uso de dos modelos fuertemente tipados para una vista MVC
- 25. autenticación de ASP.NET inicio de sesión y cierre de sesión con el botón Atrás del navegador
- 26. nginx en PROXY_PASS servidor independiente para múltiples aplicaciones con rieles sub URI de pasajeros independiente en diferentes cajas
- 27. ¿Por qué el método Arrays.sort de Java utiliza dos algoritmos de clasificación diferentes para diferentes tipos?
- 28. SQL Dos condiciones WHERE diferentes para dos columnas
- 29. utilizando una sesión JMS de diferentes hilos
- 30. ¿Cómo divido models.py en diferentes archivos para diferentes modelos en Pyramid?
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? –