Wiki

Version 23 (Etienne Pallier, 01/19/2015 04:18 pm)

1 1 Etienne Pallier
h1. INVENTIRAP WIKI
2 1 Etienne Pallier
3 16 Etienne Pallier
{{toc}}
4 13 Etienne Pallier
5 23 Etienne Pallier
-----------------
6 23 Etienne Pallier
7 12 Etienne Pallier
h2. INSTALLATION DU LOGICIEL (HOWTO)
8 12 Etienne Pallier
9 23 Etienne Pallier
-----------------
10 18 Etienne Pallier
11 18 Etienne Pallier
12 12 Etienne Pallier
(Pour les developpeurs avec Eclipse, voir aussi le document install/manual_install/INSTALLATION_MANUELLE_mode_expert.txt)
13 12 Etienne Pallier
(Une fois l'installation terminee, les developpeurs devraient aussi lire le document docs/HOWTO.txt) 
14 12 Etienne Pallier
15 19 Etienne Pallier
LabInvent est un logiciel multi-plateformes (Linux, Mac OS X, Windows), il nécessite les services suivants :
16 12 Etienne Pallier
- serveur web (Apache)
17 12 Etienne Pallier
- serveur de base de données (Mysql)
18 12 Etienne Pallier
- interpréteur Php 5.3+ (minimum)
19 12 Etienne Pallier
20 12 Etienne Pallier
Il est aussi conseillé d'avoir un "phpmyadmin" installé pour pouvoir gérer manuellement la base de données
21 12 Etienne Pallier
22 12 Etienne Pallier
Il a été testé avec les configurations suivantes :
23 12 Etienne Pallier
- OS : CentOS 6.2 et 6.6, Mac OS 10.7, Windows 7
24 12 Etienne Pallier
- PHP : 5.3, 5.4, et 5.6
25 12 Etienne Pallier
- Mysql : 5.1, 5.6
26 12 Etienne Pallier
- Apache : 2.2.14, 2.2.15, et 2.4.10
27 12 Etienne Pallier
28 12 Etienne Pallier
Le projet occupe un espace d'environ 190 Mo (environ 370 Mo si versionné avec svn).
29 12 Etienne Pallier
30 12 Etienne Pallier
ATTENTION, pré-requis : 
31 12 Etienne Pallier
1) Apache rewrite activé 
32 12 Etienne Pallier
Le module rewrite d'apache doit etre chargé et actif. 
33 12 Etienne Pallier
Pour verifier le chargement, phpinfo affiche la liste des modules d'apache pris en compte. 
34 12 Etienne Pallier
2) Le projet necessite la librairie gd (utilisee par php), sans quoi vous aurez une erreur (fatale) 
35 12 Etienne Pallier
lors de la visualisation de la fiche d'un materiel (qui contient l'image d'un QRCode). 
36 12 Etienne Pallier
(Pour info, c'est la librairie phpqrcode, dans cakephp/app/Vendor, qui génère le QRCode et donc utilise gd, par exemple pour appeler des fonctions telles que ImageCreate...)
37 12 Etienne Pallier
Il faut donc vérifier que gd et php-gd sont installés :
38 12 Etienne Pallier
- gd ==> on l'installe avec "yum install gd" sur CentOS
39 12 Etienne Pallier
- php-gd doit etre installé avec la bonne version, c'est à dire celle du php que vous utilisez 
40 12 Etienne Pallier
(par exemple, si php 5.4, installer php-gd version 5.4) ==> on l'installe avec "yum install php-gd" sur CentOS 
41 12 Etienne Pallier
(Pour info, la librairie phpqrcode necessite aussi la librairie zlib qui offre les fonctions gzcompress, gzuncompress, etc.)
42 12 Etienne Pallier
43 21 Etienne Pallier
44 1 Etienne Pallier
-----------------
45 1 Etienne Pallier
46 23 Etienne Pallier
h3. INSTALLATION
47 21 Etienne Pallier
48 21 Etienne Pallier
-----------------
49 12 Etienne Pallier
50 12 Etienne Pallier
Pour une MISE A JOUR du logiciel, aller directement à la fin de ce document, a la section MISE A JOUR (UPGRADE)
51 12 Etienne Pallier
52 12 Etienne Pallier
Il y a deux façons de l'installer :
53 12 Etienne Pallier
- Pour une installation manuelle (mode expert) allez dans le sous-repertoire manual_install et lisez le document INSTALLATION_MANUELLE_mode_expert.txt
54 12 Etienne Pallier
- Sinon (méthode conseillée), si vous voulez une installation complètement assistée (avec questions/réponses), poursuivez la lecture de ce document.
55 12 Etienne Pallier
(NB : l'ancien script d'installation fourni à l'origine par Upsilon s'appelle install-upsillon.sh, il n'est plus a jour)
56 12 Etienne Pallier
57 12 Etienne Pallier
Nous vous préconisons d'installer le logiciel en mode "SANS LDAP", et d'activer le mode "AVEC LDAP" par la suite, si vous en avez besoin.
58 12 Etienne Pallier
59 12 Etienne Pallier
Pour cela, suivez les instructions ci-dessous.
60 12 Etienne Pallier
61 12 Etienne Pallier
Si ce n'est pas déjà fait, récuperer l'archive labinvent.tgz
62 12 Etienne Pallier
63 12 Etienne Pallier
Placer cette archive à l'endroit voulu, 2 possibilités :
64 12 Etienne Pallier
- (*) soit vous placez cette archive directement dans le repertoire des sites webs du serveur web (par exemple /var/www/html/)
65 12 Etienne Pallier
- (**) soit vous la placez n'importe où ailleurs (par exemple dans votre repertoire home), et ensuite vous indiquerez au serveur web où trouver ce projet
66 12 Etienne Pallier
67 12 Etienne Pallier
Dézipper l'archive :
68 12 Etienne Pallier
	tar xvfz labinvent.tgz
69 12 Etienne Pallier
	==> cela crée un dossier labinvent_1-3-xxx/
70 12 Etienne Pallier
	
71 12 Etienne Pallier
Aller dans le repertoire d'installation :
72 12 Etienne Pallier
	cd labinvent/install/
73 12 Etienne Pallier
74 12 Etienne Pallier
Exécuter le script d'installation :
75 12 Etienne Pallier
	./installation.sh
76 12 Etienne Pallier
(vous pouvez le faire en tant qu'administrateur "root", mais ça n'est pas nécessaire, le script fera quelques petits "sudo" seulement quand nécessaire).
77 12 Etienne Pallier
(Conseil : à la plupart des questions, laissez les réponses par défaut)
78 12 Etienne Pallier
(Comme expliqué au début, faites une installation en mode "sans LDAP")
79 12 Etienne Pallier
80 12 Etienne Pallier
81 12 Etienne Pallier
Autoriser les fichiers .htaccess sur le site :
82 12 Etienne Pallier
(cf http://book.cakephp.org/2.0/fr/installation/url-rewriting.html)
83 12 Etienne Pallier
Dans le fichier httpd.conf de Apache, si vous avez deja quelquechose comme ceci, cela suffit :
84 12 Etienne Pallier
<Directory />
85 12 Etienne Pallier
    Options FollowSymLinks
86 12 Etienne Pallier
    AllowOverride All
87 12 Etienne Pallier
#    Order deny,allow
88 12 Etienne Pallier
#    Deny from all
89 12 Etienne Pallier
</Directory>
90 12 Etienne Pallier
Sinon, vous pouvez ajouter ceci, uniquement pour Labinvent :
91 12 Etienne Pallier
<Directory /labinvent>
92 12 Etienne Pallier
    Options FollowSymLinks
93 12 Etienne Pallier
    AllowOverride All
94 12 Etienne Pallier
</Directory>
95 12 Etienne Pallier
NB : si labinvent n'est pas dans le repertoire des sites webs, il faut mettre son chemin absolu a la place de /labinvent :
96 12 Etienne Pallier
<Directory /chemin/abosolu/vers/labinvent>
97 12 Etienne Pallier
98 12 Etienne Pallier
99 12 Etienne Pallier
Tester l'accès web à l'application :
100 12 Etienne Pallier
- (*) Si vous avez placé le logiciel directement dans le repertoire des sites webs du serveur web :
101 12 Etienne Pallier
	==> tester l'url http://localhost/labinvent/cakephp
102 12 Etienne Pallier
- (**) Si vous avez placé le logiciel dans un autre repertoire, par exemple /home/votre_nom/ :
103 12 Etienne Pallier
	Faites un lien nommé "labinvent" dans le repertoire des sites webs du serveur web (par exemple /var/www/html/), qui pointe vers le repertoire "cakephp" du logiciel :
104 12 Etienne Pallier
	==> cd /var/www/html/
105 12 Etienne Pallier
	==> ln -s /home/votre_nom/labinvent/cakephp/ labinvent
106 12 Etienne Pallier
	==> puis, tester l'url http://localhost/labinvent/
107 12 Etienne Pallier
	(Si vous ne voulez ou ne pouvez pas utiliser un lien, vous pouvez plutôt créer un Virtual Host, voir tout à la fin de ce doc, la section "VIRTUAL HOST") 
108 12 Etienne Pallier
109 12 Etienne Pallier
Tester le bon fonctionnement de l'application :
110 12 Etienne Pallier
- Connectez-vous au logiciel (normalement, vous etes le super administrateur) avec votre login (ldap), SANS MOT DE PASSE (grâce au mode "SANS ldap")
111 12 Etienne Pallier
- Vous etes maintenant sur la page d'accueil générale ; vous devez voir votre nom s'afficher :
112 12 Etienne Pallier
"Vous êtes connecté en tant que <vos nom et prénom> et avec le niveau d'authentification Super Administrateur"
113 12 Etienne Pallier
- Cliquez un peu partout pour voir si tout s'affiche bien sans erreur (par exemple, "Liste des matériels" doit afficher 0 matériel...)
114 12 Etienne Pallier
- Cliquez sur Outils, puis "Gérer les utilisateurs privilégiés" : vous devriez voir un seul utilisateur dans la liste, le "super administrateur" (a priori vous)
115 12 Etienne Pallier
- Déconnectez-vous du logiciel 
116 12 Etienne Pallier
117 12 Etienne Pallier
Voila, felicitations, votre installation fonctionne !
118 12 Etienne Pallier
119 12 Etienne Pallier
Pensez à personnaliser les 2 fichiers logos suivants dans cakephp/app/webroot/img/ :
120 12 Etienne Pallier
	- logo_entity.jpg : le logo du laboratoire
121 12 Etienne Pallier
	- logo_software.jpg : le logo du logiciel
122 22 Etienne Pallier
123 1 Etienne Pallier
-----------------
124 1 Etienne Pallier
125 23 Etienne Pallier
h3. PASSAGE EN MODE "AVEC LDAP" (facultatif) :
126 1 Etienne Pallier
127 22 Etienne Pallier
-----------------
128 22 Etienne Pallier
129 12 Etienne Pallier
Maintenant, si vous le désirez, vous pouvez ajouter la connexion au LDAP :
130 12 Etienne Pallier
- soit en refaisant une nouvelle installation complète, qui incluera cette fois-ci une connexion au LDAP, 
131 12 Etienne Pallier
	mais il faudra répondre à nouveau à toutes les questions
132 12 Etienne Pallier
- soit (méthode conseillée) directement à la main dans votre fichier de configuration comme ceci :
133 12 Etienne Pallier
	Editer votre fichier de configuration cakephp/app/Config/labinvent.php, chercher la section ci-dessous, 
134 12 Etienne Pallier
	et remplacer chacune des valeurs par celles concernant votre LDAP.
135 12 Etienne Pallier
	Attention, il faut bien mettre USE_LDAP à la valeur TRUE :
136 12 Etienne Pallier
	 
137 12 Etienne Pallier
	'USE_LDAP' => TRUE,
138 12 Etienne Pallier
	'ldap' => array (
139 12 Etienne Pallier
		'host'		 			=> 'ldap-servername-or-ip',
140 12 Etienne Pallier
		'port'					=> '389',
141 12 Etienne Pallier
		'authenticationType'	=> 'cn',
142 12 Etienne Pallier
		'baseDn'				=> 'ou=users,dc=irap,dc=omp,dc=eu',
143 12 Etienne Pallier
		'filter'				=> '(cn=*)'
144 12 Etienne Pallier
	),
145 12 Etienne Pallier
146 12 Etienne Pallier
Pour tester que votre connexion LDAP fonctionne bien,
147 12 Etienne Pallier
connectez-vous au logiciel d'inventaire avec votre login ldap, et cette fois-ci AVEC votre mot de passe LDAP 
148 12 Etienne Pallier
(normalement, vous ne devriez plus pouvoir vous connecter sans mot de passe)
149 12 Etienne Pallier
Voila, vous devriez maintenant etre connecte sur le logiciel avec votre login ldap et avec le profil "super administrateur" 
150 12 Etienne Pallier
151 12 Etienne Pallier
La base de donnees est actuellement vide. Vous pouvez donc commencer à alimenter le logiciel avec quelques données.
152 1 Etienne Pallier
Pour cela, poursuivez votre lecture.
153 1 Etienne Pallier
154 22 Etienne Pallier
-----------------
155 1 Etienne Pallier
156 23 Etienne Pallier
h3. PARAMETRAGE DU LOGICIEL (PERSONNALISATION)
157 12 Etienne Pallier
158 22 Etienne Pallier
-----------------
159 12 Etienne Pallier
160 12 Etienne Pallier
Vous devez maintenant personnaliser le logiciel à partir des données concernant votre entité (laboratoire).
161 12 Etienne Pallier
Pour cela, éditer le fichier de configuration cakephp/app/Config/labinvent.php et adapter la valeur des paramètres suivants :
162 12 Etienne Pallier
163 12 Etienne Pallier
			// Passer cette valeur à 1 ou 2 pour pouvoir voir les messages d'erreur éventuels 
164 12 Etienne Pallier
			// (en cas de problème, ou en phase de développement, mais pas en phase de production)
165 12 Etienne Pallier
			'debug' => 0,
166 12 Etienne Pallier
167 12 Etienne Pallier
			// Nom de l'entité (laboratoire) :
168 12 Etienne Pallier
			'labName' => "LABONAME",
169 12 Etienne Pallier
			
170 12 Etienne Pallier
			// Nom COURT (4 caracteres maxi) d'entité (labo) qui sera utilisé en préfixe du numéro de matériel interne au labo, 
171 12 Etienne Pallier
			// (et aussi imprimé sur les etiquettes)
172 12 Etienne Pallier
			'labNameShort' => "LABO",
173 12 Etienne Pallier
			
174 12 Etienne Pallier
			// Formule de presentation de l'entité (labo) (ex: "de l'IRAP", "du LAAS", "de l'IAP", ...)
175 12 Etienne Pallier
			'labPresent' => "de l'"
176 12 Etienne Pallier
			//'labPresent' => "du ",
177 12 Etienne Pallier
			
178 12 Etienne Pallier
			// UMR de l'entité (labo) : mettre à vide ('') si pas utilisé
179 12 Etienne Pallier
			'labUMR' => "UMR 5277",
180 12 Etienne Pallier
				
181 12 Etienne Pallier
			// A mettre à TRUE si une (ou des) titreuse (imprimante à ruban) Dymo est disponible 
182 12 Etienne Pallier
			// pour imprimer les "étiquettes" d'inventaire à coller sur les matériels 
183 12 Etienne Pallier
			'hasPrinter' => FALSE,
184 12 Etienne Pallier
					
185 12 Etienne Pallier
			// Liste des sites où sont présents les matériels
186 12 Etienne Pallier
			// Ces sites doivent être listés avec une lettre unique comme clé
187 12 Etienne Pallier
			// Cette liste doit contenir au moins 1 site
188 12 Etienne Pallier
			// Le 1er site listé sera le site par défaut
189 12 Etienne Pallier
			'sites' => array(
190 12 Etienne Pallier
					"Belin", // site par défaut
191 12 Etienne Pallier
					"Roche", 
192 12 Etienne Pallier
					"Tarbes", 
193 12 Etienne Pallier
					"CNES",
194 1 Etienne Pallier
					"Autre",
195 12 Etienne Pallier
			),
196 1 Etienne Pallier
197 1 Etienne Pallier
198 22 Etienne Pallier
-----------------
199 1 Etienne Pallier
200 23 Etienne Pallier
h3. ALIMENTATION DE LA BASE DE DONNEES
201 22 Etienne Pallier
202 22 Etienne Pallier
-----------------
203 22 Etienne Pallier
204 12 Etienne Pallier
En ce qui concerne le rôle quotidien des personnes de l'administration sur ce logiciel, voir le document Inventirap_AdministrationUser_Manual.docx dans le dossier docs/
205 12 Etienne Pallier
En ce qui concerne les possibilites offertes à tout utilisateur (non privilegie) de ce logiciel, voir le document Inventirap_User_Manual.docx dans le dossier docs/
206 12 Etienne Pallier
207 12 Etienne Pallier
Ici, nous allons plutot expliquer comment commencer a alimenter la base de donnees du logiciel (a priori vide) avec un minimum de donnees 
208 12 Etienne Pallier
afin de rendre possible la saisie de l'inventaire materiel. En effet, pour pouvoir saisir des materiels dans l'inventaire, 
209 12 Etienne Pallier
il vous faut au prealable :
210 12 Etienne Pallier
211 12 Etienne Pallier
1) definir quelques utilisateurs PRIVILEGIES (comme vous, mais avec des profils moins forts comme "administrateur", "responsable"...)
212 12 Etienne Pallier
qui seront habilites a faire cette saisie (notamment le personnel administratif) ; attention,
213 12 Etienne Pallier
tout utilisateur (du LDAP) non privilegie peut entrer un nouveau materiel dans l'inventaire, mais seul le personnel administratif 
214 12 Etienne Pallier
pourra ensuite faire la saisie des informations administratives et valider la fiche materiel...
215 12 Etienne Pallier
216 12 Etienne Pallier
2) definir quelques domaines et categories (et éventuellement des sous-categories si vous en avez besoin), qui permettront de classer le materiel
217 12 Etienne Pallier
218 12 Etienne Pallier
3) (FACULTATIF) definir des groupes metiers (auquels on pourra associer les utilisateurs mais aussi les materiels) et groupes thematiques (associés aux materiels)
219 12 Etienne Pallier
220 12 Etienne Pallier
==> Pour ces 3 premiers points, lire le document Inventirap_AdministrationUser_Manual.docx (dans le dossier docs/) au chapitre 2 "Les outils"
221 12 Etienne Pallier
222 12 Etienne Pallier
On pourra ensuite enfin commencer la saisie des materiels
223 12 Etienne Pallier
224 1 Etienne Pallier
==> Sur ce point, lire le document Inventirap_User_Manual.docx (dans le dossier docs/) au chapitre 3, en particulier 3.2 "Saisie de materiel"
225 1 Etienne Pallier
226 1 Etienne Pallier
227 1 Etienne Pallier
228 22 Etienne Pallier
-----------------
229 12 Etienne Pallier
230 23 Etienne Pallier
h3. LOGS (facultatif)
231 22 Etienne Pallier
232 22 Etienne Pallier
-----------------
233 1 Etienne Pallier
234 1 Etienne Pallier
Un fichier de log est créé et alimenté par l'application.
235 1 Etienne Pallier
Il s'agit de cakephp/app/tmp/logs/labinvent.log
236 1 Etienne Pallier
237 12 Etienne Pallier
238 22 Etienne Pallier
-----------------
239 12 Etienne Pallier
240 23 Etienne Pallier
h3. INSTALLATION DES ETIQUETEUSES (facultatif)
241 22 Etienne Pallier
242 22 Etienne Pallier
-----------------
243 22 Etienne Pallier
244 12 Etienne Pallier
Si vous désirez imprimer des étiquettes (ruban) à coller sur les materiels inventoriés,
245 12 Etienne Pallier
il vous faut installer une ou plusieurs étiqueteuses (au moins une) sur les postes clients.
246 12 Etienne Pallier
247 12 Etienne Pallier
Voici la procédure à suivre pour installer une étiqueteuse sur un poste client :
248 12 Etienne Pallier
249 12 Etienne Pallier
1) Acheter la bonne imprimante (!) 
250 12 Etienne Pallier
L'imprimante configurée est une "DYMO LabelManager PnP USB"
251 12 Etienne Pallier
Pour avoir plus d'informations sur cette étiqueteuse, aller sur la page Outils puis cliquer sur "Voir les étiqueteuses installées"
252 12 Etienne Pallier
253 12 Etienne Pallier
2) Installer cette imprimante sur le poste client
254 12 Etienne Pallier
Attention, il faut bien faire l'installation dans cette ordre sinon ça ne marche pas :
255 12 Etienne Pallier
a) Mettre la batterie dans l'imprimante
256 12 Etienne Pallier
b) Connecter l'imprimante sur un port USB du poste client, l'imprimante s'installe normalement toute seule,
257 12 Etienne Pallier
et représente un nouvel espace disque sur le bureau (sur Windows, elle occupe une lettre de lecteur disque monté, style "G:")
258 12 Etienne Pallier
C'est normal car ce disque contient un mini logiciel qui permet d'utiliser très simplement cette imprimante.
259 12 Etienne Pallier
Mais ce n'est pas ce logiciel que nous allons utiliser, donc surtout ne l'installez pas. 
260 12 Etienne Pallier
261 12 Etienne Pallier
3) Télécharger et installer le logiciel DLS (Dymo Label Software) associé à cette imprimante
262 12 Etienne Pallier
Pour cela aller dans la section "LOGICIEL DLS (DYMO LABEL SOFTWARE) A INSTALLER", et cliquer sur le lien "Téléchargement logiciel"
263 12 Etienne Pallier
Selon que c'est un poste Mac ou Windows, cliquer sur le bon lien "DOWNLOAD"
264 12 Etienne Pallier
Installer ce logiciel
265 12 Etienne Pallier
266 12 Etienne Pallier
4) Imprimer une étiquette 
267 12 Etienne Pallier
Allumer l'imprimante (si ce n'est déjà fait)
268 12 Etienne Pallier
Depuis ce poste client, aller sur le logiciel Labinvent (via un navigateur comme Firefox par exemple),
269 12 Etienne Pallier
cliquez sur "Liste des matériels", cliquez sur un matériel quelconque, et cliquez sur le bouton "Impr. ruban"
270 12 Etienne Pallier
Les 5 étapes suivantes ne sont à faire qu'une seule fois pour toutes : 
271 12 Etienne Pallier
- Une boîte de dialogue s'ouvre pour vous demander quel logiciel il faut ouvrir.
272 12 Etienne Pallier
- Cliquez sur le bouton "Choisir..." (à droite du texte "Ouvrir avec")
273 12 Etienne Pallier
- Choisir l'application DLS (Dymo Label Software)
274 12 Etienne Pallier
- Cocher l'option "Toujours effectuer cette opération avec ce type de fichier"
275 12 Etienne Pallier
- Cliquer sur OK
276 1 Etienne Pallier
Le logiciel DLS s'ouvre avec l'étiquette prête à être imprimée.
277 1 Etienne Pallier
Cliquer sur le bouton "Imprimer"
278 1 Etienne Pallier
279 12 Etienne Pallier
280 12 Etienne Pallier
281 12 Etienne Pallier
282 22 Etienne Pallier
-----------------
283 12 Etienne Pallier
284 23 Etienne Pallier
h3. AUTORISATIONS (ACL) : REGLAGE DES DROITS ASSOCIES A CHAQUE PROFIL
285 12 Etienne Pallier
286 22 Etienne Pallier
-----------------
287 22 Etienne Pallier
288 12 Etienne Pallier
TODO: expliquer comment ajouter, modifer, ou supprimer un profil 
289 12 Etienne Pallier
290 12 Etienne Pallier
Cette application définit 5 profils de pouvoir croissant :
291 12 Etienne Pallier
- USER : le profil par défaut de tout utilisateur)
292 12 Etienne Pallier
- RESPONSABLE : le responsable d'un ou plusieurs matériels 
293 12 Etienne Pallier
- ADMIN : le service administratif (gestion)
294 12 Etienne Pallier
- ADMINPLUS : le responsable administratif
295 12 Etienne Pallier
- SUPERADMIN (ce profil correspond au super administrateur, il a TOUS les droits)
296 12 Etienne Pallier
297 12 Etienne Pallier
Les droits associés à chaque profil sont décrits dans le document docs/userguide/ACL.pdf, principalement dans le tableau II-B.
298 12 Etienne Pallier
299 12 Etienne Pallier
L'ensemble de tous ces droits est contrôllé (presque) entièrement par un seul tableau nommé $easyACL
300 12 Etienne Pallier
301 12 Etienne Pallier
Il vous suffit donc de jouer sur le contenu de ce tableau pour modifier les droits.
302 12 Etienne Pallier
303 12 Etienne Pallier
On peut définir ces droits à deux niveaux : 
304 12 Etienne Pallier
- Les droits PAR DEFAUT sont définis dans la classe mère de tous les controleurs, nommée app/Controller/AppController
305 12 Etienne Pallier
- Les droits spécifiques à un modèle (Matériel, Suivi, Emprunt) sont définis dans le controleur respectif (MaterielsController, SuivisController, EmpruntController...)
306 12 Etienne Pallier
307 12 Etienne Pallier
1) Les droits PAR DEFAUT sont définis dans la classe mère de tous les controleurs, nommée app/Controller/AppController
308 12 Etienne Pallier
309 12 Etienne Pallier
Vous y trouverez un tableau $easyACL avec un contenu semblable à celui-ci :
310 12 Etienne Pallier
311 12 Etienne Pallier
	protected $easyACL = array(
312 12 Etienne Pallier
	
313 12 Etienne Pallier
			'ALL' => array (
314 12 Etienne Pallier
				// CRUD actions :
315 12 Etienne Pallier
				'index' => 'Y', // Read all
316 12 Etienne Pallier
				'view' => 'Y', // Read one
317 12 Etienne Pallier
				'add' => 'Y', // Create
318 12 Etienne Pallier
				'edit' => 'N', // Update
319 12 Etienne Pallier
				//'delete' => 'N', // Delete
320 12 Etienne Pallier
			),
321 12 Etienne Pallier
	
322 12 Etienne Pallier
			'USER' => array (
323 12 Etienne Pallier
				// CRUD actions :
324 12 Etienne Pallier
				'index' => 'Y', // read all
325 12 Etienne Pallier
				'view' => 'Y', // read one
326 12 Etienne Pallier
				//'add' => 'Y', // create
327 12 Etienne Pallier
				'edit' => 'N', // update
328 12 Etienne Pallier
				'delete' => 'N',
329 12 Etienne Pallier
			),
330 12 Etienne Pallier
331 12 Etienne Pallier
			'RESPONSABLE' => array (
332 12 Etienne Pallier
				// CRUD actions :
333 12 Etienne Pallier
				'index' => 'Y', // read all
334 12 Etienne Pallier
				'view' => 'Y', // read one
335 12 Etienne Pallier
				'add' => 'Y', // create
336 12 Etienne Pallier
				'edit' => 'N', // update
337 12 Etienne Pallier
				'delete' => 'Y',
338 12 Etienne Pallier
			),
339 12 Etienne Pallier
			
340 12 Etienne Pallier
			...
341 12 Etienne Pallier
342 12 Etienne Pallier
	}
343 12 Etienne Pallier
344 12 Etienne Pallier
Le sous-tableau 'ALL' contient les DROITS PAR DEFAUT pour TOUS les profils (ALL), 
345 12 Etienne Pallier
pour TOUS les modèles, et pour les actions qu'il définit (ici, les actions CRUD, Create Read Update Delete).
346 12 Etienne Pallier
Par exemple, avec l'entrée 'delete' => 'N', par défaut aucun profil n'a le droit de supprimer quelque modèle (matériel, suivi, emprunt, ...) que ce soit,
347 12 Etienne Pallier
même les nouveaux modèles qui pourraient être ajoutés dans le futur.
348 12 Etienne Pallier
Attention, ce système est "permissif" dans le sens ou par défaut tout est autorisé.
349 12 Etienne Pallier
Si vous voulez interdire une action, il faut le dire explicitement, sinon elle est autorisée par défaut.
350 12 Etienne Pallier
En général, cela simplifie les choses.
351 12 Etienne Pallier
Donc, par exemple, si on commente l'action 'delete', elle est alors autorisée.
352 12 Etienne Pallier
C'est comme si elle était définie avec 'delete' => 'Y'
353 12 Etienne Pallier
 
354 12 Etienne Pallier
Si un profil spécifique doit avoir un droit sur une action, qui est différent du droit PAR DEFAUT défini dans 'ALL',
355 12 Etienne Pallier
alors il faut ajouter un sous-tableau pour ce profil, portant le nom de ce profil (en majuscule).
356 12 Etienne Pallier
357 12 Etienne Pallier
Ainsi, le sous-tableau 'USER' contient les droits spécifiques pour le profil USER, 
358 12 Etienne Pallier
pour TOUS les modèles, et pour les actions qu'il définit. 
359 12 Etienne Pallier
Par exemple, avec l'entrée 'delete' => 'N', par défaut un USER n'a pas le droit de supprimer quelque modèle (matériel, suivi, emprunt, ...) que ce soit.
360 12 Etienne Pallier
Si une action n'est pas définie (par exemple 'add'), alors c'est l'autorisation définie dans 'ALL' qui fait foi.
361 12 Etienne Pallier
362 12 Etienne Pallier
Le sous-tableau 'ADMIN' contient les droits par défaut pour le profil ADMIN, 
363 12 Etienne Pallier
pour TOUS les modèles, et pour les actions qu'il définit. 
364 12 Etienne Pallier
Par exemple, avec l'entrée 'delete' => 'Y', par défaut un ADMIN a le droit de supprimer TOUS les modèles (matériel, suivi, emprunt, ...),
365 12 Etienne Pallier
y-compris les nouveaux modèles qui pourraient être ajoutés dans le futur.
366 12 Etienne Pallier
367 12 Etienne Pallier
Et ainsi de suite pour les autres profils ADMIN, ADMINPLUS, et SUPERADMIN.
368 12 Etienne Pallier
S'ils ne sont pas définis, alors ils héritent des autorisations par défaut définies dans 'ALL'. 
369 12 Etienne Pallier
370 12 Etienne Pallier
371 12 Etienne Pallier
2) Les droits spécifiques à un modèle (Matériel, Suivi, Emprunt) sont définis dans le controleur respectif (MaterielsController, SuivisController, EmpruntController...)
372 12 Etienne Pallier
373 12 Etienne Pallier
Si, pour un modèle donné, on veut définir des droits différents de ceux définis globalement dans app/Controller/AppController,
374 12 Etienne Pallier
il faut le faire dans le controleur correspondant au modèle.
375 12 Etienne Pallier
Par exemple, si on veut des droits particuliers pour les matériels, il faut les définirs dans app/Controller/MaterielsController
376 12 Etienne Pallier
Cependant, afin de garder la plupart des droits définis globalement dans AppController, 
377 12 Etienne Pallier
et de redéfinir SEULEMENT CERTAINS droits spécifiques pour certains profils ou certaines actions,
378 12 Etienne Pallier
on définira les nouveaux droits un peu différemment de ce qui a été fait dans AppController.
379 12 Etienne Pallier
(TODO: je n'ai pas réussi avec Php 5.3 à gérer un héritage au niveau du tableau $easyACL entre celui de AppController et celui des sous-classes,
380 12 Etienne Pallier
car celui défini dans une sous-classe écrase complètement celui de la classe mère AppController ; peut-être qu'avec Php 5.6 il y aurait une solution plus éléguante).
381 12 Etienne Pallier
En effet, plutôt que de définir à nouveau un tableau $easyACL qui écraserait celui défini dans AppController,
382 12 Etienne Pallier
on hérite du $easyACL de AppController, et on en écrase seulement certaines entrées.
383 12 Etienne Pallier
On définit ces nouvelles entrées dans la méthode beforeFilter() du controleur.
384 12 Etienne Pallier
Voir par exemple les entrées définies dans la méthode beforeFilter() du controleur MaterielsController. 
385 12 Etienne Pallier
386 12 Etienne Pallier
Par exemple, une entrée comme celle-ci :
387 12 Etienne Pallier
	$this->easyACL['ALL']['view'] = 'N';
388 12 Etienne Pallier
remplacerait l'entrée par défaut de AppController
389 12 Etienne Pallier
	'ALL' => array (
390 12 Etienne Pallier
		...
391 12 Etienne Pallier
		'view' => 'Y',
392 12 Etienne Pallier
		...
393 12 Etienne Pallier
	);
394 12 Etienne Pallier
395 12 Etienne Pallier
Une entrée (un peu plus complexe) comme celle-ci :
396 12 Etienne Pallier
	$this->easyACL['ALL']['delete'] = 'status == CREATED';
397 12 Etienne Pallier
remplacerait l'entrée par défaut de AppController
398 12 Etienne Pallier
	'ALL' => array (
399 12 Etienne Pallier
		...
400 12 Etienne Pallier
		'delete' => 'Y',
401 12 Etienne Pallier
		...
402 12 Etienne Pallier
	);
403 12 Etienne Pallier
et signifierait que la suppression d'un matériel n'est possible (par défaut) que si le statut du matériel est "CREATED" (il vient d'être créé, mais il n'est pas encore validé). 
404 12 Etienne Pallier
405 12 Etienne Pallier
Enfin, une entrée (encore plus complexe) comme celle-ci :
406 12 Etienne Pallier
	$this->easyACL['USER']['edit'] = '&& nom_createur == CURRENT_USER_NAME';
407 12 Etienne Pallier
remplacerait l'entrée par défaut de AppController pour le profile USER
408 12 Etienne Pallier
	'USER' => array (
409 12 Etienne Pallier
		...
410 12 Etienne Pallier
		'edit' => 'Y',
411 12 Etienne Pallier
		...
412 12 Etienne Pallier
	);
413 1 Etienne Pallier
et ajouterait (grâce au '&&') une contrainte supplémentaire pour la modification d'un matériel (pour les USER),
414 1 Etienne Pallier
qui est que le matériel doit avoir été créé par l'utilisateur qui en fait la modification
415 1 Etienne Pallier
416 1 Etienne Pallier
... etc.
417 12 Etienne Pallier
418 12 Etienne Pallier
A vous de jouer maintenant, vous savez comment "tuner" votre application, au niveau des droits de chaque profil et sur chaque action.
419 12 Etienne Pallier
420 12 Etienne Pallier
421 12 Etienne Pallier
422 22 Etienne Pallier
-----------------
423 12 Etienne Pallier
424 23 Etienne Pallier
h3. VIRTUAL HOST (facultatif)
425 12 Etienne Pallier
426 22 Etienne Pallier
-----------------
427 22 Etienne Pallier
428 12 Etienne Pallier
But : Créer un virtual host pour pouvoir acceder au logiciel avec cette simple url "http://localhost:8081" par exemple.
429 12 Etienne Pallier
430 12 Etienne Pallier
Pour cela :
431 12 Etienne Pallier
432 12 Etienne Pallier
- Ajouter a la fin du fichier de conf apache /etc/httpd.conf (ou /etc/httpd/conf/httpd.conf, ou encore XAMPP/xamppfiles/etc/httpd.conf) la ligne :
433 12 Etienne Pallier
	Include etc/extra/labinvent.conf
434 12 Etienne Pallier
	(ou conf.d/labinvent.conf)
435 12 Etienne Pallier
436 12 Etienne Pallier
- Editer ce fichier etc/extra/labinvent.conf et y mettre ceci :
437 12 Etienne Pallier
#####################
438 12 Etienne Pallier
Listen 8081
439 12 Etienne Pallier
NameVirtualHost *:8081
440 12 Etienne Pallier
<VirtualHost *:8081>
441 12 Etienne Pallier
        ServerAdmin VOTRE_ADRESSE_MAIL
442 12 Etienne Pallier
        DocumentRoot "/Applications/XAMPP/xamppfiles/htdocs/labinvent/cakephp/app/webroot"
443 12 Etienne Pallier
        ErrorLog logs/labinvent.error_log
444 12 Etienne Pallier
        CustomLog logs/labinvent.access_log combined
445 12 Etienne Pallier
</VirtualHost>
446 12 Etienne Pallier
#####################
447 12 Etienne Pallier
448 1 Etienne Pallier
- Remplacer VOTRE_ADRESSE_MAIL par votre adresse email
449 1 Etienne Pallier
- Modifier la ligne DocumentRoot avec le chemmin absolu vers votre installation de l'application (jusqu'au dossier webroot inclus)
450 1 Etienne Pallier
451 1 Etienne Pallier
Redemarrez maintenant votre serveur web Apache
452 12 Etienne Pallier
453 12 Etienne Pallier
Voila ! Vous devriez maintenant pouvoir vous connecter a l'application avec l'url http://localhost:8081
454 1 Etienne Pallier
455 12 Etienne Pallier
456 12 Etienne Pallier
457 12 Etienne Pallier
NB: Une fois l'installation terminee, les developpeurs devraient aussi lire le document docs/HOWTO.txt 
458 12 Etienne Pallier
459 12 Etienne Pallier
460 12 Etienne Pallier
461 22 Etienne Pallier
-----------------
462 22 Etienne Pallier
463 23 Etienne Pallier
h3. MISE A JOUR (UPGRADE) en 5 petites etapes
464 22 Etienne Pallier
465 22 Etienne Pallier
-----------------
466 12 Etienne Pallier
467 12 Etienne Pallier
Nous expliquons ici comment mettre à jour votre logiciel,
468 12 Etienne Pallier
en installant une nouvelle version,
469 12 Etienne Pallier
qui doit remplacer la version actuelle (déjà installée et utilisée avec des données).
470 12 Etienne Pallier
Le but est de mettre a jour le logiciel tout en conservant la connexion a la base de données actuelle et son contenu.
471 12 Etienne Pallier
472 12 Etienne Pallier
1) Desactiver la version actuelle
473 12 Etienne Pallier
Aller dans le repertoire parent de l’application actuelle
474 12 Etienne Pallier
Le repertoire de l’application actuelle devrait avoir un nom du style labinvent/
475 12 Etienne Pallier
C’est sur ce nom que doit pointer l’URL du navigateur (ex: http://labinvent/cakephp)
476 12 Etienne Pallier
Renommer ce repertoire en "labinvent_OLD" :
477 12 Etienne Pallier
	mv labinvent labinvent_OLD
478 12 Etienne Pallier
479 12 Etienne Pallier
2) Activer la nouvelle version
480 12 Etienne Pallier
Extraire la nouvelle version à côté de l’actuelle :
481 12 Etienne Pallier
	tar xvfz labinvent_X-Y-ZZZ.tgz (par exemple : tar xvfz labinvent_1-3-460.tgz)
482 12 Etienne Pallier
==> cela doit créer un dossier labinvent_X-Y-ZZZ/ (par exemple : labinvent_1-3-460/)
483 12 Etienne Pallier
(à coté du dossier labinvent_OLD/)
484 12 Etienne Pallier
Renommer ce repertoire en "labinvent" :
485 12 Etienne Pallier
	mv labinvent_X-Y-ZZZ.tgz labinvent (par exemple : mv labinvent_1-3-460 labinvent)
486 12 Etienne Pallier
487 12 Etienne Pallier
3) Aller dans le dossier d’installation de la NOUVELLE version
488 12 Etienne Pallier
cd labinvent/install/
489 12 Etienne Pallier
490 12 Etienne Pallier
4) Executer le script installation.sh
491 12 Etienne Pallier
./installation.sh
492 12 Etienne Pallier
ATTENTION : Répondre "Non" à la question "Voulez-vous creer la base de donnees ?"
493 12 Etienne Pallier
494 1 Etienne Pallier
5) Récupérer la configuration de l’application actuelle dans la nouvelle
495 1 Etienne Pallier
- Configuration Base de données : 
496 12 Etienne Pallier
Copier le fichier labinvent_OLD/cakephp/app/Config/database.php de l’application actuelle dans la nouvelle, c’est à dire dans labinvent/cakephp/app/Config/
497 1 Etienne Pallier
- Configuration Générale : 
498 1 Etienne Pallier
Adapter le nouveau fichier labinvent/cakephp/app/Config/labinvent.php à partir de ce que vous avez dans le même fichier de l’application actuelle,
499 1 Etienne Pallier
c'est à dire dans labinvent_OLD/cakephp/app/Config/labinvent.php
500 12 Etienne Pallier
(la commande « diff » peut aider à voir ce qui a changé)
501 12 Etienne Pallier
502 12 Etienne Pallier
503 23 Etienne Pallier
-----------------
504 23 Etienne Pallier
505 1 Etienne Pallier
h2. Comment accéder au site redmine depuis l'extérieur ?
506 23 Etienne Pallier
507 23 Etienne Pallier
-----------------
508 23 Etienne Pallier
509 1 Etienne Pallier
510 1 Etienne Pallier
1) Créer un tunnel (entre le port local 9443 et le port distant 443 du serveur web irap, via la passerelle)
511 1 Etienne Pallier
512 1 Etienne Pallier
ssh -L 9443:projects.irap.omp.eu:443 MONLOGINDULABO@PASSERELLE.irap.omp.eu
513 1 Etienne Pallier
514 1 Etienne Pallier
(Pour les personnes qui utilisent Windows, vous pouvez faire la même chose avec le logiciel Putty, en vous inspirant de ce qui est décrit au point 4) a) de cet article http://planetoweb.cesr.fr/twiki/bin/view/Main/HowtoInformatique#Se_connecter_un_serveur_linux_en) 
515 1 Etienne Pallier
516 2 Etienne Pallier
2) Pointer son navigateur sur https://localhost:9443
517 3 Etienne Pallier
518 5 Etienne Pallier
h2. Dépôt SVN
519 5 Etienne Pallier
520 10 Etienne Pallier
https://usvn-inventirap.irap.omp.eu/repo/inventirap/trunk/
521 5 Etienne Pallier
522 5 Etienne Pallier
h2. Mailing list
523 1 Etienne Pallier
524 1 Etienne Pallier
usvn-repo_inventirap AT irap.omp.eu
525 1 Etienne Pallier
526 1 Etienne Pallier
(https://listes.irap.omp.eu/wws/info/usvn-repo_inventirap)