mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-25 04:43:10 +00:00
92 lines
4.3 KiB
Python
92 lines
4.3 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# Generated by Django 1.10.7 on 2018-10-13 14:29
|
||
|
from __future__ import unicode_literals
|
||
|
|
||
|
from django.db import migrations, models
|
||
|
import django.db.models.deletion
|
||
|
import re2o.mixins
|
||
|
|
||
|
|
||
|
def create_radius_policy(apps, schema_editor):
|
||
|
OptionalTopologie = apps.get_model('preferences', 'OptionalTopologie')
|
||
|
RadiusOption = apps.get_model('preferences', 'RadiusOption')
|
||
|
RadiusPolicy = apps.get_model('preferences', 'RadiusPolicy')
|
||
|
|
||
|
option,_ = OptionalTopologie.objects.get_or_create()
|
||
|
|
||
|
radius_option = RadiusOption()
|
||
|
radius_option.radius_general_policy = option.radius_general_policy
|
||
|
radius_option.unknown_machine = RadiusPolicy.objects.create()
|
||
|
radius_option.unknown_port = RadiusPolicy.objects.create()
|
||
|
radius_option.unknown_room = RadiusPolicy.objects.create()
|
||
|
radius_option.non_member = RadiusPolicy.objects.create()
|
||
|
radius_option.banned = RadiusPolicy.objects.create()
|
||
|
radius_option.vlan_decision_ok = option.vlan_decision_ok
|
||
|
|
||
|
radius_option.save()
|
||
|
|
||
|
|
||
|
class Migration(migrations.Migration):
|
||
|
|
||
|
dependencies = [
|
||
|
('machines', '0095_auto_20180919_2225'),
|
||
|
('preferences', '0051_auto_20180919_2225'),
|
||
|
]
|
||
|
|
||
|
operations = [
|
||
|
migrations.CreateModel(
|
||
|
name='RadiusOption',
|
||
|
fields=[
|
||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
('radius_general_policy', models.CharField(choices=[('MACHINE', "On the IP range's VLAN of the machine"), ('DEFINED', "Preset in 'VLAN for machines accepted by RADIUS'")], default='DEFINED', max_length=32)),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': 'radius policies',
|
||
|
},
|
||
|
bases=(re2o.mixins.AclMixin, models.Model),
|
||
|
),
|
||
|
migrations.CreateModel(
|
||
|
name='RadiusPolicy',
|
||
|
fields=[
|
||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||
|
('policy', models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32)),
|
||
|
('vlan', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='machines.Vlan')),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': 'radius policy',
|
||
|
},
|
||
|
bases=(re2o.mixins.AclMixin, models.Model),
|
||
|
),
|
||
|
migrations.AddField(
|
||
|
model_name='radiusoption',
|
||
|
name='non_member',
|
||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='non_member_option', to='preferences.RadiusPolicy', verbose_name='Policy non member users.'),
|
||
|
),
|
||
|
migrations.AddField(
|
||
|
model_name='radiusoption',
|
||
|
name='unknown_machine',
|
||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='unknown_machine_option', to='preferences.RadiusPolicy', verbose_name='Policy for unknown machines'),
|
||
|
),
|
||
|
migrations.AddField(
|
||
|
model_name='radiusoption',
|
||
|
name='unknown_port',
|
||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='unknown_port_option', to='preferences.RadiusPolicy', verbose_name='Policy for unknown machines'),
|
||
|
),
|
||
|
migrations.AddField(
|
||
|
model_name='radiusoption',
|
||
|
name='unknown_room',
|
||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='unknown_room_option', to='preferences.RadiusPolicy', verbose_name='Policy for machine connecting from unregistered room (relevant on ports with STRICT radius mode)'),
|
||
|
),
|
||
|
migrations.AddField(
|
||
|
model_name='radiusoption',
|
||
|
name='banned',
|
||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='banned_option', to='preferences.RadiusPolicy', verbose_name='Policy for banned users.'),
|
||
|
),
|
||
|
migrations.AddField(
|
||
|
model_name='radiusoption',
|
||
|
name='vlan_decision_ok',
|
||
|
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='vlan_ok_option', to='machines.Vlan'),
|
||
|
),
|
||
|
migrations.RunPython(create_radius_policy),
|
||
|
]
|