mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-23 06:39:25 +00:00
Add permissions to API keys
This commit is contained in:
60
app/api/migrations/0003_auto__add_authapikeypermission.py
Normal file
60
app/api/migrations/0003_auto__add_authapikeypermission.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding model 'AuthAPIKeyPermission'
|
||||
db.create_table('api_authapikeypermission', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('key', self.gf('django.db.models.fields.CharField')(max_length=32)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=200)),
|
||||
))
|
||||
db.send_create_signal('api', ['AuthAPIKeyPermission'])
|
||||
|
||||
# Adding M2M table for field permissions on 'AuthAPIKey'
|
||||
db.create_table('api_authapikey_permissions', (
|
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
|
||||
('authapikey', models.ForeignKey(orm['api.authapikey'], null=False)),
|
||||
('authapikeypermission', models.ForeignKey(orm['api.authapikeypermission'], null=False))
|
||||
))
|
||||
db.create_unique('api_authapikey_permissions', ['authapikey_id', 'authapikeypermission_id'])
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'AuthAPIKeyPermission'
|
||||
db.delete_table('api_authapikeypermission')
|
||||
|
||||
# Removing M2M table for field permissions on 'AuthAPIKey'
|
||||
db.delete_table('api_authapikey_permissions')
|
||||
|
||||
models = {
|
||||
'api.authapikey': {
|
||||
'Meta': {'object_name': 'AuthAPIKey'},
|
||||
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'callback': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'keys'", 'symmetrical': 'False', 'to': "orm['api.AuthAPIKeyPermission']"}),
|
||||
'url': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'api.authapikeypermission': {
|
||||
'Meta': {'object_name': 'AuthAPIKeyPermission'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'})
|
||||
},
|
||||
'api.authapilog': {
|
||||
'Meta': {'ordering': "['access_datetime']", 'object_name': 'AuthAPILog'},
|
||||
'access_datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['api.AuthAPIKey']"}),
|
||||
'url': ('django.db.models.fields.CharField', [], {'max_length': '200'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['api']
|
||||
54
app/api/migrations/0004_api_key_permissions.py
Normal file
54
app/api/migrations/0004_api_key_permissions.py
Normal file
@@ -0,0 +1,54 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import DataMigration
|
||||
from django.db import models
|
||||
|
||||
class Migration(DataMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
from api.urls import urlpatterns as urls
|
||||
|
||||
for u in urls:
|
||||
if not u.name is None:
|
||||
orm['api.AuthAPIKeyPermission'].objects.get_or_create(key=u.name, name=u.name)
|
||||
perms = orm['api.AuthAPIKeyPermission'].objects.all()
|
||||
|
||||
for key in orm['api.AuthAPIKey'].objects.all():
|
||||
key.permissions.add(*perms)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
for key in orm['api.AuthAPIKey'].objects.all():
|
||||
key.permissions.clear()
|
||||
|
||||
orm['api.AuthAPIKeyPermission'].objects.all().delete()
|
||||
|
||||
models = {
|
||||
'api.authapikey': {
|
||||
'Meta': {'object_name': 'AuthAPIKey'},
|
||||
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'callback': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'keys'", 'symmetrical': 'False', 'to': "orm['api.AuthAPIKeyPermission']"}),
|
||||
'url': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'api.authapikeypermission': {
|
||||
'Meta': {'object_name': 'AuthAPIKeyPermission'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'})
|
||||
},
|
||||
'api.authapilog': {
|
||||
'Meta': {'ordering': "['access_datetime']", 'object_name': 'AuthAPILog'},
|
||||
'access_datetime': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['api.AuthAPIKey']"}),
|
||||
'url': ('django.db.models.fields.CharField', [], {'max_length': '200'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['api']
|
||||
symmetrical = True
|
||||
Reference in New Issue
Block a user