mirror of
https://github.com/pierre42100/ComunicAPI
synced 2025-06-19 00:25:18 +00:00
Changed user login strategy
This commit is contained in:
@ -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 = ?";
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user