Rename examples to demo
This commit is contained in:
35
demo/db.py
Normal file
35
demo/db.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
metadata = sa.Metadata()
|
||||
|
||||
|
||||
users = sa.Table(
|
||||
'users', metadata,
|
||||
sa.Column('id', sa.Integer, nullable=False),
|
||||
sa.Column('login', sa.String(256), nullable=False),
|
||||
sa.Column('passwd', sa.String(256), nullable=False),
|
||||
sa.Column('salt', sa.String(256), nullable=False),
|
||||
sa.Column('is_superuser', sa.Boolean, nullable=False,
|
||||
server_default='FALSE'),
|
||||
sa.Column('disabled', sa.Boolean, nullable=False,
|
||||
server_default='FALSE'),
|
||||
|
||||
# indices
|
||||
sa.PrimaryKeyConstraint('id', name='user_pkey'),
|
||||
sa.UniqueConstraint('login', name='user_login_key'),
|
||||
)
|
||||
|
||||
|
||||
permissions = sa.Table(
|
||||
'permissions', metadata,
|
||||
sa.Column('id', sa.Integer, nullable=False),
|
||||
sa.Column('user_id', sa.Integer, nullable=False),
|
||||
sa.Column('perm_name', sa.String(64), nullable=False),
|
||||
|
||||
# indices
|
||||
sa.PrimaryKeyConstraint('id', name='permission_pkey'),
|
||||
sa.ForeignKeyConstraint(['user_id'], [users.c.id],
|
||||
name='user_permission_fkey',
|
||||
ondelete='CASCADE'),
|
||||
)
|
23
demo/db_auth.py
Normal file
23
demo/db_auth.py
Normal file
@@ -0,0 +1,23 @@
|
||||
import asyncio
|
||||
|
||||
from aiohttp_security.authorization import AbstractAuthorizationPolicy
|
||||
|
||||
|
||||
class DBAuthorizationPolicy(AbstractAuthorizationPolicy):
|
||||
def __init__(self, db_pool):
|
||||
self.db_pool = db_pool
|
||||
|
||||
@asyncio.coroutine
|
||||
def permits(self, identity, permission, context=None):
|
||||
record = self.data.get(identity)
|
||||
if record is not None:
|
||||
# TODO: implement actual permission checker
|
||||
if permission in record:
|
||||
return True
|
||||
return False
|
||||
|
||||
@asyncio.coroutine
|
||||
def authorized_user_id(self, identity):
|
||||
with (yield from self.db_pool) as conn:
|
||||
conn
|
||||
return identity if identity in self.data else None
|
0
demo/simple.py
Normal file
0
demo/simple.py
Normal file
Reference in New Issue
Block a user