Skip to content

Commit

Permalink
Merge branch 'issue593' of git://github.com/oinopion/django-social-au…
Browse files Browse the repository at this point in the history
…th into oinopion-issue593
  • Loading branch information
omab committed Mar 4, 2013
2 parents d9d16af + 41b8d78 commit 3a6213a
Show file tree
Hide file tree
Showing 3 changed files with 238 additions and 26 deletions.
134 changes: 119 additions & 15 deletions social_auth/migrations/0001_initial.py
@@ -1,34 +1,138 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import datetime
from south.db import db from south.db import db
from south.v2 import SchemaMigration from south.v2 import SchemaMigration


from social_auth.models import UserSocialAuth, Nonce, Association from django.db import models


from django.conf import settings
from social_auth.utils import custom_user_frozen_models


def fields(model):
return [(f.name, f) for f in model._meta.local_fields] USER_MODEL = getattr(settings, 'SOCIAL_AUTH_USER_MODEL', None) or \
getattr(settings, 'AUTH_USER_MODEL', None) or \
'auth.User'
UID_LENGTH = getattr(settings, 'SOCIAL_AUTH_UID_LENGTH', 255)
NONCE_SERVER_URL_LENGTH = getattr(settings, 'SOCIAL_AUTH_NONCE_SERVER_URL_LENGTH', 255)
ASSOCIATION_SERVER_URL_LENGTH = getattr(settings, 'SOCIAL_AUTH_ASSOCIATION_SERVER_URL_LENGTH', 255)
ASSOCIATION_HANDLE_LENGTH = getattr(settings, 'SOCIAL_AUTH_ASSOCIATION_HANDLE_LENGTH', 255)




class Migration(SchemaMigration): class Migration(SchemaMigration):

def forwards(self, orm): def forwards(self, orm):
table = UserSocialAuth._meta.db_table # Adding model 'UserSocialAuth'
db.create_table(table, fields(UserSocialAuth)) db.create_table('social_auth_usersocialauth', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='social_auth', to=orm[USER_MODEL])),
('provider', self.gf('django.db.models.fields.CharField')(max_length=32)),
('uid', self.gf('django.db.models.fields.CharField')(max_length=UID_LENGTH)),
('extra_data', self.gf('social_auth.fields.JSONField')(default='{}')),
))
db.send_create_signal('social_auth', ['UserSocialAuth']) db.send_create_signal('social_auth', ['UserSocialAuth'])
db.create_unique(table, ['provider', 'uid'])


table = Nonce._meta.db_table # Adding unique constraint on 'UserSocialAuth', fields ['provider', 'uid']
db.create_table(table, fields(Nonce)) db.create_unique('social_auth_usersocialauth', ['provider', 'uid'])

# Adding model 'Nonce'
db.create_table('social_auth_nonce', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('server_url', self.gf('django.db.models.fields.CharField')(max_length=NONCE_SERVER_URL_LENGTH)),
('timestamp', self.gf('django.db.models.fields.IntegerField')()),
('salt', self.gf('django.db.models.fields.CharField')(max_length=40)),
))
db.send_create_signal('social_auth', ['Nonce']) db.send_create_signal('social_auth', ['Nonce'])


table = Association._meta.db_table # Adding model 'Association'
db.create_table(table, fields(Association)) db.create_table('social_auth_association', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('server_url', self.gf('django.db.models.fields.CharField')(max_length=ASSOCIATION_SERVER_URL_LENGTH)),
('handle', self.gf('django.db.models.fields.CharField')(max_length=ASSOCIATION_HANDLE_LENGTH)),
('secret', self.gf('django.db.models.fields.CharField')(max_length=255)),
('issued', self.gf('django.db.models.fields.IntegerField')()),
('lifetime', self.gf('django.db.models.fields.IntegerField')()),
('assoc_type', self.gf('django.db.models.fields.CharField')(max_length=64)),
))
db.send_create_signal('social_auth', ['Association']) db.send_create_signal('social_auth', ['Association'])



def backwards(self, orm): def backwards(self, orm):
table = UserSocialAuth._meta.db_table # Removing unique constraint on 'UserSocialAuth', fields ['provider', 'uid']
db.delete_unique(table, ['provider', 'uid']) db.delete_unique('social_auth_usersocialauth', ['provider', 'uid'])
db.delete_table(table)
db.delete_table(Nonce._meta.db_table) # Deleting model 'UserSocialAuth'
db.delete_table(Association._meta.db_table) db.delete_table('social_auth_usersocialauth')

# Deleting model 'Nonce'
db.delete_table('social_auth_nonce')

# Deleting model 'Association'
db.delete_table('social_auth_association')


models = {
'auth.group': {
'Meta': {'object_name': 'Group'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
'auth.permission': {
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'auth.user': {
'Meta': {'object_name': 'User'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
},
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
'social_auth.association': {
'Meta': {'object_name': 'Association'},
'assoc_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'handle': ('django.db.models.fields.CharField', [], {'max_length': str(ASSOCIATION_HANDLE_LENGTH)}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'issued': ('django.db.models.fields.IntegerField', [], {}),
'lifetime': ('django.db.models.fields.IntegerField', [], {}),
'secret': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'server_url': ('django.db.models.fields.CharField', [], {'max_length': str(ASSOCIATION_SERVER_URL_LENGTH)})
},
'social_auth.nonce': {
'Meta': {'object_name': 'Nonce'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'salt': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
'server_url': ('django.db.models.fields.CharField', [], {'max_length': str(NONCE_SERVER_URL_LENGTH)}),
'timestamp': ('django.db.models.fields.IntegerField', [], {})
},
'social_auth.usersocialauth': {
'Meta': {'unique_together': "(('provider', 'uid'),)", 'object_name': 'UserSocialAuth'},
'extra_data': ('social_auth.fields.JSONField', [], {'default': "'{}'"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'provider': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'uid': ('django.db.models.fields.CharField', [], {'max_length': str(UID_LENGTH)}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'social_auth'", 'to': "orm['" + USER_MODEL + "']"})
}
}
models.update(custom_user_frozen_models())


complete_apps = ['social_auth'] complete_apps = ['social_auth']
@@ -1,23 +1,114 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import datetime
from south.db import db from south.db import db
from south.v2 import SchemaMigration from south.v2 import SchemaMigration
from django.db import models


from social_auth.models import Nonce, Association from django.conf import settings
from social_auth.utils import custom_user_frozen_models


USER_MODEL = getattr(settings, 'SOCIAL_AUTH_USER_MODEL', None) or \
getattr(settings, 'AUTH_USER_MODEL', None) or \
'auth.User'
UID_LENGTH = getattr(settings, 'SOCIAL_AUTH_UID_LENGTH', 255)
NONCE_SERVER_URL_LENGTH = getattr(settings, 'SOCIAL_AUTH_NONCE_SERVER_URL_LENGTH', 255)
ASSOCIATION_SERVER_URL_LENGTH = getattr(settings, 'SOCIAL_AUTH_ASSOCIATION_SERVER_URL_LENGTH', 255)
ASSOCIATION_HANDLE_LENGTH = getattr(settings, 'SOCIAL_AUTH_ASSOCIATION_HANDLE_LENGTH', 255)




class Migration(SchemaMigration): class Migration(SchemaMigration):

def forwards(self, orm): def forwards(self, orm):
db.create_index(Nonce._meta.db_table, ['timestamp']) # Adding index on 'Nonce', fields ['timestamp']
db.create_unique(Nonce._meta.db_table, ['timestamp', 'salt', db.create_index('social_auth_nonce', ['timestamp'])
'server_url'])
db.create_index(Association._meta.db_table, ['issued']) # Adding unique constraint on 'Nonce', fields ['timestamp', 'salt', 'server_url']
db.create_unique(Association._meta.db_table, ['handle', 'server_url']) db.create_unique('social_auth_nonce', ['timestamp', 'salt', 'server_url'])

# Adding index on 'Association', fields ['issued']
db.create_index('social_auth_association', ['issued'])

# Adding unique constraint on 'Association', fields ['handle', 'server_url']
db.create_unique('social_auth_association', ['handle', 'server_url'])



def backwards(self, orm): def backwards(self, orm):
db.delete_unique(Association._meta.db_table, ['handle', 'server_url']) # Removing unique constraint on 'Association', fields ['handle', 'server_url']
db.delete_index(Association._meta.db_table, ['issued']) db.delete_unique('social_auth_association', ['handle', 'server_url'])
db.delete_unique(Nonce._meta.db_table, ['timestamp', 'salt',
'server_url']) # Removing index on 'Association', fields ['issued']
db.delete_index(Nonce._meta.db_table, ['timestamp']) db.delete_index('social_auth_association', ['issued'])

# Removing unique constraint on 'Nonce', fields ['timestamp', 'salt', 'server_url']
db.delete_unique('social_auth_nonce', ['timestamp', 'salt', 'server_url'])

# Removing index on 'Nonce', fields ['timestamp']
db.delete_index('social_auth_nonce', ['timestamp'])



models = {
'auth.group': {
'Meta': {'object_name': 'Group'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
'auth.permission': {
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
'auth.user': {
'Meta': {'object_name': 'User'},
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
},
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
'social_auth.association': {
'Meta': {'unique_together': "(('server_url', 'handle'),)", 'object_name': 'Association'},
'assoc_type': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
'handle': ('django.db.models.fields.CharField', [], {'max_length': str(ASSOCIATION_HANDLE_LENGTH)}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'issued': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}),
'lifetime': ('django.db.models.fields.IntegerField', [], {}),
'secret': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'server_url': ('django.db.models.fields.CharField', [], {'max_length': str(ASSOCIATION_SERVER_URL_LENGTH)})
},
'social_auth.nonce': {
'Meta': {'unique_together': "(('server_url', 'timestamp', 'salt'),)", 'object_name': 'Nonce'},
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'salt': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
'server_url': ('django.db.models.fields.CharField', [], {'max_length': str(NONCE_SERVER_URL_LENGTH)}),
'timestamp': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'})
},
'social_auth.usersocialauth': {
'Meta': {'unique_together': "(('provider', 'uid'),)", 'object_name': 'UserSocialAuth'},
'extra_data': ('social_auth.fields.JSONField', [], {'default': "'{}'"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'provider': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
'uid': ('django.db.models.fields.CharField', [], {'max_length': str(UID_LENGTH)}),
'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'social_auth'", 'to': "orm['" + USER_MODEL + "']"})
}
}
models.update(custom_user_frozen_models())
complete_apps = ['social_auth'] complete_apps = ['social_auth']
17 changes: 17 additions & 0 deletions social_auth/utils.py
Expand Up @@ -258,6 +258,23 @@ def get_backend_name(backend):
return getattr(getattr(backend, 'AUTH_BACKEND', backend), 'name', None) return getattr(getattr(backend, 'AUTH_BACKEND', backend), 'name', None)




def custom_user_frozen_models():
user_model = getattr(settings, 'SOCIAL_AUTH_USER_MODEL', None) or \
getattr(settings, 'AUTH_USER_MODEL', None) or \
'auth.User'
migration_name = getattr(settings, 'INITIAL_CUSTOM_USER_MIGRATION',
'0001_initial.py')
user_app, user_model = user_model.split('.')
if user_model != 'auth.User':
from south.migration.base import Migrations
user_migrations = Migrations(user_app)
initial_user_migration = user_migrations.migration(migration_name)
extra_model = initial_user_migration.migration_class().models
else:
extra_model = {}
return extra_model


if __name__ == '__main__': if __name__ == '__main__':
import doctest import doctest
doctest.testmod() doctest.testmod()

0 comments on commit 3a6213a

Please sign in to comment.