Function to check a row in database with session variable not working

I’m working on a web app, in PHP and AngularJS.

I want to restrict a part of my navbar for users that has a special row. (Like admins)

I made an angularJS function in my controller, which calls a function in my PHP Controller. (I’m working on with MVC and no PHP framework)

The problem is that I pass a variable session in parameter, which the one I can identify my user in my database, and it’s not working.

The function is not working. No erros in the logs, no errors in the console, nothing. The “Admin” part of my navbar won’t go back if I got the good right to see it.

PHP Function

function verifierHabilitation ( $req, $api ){
    if(droitsModificationAdmin( $_SESSION['nni'] ) == "administration") {
        return 1;
    }
}

I’m calling my function droitsModificationAdmin() to verify the row, and I’m using a variable session in parameter.

AngularJS Function Call in my navbar

<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>

Here I’m using ng-if to verify the return of my previous function.

I don’t know where the problem is. Do you have any idea ?

EDIT :

Here is all the code I used :

AJS :
In my controller.js

$scope.droitsAdmin = function() { factoryDossier.verifierHabilitation(); };

In my 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;
    }
}

Here I am calling the function which is in the global controller.

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

(Sorry the code is in french)

<?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);
    }
}

?>

Source: AngularJS