Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / migrations / 0033_multiple_auth_providers.py @ 632b6458

History | View | Annotate | Download (11.8 kB)

1
# encoding: utf-8
2
import datetime
3
from south.db import db
4
from south.v2 import DataMigration
5
from django.db import models
6

    
7
class Migration(DataMigration):
8

    
9
    def forwards(self, orm):
10
        for user in orm.AstakosUser.objects.all():
11
            if user.provider != 'local':
12
                orm.AstakosUserAuthProvider.objects.create(user=user,
13
                                                           module=user.provider,
14
                                                           identifier=user.third_party_identifier)
15
            else:
16
                orm.AstakosUserAuthProvider.objects.create(user=user,
17
                                                           module='local',
18
                                                           auth_backend='astakos')
19

    
20
            user.save()
21

    
22
    def backwards(self, orm):
23
        for user in orm.AstakosUser.objects.all():
24
            for auth_provider in user.auth_providers.all():
25
                user.provider = auth_provider.module
26
                user.third_party_identifier = auth_provider.identifier
27

    
28
            user.save()
29

    
30
    models = {
31
        'auth.group': {
32
            'Meta': {'object_name': 'Group'},
33
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
34
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
35
            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
36
        },
37
        'auth.permission': {
38
            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
39
            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
40
            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
41
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
42
            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
43
        },
44
        'auth.user': {
45
            'Meta': {'object_name': 'User'},
46
            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
47
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
48
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
49
            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
50
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
51
            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
52
            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
53
            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
54
            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
55
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
56
            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
57
            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
58
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
59
        },
60
        'contenttypes.contenttype': {
61
            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
62
            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
63
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
64
            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
65
            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
66
        },
67
        'im.additionalmail': {
68
            'Meta': {'object_name': 'AdditionalMail'},
69
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
70
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
71
            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['im.AstakosUser']"})
72
        },
73
        'im.approvalterms': {
74
            'Meta': {'object_name': 'ApprovalTerms'},
75
            'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 11, 29, 13, 58, 8, 395739)', 'db_index': 'True'}),
76
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
77
            'location': ('django.db.models.fields.CharField', [], {'max_length': '255'})
78
        },
79
        'im.astakosuser': {
80
            'Meta': {'object_name': 'AstakosUser', '_ormbases': ['auth.User']},
81
            'activation_sent': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
82
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
83
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
84
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
85
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
86
            'date_signed_terms': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
87
            'email_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
88
            'has_credits': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
89
            'has_signed_terms': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
90
            'invitations': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
91
            'is_verified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
92
            'level': ('django.db.models.fields.IntegerField', [], {'default': '4'}),
93
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
94
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
95
            'updated': ('django.db.models.fields.DateTimeField', [], {}),
96
            'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
97
        },
98
        'im.astakosuserauthprovider': {
99
            'Meta': {'unique_together': "(('identifier', 'module', 'user'),)", 'object_name': 'AstakosUserAuthProvider'},
100
            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
101
            'affiliation': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}),
102
            'auth_backend': ('django.db.models.fields.CharField', [], {'default': "'astakos'", 'max_length': '255'}),
103
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
104
            'identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
105
            'module': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '255'}),
106
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_providers'", 'to': "orm['im.AstakosUser']"})
107
        },
108
        'im.emailchange': {
109
            'Meta': {'object_name': 'EmailChange'},
110
            'activation_key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40', 'db_index': 'True'}),
111
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
112
            'new_email_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
113
            'requested_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 11, 29, 13, 58, 8, 396491)'}),
114
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'emailchange_user'", 'unique': 'True', 'to': "orm['im.AstakosUser']"})
115
        },
116
        'im.invitation': {
117
            'Meta': {'object_name': 'Invitation'},
118
            'code': ('django.db.models.fields.BigIntegerField', [], {'db_index': 'True'}),
119
            'consumed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
120
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
121
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
122
            'inviter': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'invitations_sent'", 'null': 'True', 'to': "orm['im.AstakosUser']"}),
123
            'is_consumed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
124
            'realname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
125
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
126
        },
127
        'im.pendingthirdpartyuser': {
128
            'Meta': {'unique_together': "(('provider', 'third_party_identifier'),)", 'object_name': 'PendingThirdPartyUser'},
129
            'affiliation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
130
            'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
131
            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
132
            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
133
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
134
            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
135
            'provider': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
136
            'third_party_identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
137
            'token': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
138
            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
139
        },
140
        'im.service': {
141
            'Meta': {'object_name': 'Service'},
142
            'auth_token': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True', 'blank': 'True'}),
143
            'auth_token_created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
144
            'auth_token_expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
145
            'icon': ('django.db.models.fields.FilePathField', [], {'max_length': '100', 'blank': 'True'}),
146
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
147
            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
148
            'url': ('django.db.models.fields.FilePathField', [], {'max_length': '100'})
149
        },
150
        'im.sessioncatalog': {
151
            'Meta': {'object_name': 'SessionCatalog'},
152
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
153
            'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
154
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sessions'", 'null': 'True', 'to': "orm['im.AstakosUser']"})
155
        }
156
    }
157

    
158
    complete_apps = ['im']