Pyramid tiene un sistema de autenticación mucho más flexible. Y sí, si quieres algo simple como el concepto de usuario/grupo/permiso de Django, entonces flexible puede ser aterrador.
Pyramid no tiene un objeto "Usuario", ya que no hace suposiciones sobre cómo almacenar sus datos o qué ORM utiliza, por lo tanto, no hay nada para usted como contrib.auth. Necesitará hash/salt las contraseñas usted mismo usando una biblioteca como cryptacular o passlib, ambas encontradas en PYPI.
En cuanto a querer usuario/grupo/permisos dentro del sistema de Pyramid, esto se puede lograr simplemente definiendo una RootFactory que tiene un __acl__
que asigna grupos a permisos. Los permisos se asignan a las vistas, por lo tanto, son bastante estáticos por lo general. Si desea que los grupos (lo que Pyramid llama "principales") sean dinámicos, eso también se puede lograr.
Sugeriría mirar la pirámide wiki2 tutorial, así como el shootout demo.
También hay un par de paquetes de terceros para ayudar con la autorización dentro de Pyramid si planea usar SQLAlchemy. apex es una solución de pila más completa, y ziggurat_foundations es una capa de nivel inferior sobre SQLAlchemy para ayudarlo a configurar usuarios y grupos para su aplicación.
Su pregunta es de un nivel bastante alto y la autorización es un "problema difícil", así que me detendré aquí y evitaré regurgitar los tutoriales y recursos que ya existen desde los tutoriales de Pyramid a varios ejemplos de terceros. Si tiene preguntas específicas, siéntase libre de preguntarlas en otra pregunta.
Gracias, eso es buena información. Cuanto más he visto la implementación de django (y junto con tu respuesta también), más me doy cuenta de que esta pregunta es más una pregunta de SQLAlchemy ya que cualquier objeto relacionado con el "Usuario" debería estar vinculado a SQLAlchemy. – lostdorje
Gracias por el puntero a la demo de shootout. Muy bien escrito con modelos completos de Usuario y Grupo, así como un conjunto completo de pruebas. –
Se agradable si hubiera más elementos precompilados en términos de autenticación, incluso si todo (o parte) se pudiera volar y reemplazar con material personalizado para usuarios avanzados. Puede tener un concepto de usuario sin asumir el sistema de almacenamiento, siempre que documente las operaciones que necesitan implementarse para soluciones personalizadas. –