Estoy buscando un marco/módulo/paquete basado en roles para una aplicación escrita en Python (2.7) ejecutándose en Google App Engine.Mecanismo de autorización basado en roles para una aplicación GAE
Me refiero a un mecanismo que me permitiría verificar (durante una solicitud que procesa la mayor parte del tiempo) si un determinado usuario puede realizar una acción específica.
Un par de casos de uso:
- Un usuario debe ser capaz de ver y modificar un perfil propio, mientras que el usuario B sólo debe ser capaz de ver el usuario un perfil.
- usuario con un rol de "administrador" debería poder ver todos los usuarios registrados, mientras que el usuario A y el usuario B solo deberían poder ver a los usuarios con un perfil público (por ejemplo, usuarios con propiedad pública.público establecida en Verdadero)
- etc.
estoy imaginando algo así como
user_a.is_able_to('read', user_b) # -> True of False
o
user_a.authorize('update', user_b) # raises an exception if 'not allowed to'
Hasta ahora solo he visto acl.py de tipfy. Parece bastante simple y muy parecido a lo que estoy buscando. Me pregunto si hay algo similar a ese acl.py, preferiblemente implementado usando NDB.
[Aquí] [1] es una buena sugerencia de implementación. [1]: http://stackoverflow.com/questions/1448308/role-based-security-with-google-app-engine-and-python – husayt
Sí, tengo un par de ideas sobre cómo implementarlo yo mismo. Me preguntaba si hay alguien/algo ya implementado. Parece que no (una parte de tipfy) así que probablemente sea DIY. – alex