level_1 ){ /****************************/ /* authentification (login) */ /****************************/ case 'authentification': $areSetParam = isset($request->username) && isset($request->password); // les arguments existent $typeOkParam = $areSetParam && is_string($request->username) && is_string($request->password); // ils sont tous 2 des string $nEmptyParam = $typeOkParam && strlen($request->username) > 0 && strlen($request->password) > 0; // d'au moins 1 caractère if( $areSetParam && $typeOkParam && $nEmptyParam ) $answer->request = user_authentification($request->username, $request->password); else{ if ( !$areSetParam ) $answer->request= 'missing_param'; elseif( !$typeOkParam ) $answer->request = 'wrong_type'; else $answer->request = 'empty_param'; } break; /*****************/ /* déconnection */ /*****************/ case 'exit': $_SESSION['username'] = null; // on supprime l'identifiant if( $_SESSION['username'] == null ) $answer->request = 'success'; // succès else $answer->request = 'error'; break; /***********/ /* DEFAULT */ /***********/ default: $answer->request = 'unknown_level_1'; break; } } /* [2] AUTHENTIFICATION ============================================================*/ /* [a] userlist */ function user_getUserList(){ $userlistFile = file_get_contents("src/userlist.json"); return json_decode( $userlistFile ); } /* [b] CONNECTION ========================================================*/ /* GESTION DE L'AUTHENTIFICATION D'UN UTILISATEUR * * @param username Identifiant de l'utilisateur * @param password Mot de passe de l'utilisateur * * si @username est référencé et que le mot de passe associé vaut @password * alors @return TRUE sinon FALSE * + mise ajout à @answer * * Les variables sessions suivantes sont définies : * - $_SESSION['permissions'] * - $_SESSION['userid'] * - $_SESSION['username'] * * @return Boolean true si l'utilisateur est ok */ function user_authentification($username, $password){ // [1] On récupère la liste d'utilisateurs (/src/userlist.json) $userList = user_getUserList(); // [2] On check l'existence de l'utilisateur if( isset($userList->{$username}) ){ // [3] On check le mot de passe if( $userList->{$username}->password == $password ){ // on définit les variables session $_SESSION['username'] = $username; $_SESSION['permissions'] = $userList->{$username}->permissions; return 'success'; }else return 'wrong_password'; }else return 'unknown_user'; } ?>