8
0
Fork 0
mirror of https://gitlab.federez.net/re2o/re2o synced 2024-07-07 06:34:06 +00:00
Go to file
chirac f0386df809 Merge branch 'switch_conf_json' into 'dev'
Switch conf json

See merge request federez/re2o!180

(cherry picked from commit a02e03ac71)

7ab0d656 add model PortProfile
adc5757f Merge branch 'switch_conf_json' of https://gitlab.federez.net/federez/re2o into switch_conf_json
983b5620 Refactor port_profil
e7b49bd5 Pas de null sur manytomany
92f30fbe Ajout reglages sécurité + frontend
d123ce92 Menu séparé pour les profils de ports
447919a2 Ajout et transfert des anciennes données vers le nouveau système de profil de ports
e6b8c5c8 Finition, gestion du renvoie du profil par défaut du port
b2d45d00 Adapte freeradius pour le nouveau système de profil de ports
51793bde Boolean direct pour désactiver un port + logo
2e092b3f Fix langue et 802.X radius  + divers
a07e0d92 Petit bug affichage vlans
eefa0b4a PEP8 mon amour + typos
feddc3f6 Conflicts fix switch_conf_json
2018-08-01 20:01:20 +02:00
api Renomme le modèle des addresses mails 2018-08-01 13:06:25 +02:00
cotisations Fix shit 2018-07-23 21:41:30 +00:00
docs_utils Graph re2o sources dia (archi) 2017-10-12 20:03:38 +02:00
freeradius_utils Merge branch 'switch_conf_json' into 'dev' 2018-08-01 20:01:20 +02:00
install_utils Add token authentication with expiration of tokens 2018-06-20 11:38:58 +00:00
logs Passage par flags plutôt que par valeurs 2018-07-20 19:54:03 +02:00
machines Use the record label as for other DNS records 2018-07-29 19:19:08 +00:00
preferences Reconstruction des migrations dans l'ordre pour preference + fix display 2018-08-01 19:13:12 +02:00
re2o Remove useless space. 2018-08-01 18:57:17 +02:00
search Merge branch 'switch_conf_json' into 'dev' 2018-08-01 20:01:20 +02:00
static mise en page pour les longues fingerpint ssh 2018-07-29 19:15:28 +00:00
templates fichiers oubliés 2018-08-01 18:52:42 +02:00
test_utils Add tests for details of instances of every models 2018-06-22 00:48:45 +00:00
topologie Merge branch 'switch_conf_json' into 'dev' 2018-08-01 20:01:20 +02:00
users Renomme le modèle des addresses mails 2018-08-01 13:06:25 +02:00
.gitignore Stockage en BDD des identifiants comnpay. 2018-01-28 08:55:37 +01:00
.gitlab-ci.yml Update .gitlab-ci.yml 2017-12-17 16:31:21 +01:00
apt_requirements.txt Fix #127 and remove duplicate migration 2018-05-28 10:03:15 +00:00
CHANGELOG.md typos 2018-07-13 13:29:07 +02:00
install_re2o.sh Utilise des fichiers de requirements 2018-05-23 15:31:58 +00:00
LICENSE Add license file (GPLv2) 2017-01-15 18:00:42 -05:00
manage.py initial comit 2016-06-30 01:39:31 +02:00
pip_dev_requirements.txt Pip requirements for dev are in a separate file 2018-06-23 16:02:58 +00:00
pip_requirements.txt Utilise des fichiers de requirements 2018-05-23 15:31:58 +00:00
README.md Update changelog and readme 2018-05-23 15:31:58 +00:00

Re2o

Gnu public license v2.0

Avant propos

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.

Il utilise le framework django avec python3. Il permet de gérer les adhérents, les machines, les factures, les droits d'accès, les switchs et la topologie du réseau. De cette manière, il est possible de pluguer très facilement des services dessus, qui accèdent à la base de donnée en passant par django (ex : dhcp), en chargeant la liste de toutes les mac-ip, ou la liste des mac-ip autorisées sur le réseau (adhérent à jour de cotisation).

Installation

Un tutoriel pour installer le projet est disponible sur le wiki.

Installations Optionnelles

Générer le schéma des dépendances

Pour cela :

  • apt install python3-django-extensions
  • python3 manage.py graph_models -a -g -o re2o.png

Fonctionnement interne

Fonctionnement général

Re2o est séparé entre les models, qui sont visible sur le schéma des dépendances. Il s'agit en réalité des tables sql, et les fields etant les colonnes. Ceci dit il n'est jamais nécessaire de toucher directement au sql, django procédant automatiquement à tout cela. On crée donc différents models (user, right pour les droits des users, interfaces, IpList pour l'ensemble des adresses ip, etc)

Du coté des forms, il s'agit des formulaire d'édition des models. Il s'agit de ModelForms django, qui héritent des models très simplement, voir la documentation django models forms.

Enfin les views, générent les pages web à partir des forms et des templates.

Fonctionnement avec les services

Les services dhcp.py, dns.py etc accèdent aux données via des vues rest. Celles-ci se trouvent dans machines/views.py. Elles sont générées via machines/serializers.py qui génère les vues. IL s'agit de vues en json utilisées par re2o-tools pour récupérer les données. Il est nécessaire de créer un user dans re2o avec le droit serveur qui permet d'accéder à ces vues, utilisé par re2o-tools.

Requète en base de donnée

Pour avoir un shell, il suffit de lancer '''python3 manage.py shell''' Pour charger des objets, example avec User, faire : ''' from users.models import User''' Pour charger les objets django, il suffit de faire User.objects.all() pour tous les users par exemple. Il est ensuite aisé de faire des requètes, par exemple User.objects.filter(pseudo='test') Des exemples et la documentation complète sur les requètes django sont disponible sur le site officiel.