avancement model et methodes

This commit is contained in:
2018-09-04 16:51:59 +02:00
parent 7fe5cf2158
commit 93daa37a44
7 changed files with 134 additions and 9 deletions

View File

@@ -0,0 +1,48 @@
\chapter{Les classes}
\section{Credential}
Cette classe est utilisée pour sauvegarder les informations d'identifications pour accéder aux équipements et est identifiable par un nom unique. Le mot de passe est enregistré dans la base de donnée de façon chiffrée, mais avec un chiffrement symétrique, car il est nécessaire de pouvoir le réutiliser pour s'authentifier par la suite sur les équipements. Les fonctions pour chiffrer et déchiffrer le mot de passe sont fournit par l'attribut "password".
\begin{lstlisting}[language=Ruby, title="app/model/credential.rb"]
# Returns the decrypted value of the 'encrypted_password' field
def password
@password = SymmetricEncryption.decrypt(encrypted_password)
end
# Encrypt the clear text password and set the 'encrypted_password' field.
#
# Params:
# * new_password: the new value of the password
def password=(new_password)
@password = SymmetricEncryption.encrypt(new_password)
self.encrypted_password = @password
end
\end{lstlisting}
\section{Address}
Décrit un objet réseau qui se caractérise par un réseau IPv4 au format \acrshort{cidr}. De ce réseau nous allons pouvoir en déduire la première et dernière addresse. Ces addresses seront ensuite convertie en base10 pour pouvoir être indexé par la base de donnée. Ainsi \lstinline{start_ip} est la représentation numérique de la première addresse IP de ce réseau, et \lstinline{end_ip} la dernière. Dans le cas où le réseau ne contient qu'une seule adresse IP (masque réseau de 32 bits (cité la doc réseau au début)), ces deux adresses seront identiques. Ces valeurs sont calculés à chaque modifications de l'attribut network.
\begin{lstlisting}[language=Ruby, title="app/model/address.rb"]
# Override setter method for the 'network' field.
# It must update the 'start_ip' and 'end_ip' aswell.
#
# Params:
# * value: the new value of the network
def network=(value)
super(value)
set_ip
end
---
# Define 'start_ip' and 'end_ip' fields from 'network'
def set_ip
return if network.nil?
return unless network.match?(network_regex)
ip = IPAddr.new network
self.start_ip = ip.to_range.first.to_i
self.end_ip = ip.to_range.last.to_i
end
\end{lstlisting}