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

<h3 style="margin-top: 20px;"><?php echo $pluralHumanName;?></h3>
<ul>
	<?php
/**
 * menu_view.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->getSession()->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($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) {
                $isAuthorized = true;
            } else if (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $priviledgedUser->groupes_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($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $suivi->groupes_metier_id == $priviledgedUser->groupes_metier_id) {
                    $isAuthorized = true;
                } else if (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa && $suivi->groupes_thematique_id == $priviledgedUser->groupes_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($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa) {
                $isAuthorized = ($suiviTable->exists([
                    'id' => $id,
                    'groupes_metier_id' => $priviledgedUser->groupes_metier_id
                ]));
            } else if (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa) {
                $isAuthorized = ($suiviTable->exists([
                    'id' => $id,
                    'groupes_thematique_id' => $priviledgedUser->groupes_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($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa) {
                $isAuthorized = ($materielTable->exists([
                    'id' => $id,
                    'groupes_metier_id' => $priviledgedUser->groupes_metier_id
                ]));
            } else if (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa) {
                $isAuthorized = ($materielTable->exists([
                    'id' => $id,
                    'groupes_thematique_id' => $priviledgedUser->groupes_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($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id) {
                $isAuthorized = true;
            } else if (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa && $materiel->groupes_thematique_id == $priviledgedUser->groupes_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($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa && $suivi->groupes_metier_id == $priviledgedUser->groupes_metier_id) {
                    $isAuthorized = true;
                } else if (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa && $suivi->groupes_thematique_id == $priviledgedUser->groupes_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($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa) {
                $isAuthorized = ($suiviTable->exists([
                    'id' => $id,
                    'groupes_metier_id' => $priviledgedUser->groupes_metier_id
                ]));
            } else if (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa) {
                $isAuthorized = ($suiviTable->exists([
                    'id' => $id,
                    'groupes_thematique_id' => $priviledgedUser->groupes_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($priviledgedUser->groupes_metier_id) && $priviledgedUser->groupes_metier_id != $idGmNa) {
                $isAuthorized = ($materielTable->exists([
                    'id' => $id,
                    'groupes_metier_id' => $priviledgedUser->groupes_metier_id
                ]));
            } else if (isset($priviledgedUser->groupes_thematique_id) && $priviledgedUser->groupes_thematique_id != $idGtNa) {
                $isAuthorized = ($materielTable->exists([
                    'id' => $id,
                    'groupes_thematique_id' => $priviledgedUser->groupes_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) {
	$determinant = '';
    $action = '';
    if (strstr($t, 'catégorie') || strstr($t, 'unité') || strstr($t, 'formule')) {
        $action = ' Supprimer cette';
        $determinant = 'cette';      
    } elseif (strstr($t, 'utilisateur') || strstr($t, 'emprunt')) {
        $action = ' Supprimer cet';
        $determinant = 'cet';
    } else {
        $action = ' Supprimer ce';
        $determinant = 'ce';
    }
    
    echo $this->Form->postLink('<i class="icon-trash"></i>' . $action . ' ' . $t, [
        'action' => 'delete',
        $lien
    ], [
        'escape' => false,
        'confirm' => __('Êtes-vous sur de vouloir supprimer '.$determinant.' '. $t . ' ?')
    ]);
}






?>
	</li>
	
	<li>
	
	<?php 
	//MI Add action dans le cas des utilisateurs, et pour le superadmin
	//cela évite de devoir quitter la page pour repartir à la liste des utilisateurs pour faire un ajout
	
	
	if ($role == 'Super Administrateur' && strstr($t, 'utilisateur')) {
		$action = ' Ajouter un';
		echo $this->Form->postLink('<i class="icon-plus"></i>' . $action . ' ' . $t, [
				'action' => 'add',
				$lien
		], [
				'escape' => false,
				'confirm' => __('Êtes-vous sur de vouloir quitter la page pour ajouter un utilisateur ?')
		]);
	}
	
	
	?>
	</li>
</ul>