Changed user login strategy

This commit is contained in:
Pierre
2017-05-19 18:07:52 +02:00
parent 033da4e0e3
commit 6819628b3e
5 changed files with 99 additions and 39 deletions

View File

@ -8,16 +8,16 @@
class Tokens{
/**
* Check request tokens
* Check request client tokens
*
* @return Boolean Depends of the validity of the tokens
*/
public function checkRequestTokens(){
public function checkClientRequestTokens(){
if(!isset($_POST['serviceName']) OR !isset($_POST['serviceToken']))
return false; //No token specified
//Check tokens
if(!$serviceID = $this->validateTokens($_POST['serviceName'], $_POST['serviceToken']))
if(!$serviceID = $this->validateClientTokens($_POST['serviceName'], $_POST['serviceToken']))
return false;
//Save service ID in a constant
@ -28,13 +28,13 @@ class Tokens{
}
/**
* Check API credentials (tokens)
* Check client API credentials (tokens)
*
* @param String $serviceName The name of the service
* @param String $token The service's token
* @return Boolean False or Tokens ID / Depending of validity of credentials
*/
private function validateTokens($serviceName, $token){
private function validateClientTokens($serviceName, $token){
//Prepare DataBase request
$tableName = "API_ServicesToken";
$conditions = "WHERE serviceName = ? AND token = ?";

View File

@ -64,7 +64,7 @@ class User{
* @param Integer $serviceID The ID of the service
* @return False if it fails, or tokens if success
*/
function getUserLoginTokenByIDs($userID, $serviceID){
public function getUserLoginTokenByIDs($userID, $serviceID){
//Prepare database request
$conditions = "WHERE ID_utilisateurs = ? AND ID_API_ServicesToken = ?";
$values = array(
@ -90,7 +90,7 @@ class User{
* @param String $serviceID The service ID
* @return Boolean False if it fails
*/
function deleteUserLoginToken(array $tokens, $serviceID){
public function deleteUserLoginToken(array $tokens, $serviceID){
//Check the number of given tokens
if(count($tokens) != 2)
return false;
@ -112,20 +112,20 @@ class User{
}
/**
* Get User Infos from token
* Get User ID from token
*
* @param Array $tokens The user login tokens
* @param String $serviceID The ID of the service
* @return Array The result of the function (empty one if it fails)
* @return Integer User ID (0 for a failure)
*/
function getUserInfosFromToken(array $tokens, $serviceID): array {
public function getUserIDfromToken($serviceID, array $tokens){
//Check token number
if(count($tokens) != 2)
return array();
return 0;
//Prepare database request
$tablesName = "utilisateurs, API_userLoginToken";
$conditions = "WHERE utilisateurs.ID = API_userLoginToken.ID_utilisateurs AND API_userLoginToken.ID_API_ServicesToken = ? AND API_userLoginToken.token1 = ? AND API_userLoginToken.token2 = ?";
$tablesName = "API_userLoginToken";
$conditions = "WHERE API_userLoginToken.ID_API_ServicesToken = ? AND API_userLoginToken.token1 = ? AND API_userLoginToken.token2 = ?";
$conditionsValues = array(
$serviceID,
$tokens[0],
@ -135,24 +135,53 @@ class User{
//Perform request
$userInfos = CS::get()->db->select($tablesName, $conditions, $conditionsValues);
//Check if result is correct or not
if(count($userInfos) == 0)
return 0; //No result
//Return ID
return $userInfos[0]["ID_utilisateurs"];
}
/**
* Get User Infos
*
* @param Integer $userID The user ID
* @return Array The result of the function (user informations) (empty one if it fails)
*/
public function getUserInfos($userID): array {
//Prepare database request
$tablesName = "utilisateurs";
$conditions = "WHERE utilisateurs.ID = ?";
$conditionsValues = array(
$userID*1,
);
//Perform request
$userInfos = CS::get()->db->select($tablesName, $conditions, $conditionsValues);
//Check if result is correct or not
if(count($userInfos) == 0)
return array(); //No result
//Prepare return
$return = array();
$return['userID'] = $userInfos[0]['ID_utilisateurs'];
$return['userID'] = $userInfos[0]['ID'];
$return['firstName'] = $userInfos[0]['nom'];
$return['lastName'] = $userInfos[0]['prenom'];
$return['mailAdress'] = $userInfos[0]['mail'];
$return['accountCreationDate'] = $userInfos[0]['date_creation'];
$return['publicPage'] = $userInfos[0]['public'];
$return['openPage'] = $userInfos[0]['pageouverte'];
$return['noCommentOnHisPage'] = $userInfos[0]['bloquecommentaire'];
$return['allowPostFromFriendOnHisPage'] = $userInfos[0]['autoriser_post_amis'];
$return['noCommentOnHisPage'] = $userInfos[0]['bloquecommentaire'];
$return['virtualDirectory'] = $userInfos[0]['sous_repertoire'];
$return['personnalWebsite'] = $userInfos[0]['site_web'];
$return['publicFriendList'] = $userInfos[0]['liste_amis_publique'];
$return['isPublicFriendList'] = $userInfos[0]['liste_amis_publique'];
//Only the user may get its mail address
if(userID === $userID)
$return['mailAdress'] = $userInfos[0]['mail'];
//Return result
return $return;