Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'issue593' of git://github.com/oinopion/django-social-au…
…th into oinopion-issue593
- Loading branch information
Showing
3 changed files
with
238 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -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'] |
113 changes: 102 additions & 11 deletions
113
...migrations/0002_auto__add_unique_nonce_timestamp_salt_server_url__add_unique_associati.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -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'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters