8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-12-23 15:33:45 +00:00
re2o/README.md

76 lines
2.7 KiB
Markdown
Raw Normal View History

2016-07-07 10:32:16 +00:00
# Re2o
2016-07-07 10:28:20 +00:00
2018-08-28 10:02:16 +00:00
GNU public license v2.0
2016-07-31 10:20:28 +00:00
2016-07-07 10:32:16 +00:00
## Avant propos
2016-07-07 10:28:20 +00:00
2018-08-28 10:02:16 +00:00
Re2o est un logiciel d'administration développé initialement au rezometz. Il
2017-10-02 22:47:56 +00:00
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).
2016-07-07 10:28:20 +00:00
# Installation
2016-12-27 22:51:30 +00:00
2018-05-21 14:15:35 +00:00
Un tutoriel pour installer le projet est disponible [sur le wiki](https://gitlab.federez.net/federez/re2o/wikis/User%20Documentation/Quick%20Start).
2016-07-07 10:28:20 +00:00
2018-05-21 14:15:35 +00:00
# Installations Optionnelles
## Générer le schéma des dépendances
2016-12-27 23:43:30 +00:00
Pour cela :
* apt install python3-django-extensions
* python3 manage.py graph_models -a -g -o re2o.png
2016-12-27 22:51:30 +00:00
# Fonctionnement interne
2016-07-07 11:19:03 +00:00
2016-12-27 23:43:30 +00:00
## Fonctionnement général
2018-08-28 10:02:16 +00:00
Re2o est séparé entre les models, qui sont visibles sur le schéma des
dépendances. Il s'agit en réalité des tables sql, et les fields étant les
2017-10-02 22:47:56 +00:00
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)
2016-12-27 23:43:30 +00:00
2018-08-28 10:02:16 +00:00
Du coté des forms, il s'agit des formulaires d'édition des models. Il
2017-10-02 22:47:56 +00:00
s'agit de ModelForms django, qui héritent des models très simplement, voir la
documentation django models forms.
2016-12-27 23:43:30 +00:00
Enfin les views, générent les pages web à partir des forms et des templates.
2016-07-07 11:19:03 +00:00
## Fonctionnement avec les services
2016-12-27 23:43:30 +00:00
Les services dhcp.py, dns.py etc accèdent aux données via des vues rest.
2017-10-02 22:47:56 +00:00
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.
2016-12-27 23:43:30 +00:00
# Requète en base de donnée
2018-08-28 10:02:16 +00:00
Pour avoir un shell, lancer :
```.bash
python3 manage.py shell
```
Pour charger des objets (exemple avec User), faire :
```.python
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
2017-10-02 22:47:56 +00:00
disponible sur le site officiel.