mirror of https://gitlab.federez.net/re2o/re2o
Browse Source
VLAN de pré-rézotage. See merge request federez/re2o!288Fix_Hash_Check_Very_Old_Passwd
12 changed files with 849 additions and 404 deletions
@ -0,0 +1,111 @@ |
|||||
|
# -*- 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') |
||||
|
|
||||
|
option,_ = OptionalTopologie.objects.get_or_create() |
||||
|
|
||||
|
radius_option = RadiusOption() |
||||
|
radius_option.radius_general_policy = option.radius_general_policy |
||||
|
radius_option.vlan_decision_ok = option.vlan_decision_ok |
||||
|
|
||||
|
radius_option.save() |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('machines', '0095_auto_20180919_2225'), |
||||
|
('preferences', '0055_generaloption_main_site_url'), |
||||
|
] |
||||
|
|
||||
|
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.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='banned_vlan', |
||||
|
field=models.ForeignKey(blank=True, help_text='Vlan for banned if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='banned_vlan', to='machines.Vlan', verbose_name='Banned Vlan'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='non_member_vlan', |
||||
|
field=models.ForeignKey(blank=True, help_text='Vlan for non members if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='non_member_vlan', to='machines.Vlan', verbose_name='Non member Vlan'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='unknown_machine_vlan', |
||||
|
field=models.ForeignKey(blank=True, help_text='Vlan for unknown machines if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_machine_vlan', to='machines.Vlan', verbose_name='Unknown machine Vlan'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='unknown_port_vlan', |
||||
|
field=models.ForeignKey(blank=True, help_text='Vlan for unknown ports if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_port_vlan', to='machines.Vlan', verbose_name='Unknown port Vlan'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='unknown_room_vlan', |
||||
|
field=models.ForeignKey(blank=True, help_text='Vlan for unknown room if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_room_vlan', to='machines.Vlan', verbose_name='Unknown room Vlan'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='banned', |
||||
|
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='Policy for banned users.'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='non_member', |
||||
|
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='Policy non member users.'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='unknown_machine', |
||||
|
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='Policy for unknown machines'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='unknown_port', |
||||
|
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='Policy for unknown machines'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='radiusoption', |
||||
|
name='unknown_room', |
||||
|
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='Policy for machine connecting from unregistered room (relevant on ports with STRICT radius mode)'), |
||||
|
), |
||||
|
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), |
||||
|
migrations.RemoveField( |
||||
|
model_name='optionaltopologie', |
||||
|
name='radius_general_policy', |
||||
|
), |
||||
|
migrations.RemoveField( |
||||
|
model_name='optionaltopologie', |
||||
|
name='vlan_decision_nok', |
||||
|
), |
||||
|
migrations.RemoveField( |
||||
|
model_name='optionaltopologie', |
||||
|
name='vlan_decision_ok', |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.10.7 on 2018-12-04 13:57 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('preferences', '0056_radiusoption'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='radiusoption', |
||||
|
name='unknown_port', |
||||
|
field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='Policy for unknown port'), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,96 @@ |
|||||
|
{% comment %} |
||||
|
Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
quelques clics. |
||||
|
|
||||
|
Copyright © 2018 Hugo Levy-Falk |
||||
|
|
||||
|
This program is free software; you can redistribute it and/or modify |
||||
|
it under the terms of the GNU General Public License as published by |
||||
|
the Free Software Foundation; either version 2 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
This program is distributed in the hope that it will be useful, |
||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
GNU General Public License for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU General Public License along |
||||
|
with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
{% endcomment %} |
||||
|
{% load i18n %} |
||||
|
{% load acl %} |
||||
|
{% load logs_extra %} |
||||
|
|
||||
|
<table> |
||||
|
<tr> |
||||
|
<th>{% trans "General policy for VLAN setting" %}</th> |
||||
|
<td>{{ radiusoptions.radius_general_policy }}</td> |
||||
|
<td>{% trans "This setting defines the VLAN policy after acceptance by RADIUS: either on the IP range's VLAN of the machine, or a VLAN preset in 'VLAN for machines accepted by RADIUS'" %}</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>{% trans "VLAN for machines accepted by RADIUS" %}</th> |
||||
|
<td><span class="label label-success">Vlan {{ radiusoptions.vlan_decision_ok }}</span></td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
<hr/> |
||||
|
<table class="table table-striped"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Situation" %}</th> |
||||
|
<th>{% trans "Behavior" %}</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tr> |
||||
|
<th>{% trans "Unknown machine" %}</th> |
||||
|
<td> |
||||
|
{% if radiusoptions.unknown_machine == 'REJECT' %} |
||||
|
<span class="label label-danger">{% trans "Reject" %}</span> |
||||
|
{% else %} |
||||
|
<span class="label label-success">Vlan {{ radiusoptions.unknown_machine_vlan }}</span> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>{% trans "Unknown port" %}</th> |
||||
|
<td> |
||||
|
{% if radiusoptions.unknown_port == 'REJECT' %} |
||||
|
<span class="label label-danger">{% trans "Reject" %}</span> |
||||
|
{% else %} |
||||
|
<span class="label label-success">Vlan {{ radiusoptions.unknown_port_vlan }}</span> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>{% trans "Unknown room" %}</th> |
||||
|
<td> |
||||
|
{% if radiusoptions.unknown_room == 'REJECT' %} |
||||
|
<span class="label label-danger">{% trans "Reject" %}</span> |
||||
|
{% else %} |
||||
|
<span class="label label-success">Vlan {{ radiusoptions.unknown_room_vlan }}</span> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>{% trans "Non member" %}</th> |
||||
|
<td> |
||||
|
{% if radiusoptions.non_member == 'REJECT' %} |
||||
|
<span class="label label-danger">{% trans "Reject" %}</span> |
||||
|
{% else %} |
||||
|
<span class="label label-success">Vlan {{ radiusoptions.non_member_vlan }}</span> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<th>{% trans "Banned user" %}</th> |
||||
|
<td> |
||||
|
{% if radiusoptions.unknown_port == 'REJECT' %} |
||||
|
<span class="label label-danger">{% trans "Reject" %}</span> |
||||
|
{% else %} |
||||
|
<span class="label label-success">Vlan {{ radiusoptions.banned_vlan }}</span> |
||||
|
{% endif %} |
||||
|
</td> |
||||
|
</tr> |
||||
|
</table> |
||||
|
|
||||
Loading…
Reference in new issue