Permalink
Browse files

Merge branch 'issue593' of git://github.com/oinopion/django-social-au…

…th into oinopion-issue593
  • Loading branch information...
2 parents d9d16af + 41b8d78 commit 3a6213affebbd53864fe1e7c7a66c6353bc1e941 @omab committed Mar 4, 2013
@@ -1,34 +1,138 @@
# -*- coding: utf-8 -*-
+import datetime
from south.db import db
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):
+
def forwards(self, orm):
- table = UserSocialAuth._meta.db_table
- db.create_table(table, fields(UserSocialAuth))
+ # Adding model '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.create_unique(table, ['provider', 'uid'])
- table = Nonce._meta.db_table
- db.create_table(table, fields(Nonce))
+ # Adding unique constraint on 'UserSocialAuth', fields ['provider', 'uid']
+ 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'])
- table = Association._meta.db_table
- db.create_table(table, fields(Association))
+ # Adding model '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'])
+
def backwards(self, orm):
- table = UserSocialAuth._meta.db_table
- db.delete_unique(table, ['provider', 'uid'])
- db.delete_table(table)
- db.delete_table(Nonce._meta.db_table)
- db.delete_table(Association._meta.db_table)
+ # Removing unique constraint on 'UserSocialAuth', fields ['provider', 'uid']
+ db.delete_unique('social_auth_usersocialauth', ['provider', 'uid'])
+
+ # Deleting model 'UserSocialAuth'
+ 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']
@@ -1,23 +1,114 @@
# -*- coding: utf-8 -*-
+import datetime
from south.db import db
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):
+
def forwards(self, orm):
- db.create_index(Nonce._meta.db_table, ['timestamp'])
- db.create_unique(Nonce._meta.db_table, ['timestamp', 'salt',
- 'server_url'])
- db.create_index(Association._meta.db_table, ['issued'])
- db.create_unique(Association._meta.db_table, ['handle', 'server_url'])
+ # Adding index on 'Nonce', fields ['timestamp']
+ db.create_index('social_auth_nonce', ['timestamp'])
+
+ # Adding unique constraint on 'Nonce', fields ['timestamp', 'salt', '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):
- db.delete_unique(Association._meta.db_table, ['handle', 'server_url'])
- db.delete_index(Association._meta.db_table, ['issued'])
- db.delete_unique(Nonce._meta.db_table, ['timestamp', 'salt',
- 'server_url'])
- db.delete_index(Nonce._meta.db_table, ['timestamp'])
+ # Removing unique constraint on 'Association', fields ['handle', 'server_url']
+ db.delete_unique('social_auth_association', ['handle', 'server_url'])
+
+ # Removing index on 'Association', fields ['issued']
+ 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']
View
@@ -258,6 +258,23 @@ def get_backend_name(backend):
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__':
import doctest
doctest.testmod()

0 comments on commit 3a6213a

Please sign in to comment.