First iteration of sign-in with gihub.

This commit is contained in:
yackob03 2013-10-09 23:00:34 -04:00
parent 5627dfc0c6
commit 3d89227752
6 changed files with 153 additions and 8 deletions

View file

@ -36,12 +36,32 @@ class BaseModel(Model):
class User(BaseModel):
username = CharField(unique=True, index=True)
password_hash = CharField()
password_hash = CharField(null=True)
email = CharField(unique=True, index=True)
verified = BooleanField(default=False)
stripe_id = CharField(index=True, null=True)
class LoginService(BaseModel):
name = CharField(unique=True, index=True)
class FederatedLogin(BaseModel):
user = ForeignKeyField(User, index=True)
service = ForeignKeyField(LoginService, index=True)
service_ident = CharField()
class Meta:
database = db
indexes = (
# create a unique index on service and the local service id
(('service', 'service_ident'), True),
# a user may only have one federated login per service
(('service', 'user'), True),
)
class Visibility(BaseModel):
name = CharField(index=True)
@ -136,9 +156,10 @@ class RepositoryTag(BaseModel):
def initialize_db():
create_model_tables([User, Repository, Image, AccessToken, Role,
RepositoryPermission, Visibility, RepositoryTag,
EmailConfirmation])
EmailConfirmation, FederatedLogin, LoginService])
Role.create(name='admin')
Role.create(name='write')
Role.create(name='read')
Visibility.create(name='public')
Visibility.create(name='private')
LoginService.create(name='github')