mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-27 07:02:26 +00:00
Split le champ radius entre le mode radius et le vlan forcé
This commit is contained in:
parent
52fb4ea9f6
commit
bd22464547
5 changed files with 54 additions and 10 deletions
|
@ -273,6 +273,9 @@ def decide_vlan_and_register_switch(nas, nas_type, port_number, mac_address):
|
||||||
return (sw_name, u'Port inconnu', VLAN_OK)
|
return (sw_name, u'Port inconnu', VLAN_OK)
|
||||||
|
|
||||||
port = port.first()
|
port = port.first()
|
||||||
|
# Si un vlan a été précisé, on l'utilise pour VLAN_OK
|
||||||
|
if port.vlan_force:
|
||||||
|
VLAN_OK = int(port.vlan_force.vlan_id)
|
||||||
|
|
||||||
if port.radius == 'NO':
|
if port.radius == 'NO':
|
||||||
return (sw_name, u"Pas d'authentification sur ce port", VLAN_OK)
|
return (sw_name, u"Pas d'authentification sur ce port", VLAN_OK)
|
||||||
|
@ -317,8 +320,4 @@ def decide_vlan_and_register_switch(nas, nas_type, port_number, mac_address):
|
||||||
else:
|
else:
|
||||||
return (sw_name, u'Machine OK', VLAN_OK)
|
return (sw_name, u'Machine OK', VLAN_OK)
|
||||||
|
|
||||||
# On gere bien tous les autres états possibles, il ne reste que le VLAN en dur
|
|
||||||
return (sw_name, u'VLAN impose', int(port.radius))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
20
topologie/migrations/0029_auto_20171002_0334.py
Normal file
20
topologie/migrations/0029_auto_20171002_0334.py
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.7 on 2017-10-02 01:34
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('topologie', '0028_auto_20170913_1503'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='port',
|
||||||
|
name='radius',
|
||||||
|
field=models.CharField(choices=[('NO', 'NO'), ('STRICT', 'STRICT'), ('BLOQ', 'BLOQ'), ('COMMON', 'COMMON'), ('3', '3'), ('7', '7'), ('8', '8'), ('13', '13'), ('20', '20'), ('42', '42'), ('69', '69')], default='NO', max_length=32),
|
||||||
|
),
|
||||||
|
]
|
26
topologie/migrations/0030_auto_20171004_0235.py
Normal file
26
topologie/migrations/0030_auto_20171004_0235.py
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.7 on 2017-10-04 00:35
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('topologie', '0029_auto_20171002_0334'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='port',
|
||||||
|
name='vlan_force',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='machines.Vlan'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='port',
|
||||||
|
name='radius',
|
||||||
|
field=models.CharField(choices=[('NO', 'NO'), ('STRICT', 'STRICT'), ('BLOQ', 'BLOQ'), ('COMMON', 'COMMON')], default='NO', max_length=32),
|
||||||
|
),
|
||||||
|
]
|
|
@ -91,23 +91,20 @@ class Switch(models.Model):
|
||||||
|
|
||||||
class Port(models.Model):
|
class Port(models.Model):
|
||||||
PRETTY_NAME = "Port de switch"
|
PRETTY_NAME = "Port de switch"
|
||||||
STATES_BASE = (
|
STATES = (
|
||||||
('NO', 'NO'),
|
('NO', 'NO'),
|
||||||
('STRICT', 'STRICT'),
|
('STRICT', 'STRICT'),
|
||||||
('BLOQ', 'BLOQ'),
|
('BLOQ', 'BLOQ'),
|
||||||
('COMMON', 'COMMON'),
|
('COMMON', 'COMMON'),
|
||||||
)
|
)
|
||||||
try:
|
|
||||||
STATES = STATES_BASE + tuple([(str(id), str(id)) for id in list(Vlan.objects.values_list('vlan_id', flat=True).order_by('vlan_id'))])
|
|
||||||
except:
|
|
||||||
STATES = STATES_BASE
|
|
||||||
|
|
||||||
switch = models.ForeignKey('Switch', related_name="ports")
|
switch = models.ForeignKey('Switch', related_name="ports")
|
||||||
port = models.IntegerField()
|
port = models.IntegerField()
|
||||||
room = models.ForeignKey('Room', on_delete=models.PROTECT, blank=True, null=True)
|
room = models.ForeignKey('Room', on_delete=models.PROTECT, blank=True, null=True)
|
||||||
machine_interface = models.ForeignKey('machines.Interface', on_delete=models.SET_NULL, blank=True, null=True)
|
machine_interface = models.ForeignKey('machines.Interface', on_delete=models.SET_NULL, blank=True, null=True)
|
||||||
related = models.OneToOneField('self', null=True, blank=True, related_name='related_port')
|
related = models.OneToOneField('self', null=True, blank=True, related_name='related_port')
|
||||||
radius = models.CharField(max_length=32, choices=STATES, default='NO')
|
radius = models.CharField(max_length=32, choices=STATES, default='NO')
|
||||||
|
vlan_force = models.ForeignKey('machines.Vlan', on_delete=models.SET_NULL, blank=True, null=True)
|
||||||
details = models.CharField(max_length=255, blank=True)
|
details = models.CharField(max_length=255, blank=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<th>Interface machine</th>
|
<th>Interface machine</th>
|
||||||
<th>Related</th>
|
<th>Related</th>
|
||||||
<th>Radius</th>
|
<th>Radius</th>
|
||||||
|
<th>Vlan forcé</th>
|
||||||
<th>Détails</th>
|
<th>Détails</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -53,6 +54,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>{{ port.radius }}</td>
|
<td>{{ port.radius }}</td>
|
||||||
|
<td>{% if not port.vlan_force %} Aucun{%else %}{{ port.vlan_force }}{% endif %}</td>
|
||||||
<td>{{ port.details }}</td>
|
<td>{{ port.details }}</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
<a class="btn btn-info btn-sm" role="button" title="Historique" href="{% url 'topologie:history' 'port' port.pk %}">
|
<a class="btn btn-info btn-sm" role="button" title="Historique" href="{% url 'topologie:history' 'port' port.pk %}">
|
||||||
|
|
Loading…
Reference in a new issue