tony-landis (owner)

Revisions

gist: 122669 Download_button fork
public
Public Clone URL: git://gist.github.com/122669.git
Embed All Files: show embed
Python #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from sqlalchemy.orm import *
from sqlalchemy import Table, Column, ForeignKey, Integer
from sqlalchemy.types import Integer, Unicode, String, DateTime
 
from pylons_openid.model import meta
 
def init_model(engine):
"""Call me before using any of the tables or classes in the model"""
meta.Session.configure(bind=engine)
meta.engine = engine
 
 
user_table = Table('user', meta.metadata,
Column('id', Integer, primary_key=True),
Column('username', String(128), nullable=False),
Column('password', String(128), nullable=False),
Column('acl', String(16), nullable=False),
Column('name', String(32), nullable=False),
Column('dateLogin', DateTime),
Column('sessionId', String(32)),
Column('ip', String(16)),
useexisting=True
)
 
user_openid_table = Table('user_openid', meta.metadata,
Column('id', Integer, primary_key=True),
Column('verifiedEmail', String(200), nullable=False),
Column('displayName', String(200), nullable=False),
Column('preferredUsername', String(200), nullable=False),
Column('providerName', String(100), nullable=False),
Column('identifier', String(200), nullable=False),
Column('email', String(200), nullable=False),
Column('user_id', Integer, ForeignKey("user.id")),
useexisting=True
)
 
 
class User(object):
def __init__(self, id=None, username=None, password=None, acl=None, name=None, dateLogin=None, sessionId=None, ip=None):
self.id = id
self.username = username
self.password = password
self.acl = acl
self.name = name
self.dateLogin = dateLogin
self.sessionId = sessionId
self.ip = ip
def __repr__(self):
return self.name
 
class UserOpenId(object):
def __init__(self, id=None, verifiedEmail=None, displayName=None, preferredUsername=None, providerName=None, identifier=None, email=None, user_id=None):
self.id = id
self.verifiedEmail = verifiedEmail
self.displayName = displayName
self.preferredUsername = preferredUsername
self.providerName = providerName
self.identifier = identifier
self.email = email
self.user_id = user_id
def __repr__(self):
return "%s (%s) %s" % (self.providerName, self.verifiedEmail, self.identifier)
 
 
mapper(User, user_table, properties={
"openids": relation(UserOpenId)
})
mapper(UserOpenId, user_openid_table, properties={
"user": relation(User)
})