Skip to content

Commit a66df37

Browse files
committedApr 8, 2017
add model
1 parent 3cec4ac commit a66df37

11 files changed

+110
-1
lines changed
 

‎app/__init__.pyc

2 Bytes
Binary file not shown.

‎app/errors.pyc

4 Bytes
Binary file not shown.

‎app/exceptions.pyc

2 Bytes
Binary file not shown.

‎app/main/__init__.pyc

1 Byte
Binary file not shown.

‎app/main/errors.pyc

3 Bytes
Binary file not shown.

‎app/main/views.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from . import main
2+
from ..models import *
23

34

45
@main.route('/')

‎app/main/views.pyc

41 Bytes
Binary file not shown.

‎app/models.py

+109-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,115 @@
11
from sqlalchemy.ext.declarative import declarative_base
22
from sqlalchemy.orm import backref
3-
from sqlalchemy import desc
3+
from sqlalchemy import Column, DateTime, Index, Integer, String, Text, text, Boolean, ForeignKey
4+
from . import db
5+
6+
47

58
Base = declarative_base()
69
metadata = Base.metadata
710

11+
class ScopesMixin(object):
12+
13+
@property
14+
def scopes(self):
15+
if self._scopes:
16+
return self._scopes.split()
17+
return []
18+
19+
@scopes.setter
20+
def scopes(self, value):
21+
self._scopes = " ".join(value)
22+
23+
24+
class Tokens(Base, ScopesMixin):
25+
__tablename__ = 'tokens'
26+
access_token = Column(String(256), primary_key=True)
27+
access_token_expire_date = Column(DateTime, nullable=False)
28+
refresh_token = Column(String(256), nullable=True)
29+
refresh_token_expire_date = Column(DateTime, nullable=False)
30+
_scopes = Column(Text, nullable=False)
31+
user_id = Column(String(128), ForeignKey('users.id',ondelete='CASCADE'), nullable=False)
32+
client_id = Column(String(128), ForeignKey('clients.id', ondelete='CASCADE'), nullable=False)
33+
grant_code = Column(String(256), ForeignKey('grant_codes.code', ondelete='CASCADE'))
34+
35+
36+
class GrantCodes(Base, ScopesMixin):
37+
__tablename__ = 'grant_codes'
38+
code = Column(String(256), primary_key=True)
39+
expire_date = Column(DateTime, nullable=False)
40+
is_lapsed = Column(Boolean, default=False, nullable=False)
41+
_scopes = Column(Text, nullable=False)
42+
43+
user_id = Column(String(128), ForeignKey('users.id',ondelete='CASCADE'), nullable=False)
44+
client_id = Column(String(128), ForeignKey('clients.id', ondelete='CASCADE'), nullable=False)
45+
46+
tokens = db.relationship(
47+
'Tokens',
48+
primaryjoin="Tokens.grant_code==GrantCodes.code",
49+
foreign_keys="Tokens.grant_code",
50+
lazy='dynamic',
51+
cascade='all, delete-orphan',
52+
backref="granted_code")
53+
54+
55+
class Users(Base, ScopesMixin):
56+
__tablename__ = 'users'
57+
id = Column(String(128), primary_key=True, unique=True)
58+
password = Column(String(128), nullable=False)
59+
_scopes = Column(String(128), nullable=False)
60+
is_restricted = Column(Boolean, nullable=False)
61+
62+
images = db.relationship(
63+
'Images',
64+
primaryjoin="Images.user_id==Users.id",
65+
foreign_keys="Images.user_id",
66+
lazy='dynamic',
67+
cascade='all, delete-orphan',
68+
backref="user")
69+
70+
grant_codes = db.relationship(
71+
'GrantCodes',
72+
primaryjoin="GrantCodes.user_id==Users.id",
73+
foreign_keys="GrantCodes.user_id",
74+
lazy='dynamic',
75+
cascade='all, delete-orphan',
76+
backref="user")
77+
78+
tokens = db.relationship(
79+
'Tokens',
80+
primaryjoin="Tokens.user_id==Users.id",
81+
foreign_keys="Tokens.user_id",
82+
lazy='dynamic',
83+
cascade='all, delete-orphan',
84+
backref="user")
85+
86+
class Images(Base):
87+
__tablename__ = 'images'
88+
id = Column(String(128), primary_key=True, unique=True)
89+
data = Column(Text, nullable=False)
90+
user_id = Column(String(128), ForeignKey('users.id',ondelete='CASCADE'), nullable=False)
91+
92+
93+
class Clients(Base):
94+
__tablename__ = 'clients'
95+
id = Column(String(128), primary_key=True, unique=True)
96+
secret = Column(String(128), nullable=False)
97+
name = Column(String(128), nullable=False)
98+
type = Column(String(128), nullable=False)
99+
redirect_uri = Column(String(256), nullable=False)
100+
101+
grant_codes = db.relationship(
102+
'GrantCodes',
103+
primaryjoin="GrantCodes.client_id==Clients.id",
104+
foreign_keys="GrantCodes.client_id",
105+
lazy='dynamic',
106+
cascade='all, delete-orphan',
107+
backref="client")
108+
109+
tokens = db.relationship(
110+
'Tokens',
111+
primaryjoin="Tokens.client_id==Clients.id",
112+
foreign_keys="Tokens.client_id",
113+
lazy='dynamic',
114+
cascade='all, delete-orphan',
115+
backref="client")

‎app/models.pyc

4.7 KB
Binary file not shown.

‎config.pyc

6 Bytes
Binary file not shown.

‎tests/test_basics.pyc

8 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)
Please sign in to comment.