2012-03-13 20 views
9

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.

+0

[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

+0

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

Respuesta

2

Web2py contiene control de acceso basado en roles que creo que funciona en GAE. Esto está documentado aquí:

http://web2py.com/books/default/chapter/29/9

Usted puede ser capaz de desembolsar el módulo de autenticación y MOD para sus propósitos. Sé que la gente ha hecho esto con otras partes de web2py como DAL.

1

Los frameworks Turbogears y Web2py tienen el control de acceso basado en roles, puede integrar uno de ellos en la versión de GAE Python.

Cuestiones relacionadas