Я работаю над веб-приложением на PHP и AngularJS.
Я хочу ограничить часть моей панели навигации для пользователей, у которых есть специальная строка.(Как администраторы)
Я сделал функцию angularJS в моем контроллере, которая вызывает функцию в моем контроллере PHP.(Я работаю с MVC и без PHP-фреймворка)
Проблема в том, что я передаю переменную сессию в параметре, которую я могу идентифицировать, используя моего пользователя в моей базе данных, и она не работает.
Функция не работает.Нет ошибок в логах, нет ошибок в консоли, ничего.Часть «Admin» моей панели навигации не вернется, если я получу право на ее просмотр.
PHP-функция
function verifierHabilitation ( $req, $api ){
if(droitsModificationAdmin( $_SESSION['nni'] ) == "administration") {
return 1;
}
}
Я вызываю свою функцию droitsModificationAdmin () дляпроверьте строку, и я использую переменную session в параметре.
AngularJS Вызов функции в моей панели навигации
<li class="nav-item" ng-if="droitsAdmin() == 1" >
<h2 ng-class="{ 'grdf-ss-title' : isActive('/admin') }" >
<a class="nav-link" href="#/admin">Admin</a>
</h2>
</li>
Здесь я использую ng-if для проверки возврата моегопредыдущая функция.
Я не знаю, в чем проблема.У вас есть идеи?
РЕДАКТИРОВАТЬ:
Вот весь код, который я использовал:
AJS: В моем controller.js
$scope.droitsAdmin = function() { factoryDossier.verifierHabilitation(); };
В моем factory.js
verifierHabilitation : function(){
return $http({
url: 'controleurs/Controleur-Admin.php'
,method: "POST"
,data: $.param({
fonction : 'verifierHabilitation'
})
,headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
},
PHP: Controller.php
function verifierHabilitation ( $req, $api ){
if(droitsModificationAdmin( $_SESSION['nni'] ) == "administration") {
echo "ceci est un test";
return 1;
}
}
Здесь я вызываю функцию, которая находится в глобальном контроллере.
Global Controller
function droitsModificationAdmin( $nni ){
$bdd = new Model_Habilitation( PDO_bdd_app() );
$utilisateur = $bdd->habilitation( $nni );
return ( $utilisateur[0]['h_habilitation'] );
}
Model.php
public function habilitation( $nni ){
$sql = $this->grea_ouest->prepare('SELECT h_habilitation FROM '.$this->table_habilitation.' h WHERE h.h_nni = :nni');
$sql->execute( array( ':nni' => $nni ) );
return $sql->fetchAll(PDO::FETCH_ASSOC);
}
Controleur-Configuration.php
(извините, код на французском)
<?php
require_once('Controleur-Configuration.php');
require_once('api_rest.php');
require_once(dirname(__FILE__).'/../class/ClassAdmin.php');
require_once(model_url('Model_Admin'));
require_once('Helpers.php');
#############################################################
gestion_session();//Gestion à partir du fichier configuration
#############################################################
$api = new Rest;
try {
$req = $api->get_request();
if( function_exists( $req['fonction'] ) ){ $req['fonction']( $req, $api ); } else { throw new Exception('Fonction inexistante'); }
} catch(Exception $e){
$api->response(array(), 501);
}
/**
* Retourne les informations d'un admin
* @param $req array : les données passées en parametres
* @param $api Rest : l'objet Rest permettant l'interaction avec le client.
* @return array : les informations du dossier.
*/
function getAdmins( $req, $api ){
$bdd = new Model_Admin( PDO_bdd_app() );
try{
$Admins = $bdd->getAdmins();
foreach($Admins as $key=>$Admin){ $Admins[$key] = $Admin->json_encode(); }
$api->response( $Admins, 200);
} catch(Exception $e){ error_log( $e ); $api->response( "", 500); }
}
/**
* Retourne les habilitations
* @param $req array : les données passées en parametres
* @param $api Rest : l'objet Rest permettant l'interaction avec le client.
* @return array : les informations du dossier.
*/
function getHabilitations( $req, $api ){
$bdd = new Model_Admin( PDO_bdd_app() );
try{
$Habilitations = $bdd->getHabilitations();
foreach($Habilitations as $key=>$Habilitation){ $Habilitations[$key] = $Habilitation->json_encode(); }
$api->response( $Habilitations, 200);
} catch(Exception $e){ error_log( $e ); $api->response( "", 500); }
}
/**
* Met a jour un habilité
* @param $req array : les données passées en parametres
* @param $api Rest : l'objet Rest permettant l'interaction avec le client.
* @return array : les informations du CA.
* @throws Exception : retourne une erreur 500.
*/
function updateAdmin( $req, $api ){
$bdd = new Model_Admin( PDO_bdd_app() );
try {
if( isset($req['NewAdmin']) ){
$admin = cast( $req['NewAdmin'], 'Admin' );
} else { $api->response( array( "erreur" => array(array("Aucunes informations saisies"))), 409); }
try
{
$bdd = new Model_Admin( PDO_bdd_app() );
$newAdmin = $bdd->updateAdmin( $admin );
$api->response( array( "dev"=>$newAdmin->json_encode(), "info"=>array("Le développeur a été modifié")), 200);
} catch( Exception $e ){ error_log( $e ); $api->response( "", 500); }
} catch( Exception $e ){ error_log( $e ); $api->response( "", 500); }
}
/**
* Change l'habilitation d'un utilisateur
* @param $req array : les données passées en parametres
* @param $api Rest : l'objet Rest permettant l'interaction avec le client.
* @return array : les informations du CA.
* @throws Exception : retourne une erreur 500.
*/
function changerHabilitation ($req, $api){
$bdd = new Model_Admin( PDO_bdd_app() );
try{
$habilitation = $bdd->changerHabilitation( $req['nni'], $req['habilitation'] );
} catch(Exception $e){
error_log( $e );
$api->response( $e, 500);
}
}
function verifierHabilitation ( $req, $api ){
if(droitsModificationAdmin( $_SESSION['nni'] ) == "administration") {
echo "ceci est un test";
return 1;
}
}
/**
* Approuve un utilisateur
* @param $req array : les données passées en parametres
* @param $api Rest : l'objet Rest permettant l'interaction avec le client.
* @return array : les informations du CA.
* @throws Exception : retourne une erreur 500.
*/
function approuverUtilisateur ($req, $api){
$bdd = new Model_Admin( PDO_bdd_app() );
try{
$utilisateur = $bdd->approuverUtilisateur( $req['nni'] );
} catch(Exception $e){
error_log( $e );
$api->response( $e, 500);
}
}
/**
* Refuse un utilisateur
* @param $req array : les données passées en parametres
* @param $api Rest : l'objet Rest permettant l'interaction avec le client.
* @return array : les informations du CA.
* @throws Exception : retourne une erreur 500.
*/
function refuserUtilisateur ($req, $api){
$bdd = new Model_Admin( PDO_bdd_app() );
try{
$utilisateur = $bdd->refuserUtilisateur( $req['nni'] );
} catch(Exception $e){
error_log( $e );
$api->response( $e, 500);
}
}
?>