From 4cf62af8ab5db1787241c0da89b7974612d7ce2c Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sun, 27 Oct 2013 05:28:30 +0100 Subject: [PATCH] rename Domain field available_for_everyone to public (so it is not confused with "available" field) "public" field means that this zone can be used by every user (not just the owner) to create hosts there "available" field means that the nameserver is operating and reachable --- conftest.py | 2 +- ...e_for_everyone__add_field_domain_public.py | 102 ++++++++++++++++++ nsupdate/main/models.py | 4 +- nsupdate/main/views.py | 2 +- 4 files changed, 106 insertions(+), 4 deletions(-) create mode 100644 nsupdate/main/migrations/0013_auto__del_field_domain_available_for_everyone__add_field_domain_public.py diff --git a/conftest.py b/conftest.py index 8b15ba6..ec15278 100644 --- a/conftest.py +++ b/conftest.py @@ -14,7 +14,7 @@ def db_init(db): nameserver_ip='85.10.192.104', nameserver_update_algorithm='HMAC_SHA512', nameserver_update_key='YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQ==', - available_for_everyone=True) + public=True) def pytest_runtest_setup(item): diff --git a/nsupdate/main/migrations/0013_auto__del_field_domain_available_for_everyone__add_field_domain_public.py b/nsupdate/main/migrations/0013_auto__del_field_domain_available_for_everyone__add_field_domain_public.py new file mode 100644 index 0000000..7447c39 --- /dev/null +++ b/nsupdate/main/migrations/0013_auto__del_field_domain_available_for_everyone__add_field_domain_public.py @@ -0,0 +1,102 @@ +# -*- 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): + # Deleting field 'Domain.available_for_everyone' + db.delete_column(u'main_domain', 'available_for_everyone') + + # Adding field 'Domain.public' + db.add_column(u'main_domain', 'public', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + + def backwards(self, orm): + # Adding field 'Domain.available_for_everyone' + db.add_column(u'main_domain', 'available_for_everyone', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) + + # Deleting field 'Domain.public' + db.delete_column(u'main_domain', 'public') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'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': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'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': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'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'}), + u'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'}) + }, + u'main.blacklisteddomain': { + 'Meta': {'object_name': 'BlacklistedDomain'}, + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'}), + 'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_update': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) + }, + u'main.domain': { + 'Meta': {'object_name': 'Domain'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'blank': 'True'}), + 'domain': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_update': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'nameserver_ip': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), + 'nameserver_update_algorithm': ('django.db.models.fields.CharField', [], {'default': "'HMAC_SHA512'", 'max_length': '256'}), + 'nameserver_update_key': ('django.db.models.fields.CharField', [], {'max_length': '256'}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + u'main.host': { + 'Meta': {'unique_together': "(('subdomain', 'domain'),)", 'object_name': 'Host'}, + 'comment': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '256', 'null': 'True', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'hosts'", 'to': u"orm['auth.User']"}), + 'domain': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['main.Domain']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_api_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'last_update': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'subdomain': ('django.db.models.fields.CharField', [], {'max_length': '256'}), + 'update_secret': ('django.db.models.fields.CharField', [], {'max_length': '256'}) + } + } + + complete_apps = ['main'] \ No newline at end of file diff --git a/nsupdate/main/models.py b/nsupdate/main/models.py index e8b62f5..138570c 100644 --- a/nsupdate/main/models.py +++ b/nsupdate/main/models.py @@ -52,8 +52,8 @@ class Domain(models.Model): nameserver_update_key = models.CharField(max_length=256) nameserver_update_algorithm = models.CharField( max_length=256, default='HMAC_SHA512', choices=UPDATE_ALGORITHMS) - # XXX rename available_for_everyone to public - available_for_everyone = models.BooleanField(default=False) + # public means that this domain/nameserver is available for everybody + public = models.BooleanField(default=False) # available means "nameserver for domain operating and reachable" - # gets set to False if we have trouble reaching the nameserver available = models.BooleanField(default=True) diff --git a/nsupdate/main/views.py b/nsupdate/main/views.py index fb59077..333431f 100644 --- a/nsupdate/main/views.py +++ b/nsupdate/main/views.py @@ -91,7 +91,7 @@ class OverviewView(CreateView): def get_form(self, form_class): form = super(OverviewView, self).get_form(form_class) form.fields['domain'].queryset = Domain.objects.filter( - Q(created_by=self.request.user) | Q(available_for_everyone=True)) + Q(created_by=self.request.user) | Q(public=True)) return form def form_valid(self, form):