menu_view.ctp 10.4 KB
<?php 
use Cake\ORM\TableRegistry;
?>

<h3 style="margin-top: 20px;"><?php echo $pluralHumanName;?></h3>
<ul>
	<?php
	/**
	 * menu_vieuw.ctp
	 * Lower left menu bar definition
	 * Buttons definition and action : "retour a la liste"  + "Edit" + "Suppr." 
	 * Used with dom, categorie,sscat, emprunt, suivi, utilisateur
	 */
		$t = strtolower($singularHumanName);
		$t = str_replace('groupes', 'groupe', $t);
		$t = str_replace('thematique', 'thémat.', $t);
		$t = str_replace('metier', 'métier', $t);
		$t = str_replace('categorie', 'catégorie', $t);
		$t = str_replace('unite','unité',$t);
	?>
	<!-- RETOUR action -->
	<li>
		<?php
		if($this->request->session()->read("retourForm1")) {
			echo $this->Html->link ('<i class="icon-arrow-left"></i> Retour', 'javascript:window.history.go(-2)', ['escape' => false]);
		} else {
			echo $this->Html->link ('<i class="icon-arrow-left"></i> Retour', 'javascript:window.history.go(-1)', ['escape' => false]);	
		}
				
		
				
		?>
	</li>
	
	<!-- EDIT action -->
	<li><?php
	$isAuthorized = false;
	
	if($singularHumanName == 'Matériel') {
		if (in_array($materiel->status, ['CREATED', 'VALIDATED'])) {
			if((($role == 'Utilisateur'|| $role == 'Responsable') && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']))) {
				$isAuthorized = true;
			} else if($role == 'Responsable') {
				if(isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id) {
					$isAuthorized = true;
				}
				else if (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id) {
					$isAuthorized = true;
				}
				else {
					$isAuthorized = false;
				}
			}
		}else {
			if(in_array($role, ['Administration Plus', 'Super Administrateur'])) {
				$isAuthorized = true;
			}
		}
	}
	else if (in_array($singularHumanName, ['Suivi', 'Emprunt'])) {
		if (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {
			$isAuthorized = true;
		}else {
			if($singularHumanName == 'Suivi') {
				if(in_array($username, [$suivi->nom_createur])) {
					$isAuthorized = true;
				}
				else if($role == 'Responsable') {
					if(isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $suivi->groupes_metier_id == $userConnected->groupes_metier_id) {
						$isAuthorized = true;
					}
					else if (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id) {
						$isAuthorized = true;
					}
					else {
						$isAuthorized = false;
					}
				}
			} else {
				if(in_array($username, [$emprunt->nom_createur, $emprunt->nom_emprunteur])) {
					$isAuthorized = true;
				}
				else if ($role == 'Responsable') {
					$isAuthorized = true;
				}
			}
		}
	}
	else if ($singularHumanName == 'Utilisateur') {
		if($role == 'Super Administrateur') {
			$isAuthorized = true;
		}
	}
	else if ($singularHumanName == 'Fournisseur') {
		if($role == 'Super Administrateur') {
			$isAuthorized = true;
		}else if($role == 'Administration') {
					$isAuthorized = true;
				}
	}
	else if ($singularHumanName == 'Document') {
		if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {
			$isAuthorized = true;
		}
		$doc = TableRegistry::get('Documents')->get((int)$this->request->getAttribute('params')['pass'][0]);

			$id = $doc->get('materiel_id');
			
			if(empty($id)) {
				$id = $doc->get('suivi_id');
				if ($role == 'Responsable') {
					$suiviTable = TableRegistry::get('Suivis');
					if(isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa) {
						$isAuthorized = ($suiviTable->exists(['id' => $id, 'groupes_metier_id' => $userConnected->groupes_metier_id]));
					}
					else if (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa) {
						$isAuthorized = ($suiviTable->exists(['id' => $id, 'groupes_thematique_id' => $userConnected->groupe_thematique_id]));
					}
					else {
						$isAuthorized = false;
					}
				}
				if ($role == 'Utilisateur') {
					$isAuthorized = $suiviTable->exists(['id' => $id, 'nom_createur' => $username]);
				}
			} else {
				$materielTable = TableRegistry::get('Materiels');
				if ($role == 'Responsable') {
				
					if(isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa) {
						$isAuthorized = ($materielTable->exists(['id' => $id, 'groupes_metier_id' => $userConnected->groupes_metier_id]));
					}
					else if (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa) {
						$isAuthorized = ($materielTable->exists(['id' => $id, 'groupes_thematique_id' => $userConnected->groupe_thematique_id]));
					}
					else {
						$isAuthorized = false;
					}	
				}
				if ($role == 'Utilisateur') {
					$isAuthorized = ($materielTable->exists(['id' => $id, 'nom_createur' => $username]) || $materielTable->exists(['id' => $id, 'nom_responsable' => $username]));
				}		
			}
			
	}else if ($singularHumanName == 'Formulaire') {
		
			$isAuthorized = false;
		
	}else {
 		if (in_array($role, ['Administration Plus', 'Super Administrateur'])) {
 			$isAuthorized = true;
		}
	}
	if ($isAuthorized == true) {
			$action = '';
			if(strstr($t, 'catégorie') || strstr($t,'unité') ||  strstr($t,'formule'))
				$action = ' Editer cette';
			elseif ( strstr($t, 'utilisateur') || strstr($t, 'emprunt'))
				$action = ' Editer cet';
			else
				$action = ' Editer ce';
	
			$action = "$action $t";
	
			echo $this->Html->link('<i class="icon-pencil"></i>' . $action,
				['action' => 'edit', $lien],
				['escape' => false,'onclick' => 'return true;']
				);
	}
	



		?>
	</li>
	
	<!-- DELETE action -->
	<li>
		<?php 
		$isAuthorized = false;
		
		if($singularHumanName == 'Matériel') {
			if ($materiel->status == 'CREATED') {
				if((($role == 'Utilisateur' || $role == 'Responsable') && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']))) {
					$isAuthorized = true;
				} 
				else if($role == 'Responsable') {
					if(isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $userConnected->groupes_metier_id) {
						$isAuthorized = true;
					}
					else if (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id) {
						$isAuthorized = true;
					}
					else {
						$isAuthorized = false;
					}
				}
			}
		}
		else if (in_array($singularHumanName, ['Suivi', 'Emprunt'])) {
			if (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {
				$isAuthorized = true;
			}else {
				if($singularHumanName == 'Suivi') {
					if(in_array($username, [$suivi->nom_createur])) {
						$isAuthorized = true;
					} 
					else if($role == 'Responsable') {
						if(isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa && $suivi->groupes_metier_id == $userConnected->groupes_metier_id) {
							$isAuthorized = true;
						}
						else if (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa && $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id) {
							$isAuthorized = true;
						}
						else {
							$isAuthorized = false;
						}
					}
				} else {
					if(in_array($username, [$emprunt->nom_createur, $emprunt->nom_emprunteur])) {
						$isAuthorized = true;
					}
					else if ($role == 'Responsable') {
						$isAuthorized = true;
					}
				}
			}
		} 	
		else if ($singularHumanName == 'Document') {
		if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {
			$isAuthorized = true;
		}
		$doc = TableRegistry::get('Documents')->get((int)$this->request->getAttribute('params')['pass'][0]);

			$id = $doc->get('materiel_id');
			
			if(empty($id)) {
				$id = $doc->get('suivi_id');
				if ($role == 'Responsable') {
					$suiviTable = TableRegistry::get('Suivis');
					if(isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa) {
						$isAuthorized = ($suiviTable->exists(['id' => $id, 'groupes_metier_id' => $userConnected->groupes_metier_id]));
					}
					else if (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa) {
						$isAuthorized = ($suiviTable->exists(['id' => $id, 'groupes_thematique_id' => $userConnected->groupe_thematique_id]));
					}
					else {
						$isAuthorized = false;
					}
				}
				if ($role == 'Utilisateur') {
					$isAuthorized = $suiviTable->exists(['id' => $id, 'nom_createur' => $username]);
				}
			} else {
				$materielTable = TableRegistry::get('Materiels');
				if ($role == 'Responsable') {
					if(isset($userConnected->groupes_metier_id) && $userConnected->groupes_metier_id != $idGmNa) {
						$isAuthorized = ($materielTable->exists(['id' => $id, 'groupes_metier_id' => $userConnected->groupes_metier_id]));
					}
					else if (isset($userConnected->groupe_thematique_id) && $userConnected->groupe_thematique_id != $idGtNa) {
						$isAuthorized = ($materielTable->exists(['id' => $id, 'groupes_thematique_id' => $userConnected->groupe_thematique_id]));
					}
					else {
						$isAuthorized = false;
					}	
				}
				if ($role == 'Utilisateur') {
					$isAuthorized = ($materielTable->exists(['id' => $id, 'nom_createur' => $username]) || $materielTable->exists(['id' => $id, 'nom_responsable' => $username]));
				}		
			}
			
	}
		else {
			if (in_array($role, ['Super Administrateur'])) {
				$isAuthorized = true;
			}
		}
		
		if($isAuthorized == true) {
				$action = ''; 
				if(strstr($t, 'catégorie') || strstr($t,'unité') || strstr($t,'formule'))
					$action = ' Supprimer cette';
				elseif ( strstr($t, 'utilisateur') || strstr($t, 'emprunt') )
					$action = ' Supprimer cet';
				else 
					$action = ' Supprimer ce';
			
				echo $this->Form->postLink('<i class="icon-trash"></i>' . $action . ' ' . $t,
					['action' => 'delete', $lien],
					['escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer '.$lien.' ?')]);
		}

				
		?>
	</li>
</ul>