guardrail 0.1.1

Creator: bradpython12

Last updated:

Add to Cart

Description:

guardrail 0.1.1

guardrail is a Python library for managing object-level permissions that’s
designed to integrate with arbitrary databases and web frameworks. guardrail
is inspired by django-guardian
and currently supports the SQLAlchemy, Peewee, Pony, and Django ORMs.
Homepage: https://guardrail.readthedocs.org/

Install
pip install guardrail
guardrail supports Python >= 2.7 or >= 3.3 and pypy.


Examples
Define your models as usual, using the registry.agent and registry.target
decorators to set up permissions relationships:
import peewee as pw

from guardrail.core import registry
from guardrail.ext.peewee import PeeweePermissionSchemaFactory

database = pw.SqliteDatabase(':memory:')
class Base(pw.Model):
class Meta:
database = database

@registry.agent
class User(Base):
name = pw.CharField()

@registry.target
class Post(Base):
name = pw.CharField()

@registry.target
class Comment(Base):
name = pw.CharField()

factory = PeeweePermissionSchemaFactory((Base, ))
registry.make_schemas(factory)

database.connect()
database.create_tables([User, Post, Comment], safe=True)
database.create_tables(registry.permissions, safe=True)
Then use the permission manager to perform CRUD operations on permissions
between any agent and target models:
from guardrail.ext.peewee import PeeweePermissionManager

manager = PeeweePermissionManager()

user = User.create(name='fred')
post = Post.create(name='news of the world')
comment = Comment.create(name='dragon attack')

manager.add_permission(user, post, 'edit')
manager.add_permission(user, comment, 'delete')

manager.has_permission(user, post, 'edit') # True

manager.remove_permission(user, comment, 'delete')

manager.has_permission(user, comment, 'delete') # False


Project Links

PyPI: https://pypi.python.org/pypi/guardrail
Issues: https://github.com/jmcarp/guardrail/issues



License
MIT licensed. See the LICENSE
file for details.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.