README.md 2.65 KB
Newer Older
chirac's avatar
chirac committed
1
# Re2o
chirac's avatar
chirac committed
2

Vincent Le gallic's avatar
Vincent Le gallic committed
3
GNU public license v2.0
chirac's avatar
chirac committed
4

chirac's avatar
chirac committed
5
## Avant propos 
chirac's avatar
chirac committed
6

Vincent Le gallic's avatar
Vincent Le gallic committed
7
Re2o est un logiciel d'administration développé initialement au rezometz. Il
Chirac's avatar
Chirac committed
8 9 10 11 12 13 14 15 16 17
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).
chirac's avatar
chirac committed
18

19
# Installation
Chirac's avatar
Chirac committed
20

21
Un tutoriel pour installer le projet est disponible [sur le wiki](https://gitlab.federez.net/federez/re2o/wikis/User%20Documentation/Quick%20Start).
chirac's avatar
chirac committed
22

23 24
# Installations Optionnelles
## Générer le schéma des dépendances
Chirac's avatar
Chirac committed
25 26 27 28 29

Pour cela : 
 * apt install python3-django-extensions
 * python3 manage.py graph_models -a -g -o re2o.png

Chirac's avatar
Chirac committed
30
# Fonctionnement interne
31

Chirac's avatar
Chirac committed
32 33
## Fonctionnement général

Vincent Le gallic's avatar
Vincent Le gallic committed
34 35
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
Chirac's avatar
Chirac committed
36 37 38 39 40
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)
Chirac's avatar
Chirac committed
41

Vincent Le gallic's avatar
Vincent Le gallic committed
42
Du coté des forms, il s'agit des formulaires d'édition des models. Il
Chirac's avatar
Chirac committed
43 44
s'agit de ModelForms django, qui héritent des models très simplement, voir la 
documentation django models forms.
Chirac's avatar
Chirac committed
45 46 47

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

48 49
## Fonctionnement avec les services

Chirac's avatar
Chirac committed
50
Les services dhcp.py, dns.py etc accèdent aux données via des vues rest.
Chirac's avatar
Chirac committed
51 52 53 54 55
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.
Chirac's avatar
Chirac committed
56 57 58

# Requète en base de donnée

Vincent Le gallic's avatar
Vincent Le gallic committed
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
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
Chirac's avatar
Chirac committed
75
disponible sur le site officiel.