INA-12 | Add social apple to the OAuth.php

This commit is contained in:
Nikola Cirkovic 2022-06-11 05:26:47 +02:00
parent b2420a817d
commit 79efa59f36

View File

@ -30,6 +30,7 @@ class OAuth
const SOCIAL_TWITTER = 5; const SOCIAL_TWITTER = 5;
const SOCIAL_BITBUCKET = 6; const SOCIAL_BITBUCKET = 6;
const SOCIAL_MICROSOFT = 7; const SOCIAL_MICROSOFT = 7;
const SOCIAL_APPLE = 8;
/** /**
* @param Socialite $user * @param Socialite $user
@ -39,8 +40,8 @@ class OAuth
{ {
/** 1. Ensure user arrives on the correct provider **/ /** 1. Ensure user arrives on the correct provider **/
$query = [ $query = [
'oauth_user_id' =>$socialite_user->getId(), 'oauth_user_id' => $socialite_user->getId(),
'oauth_provider_id'=>$provider, 'oauth_provider_id' => $provider,
]; ];
if ($user = MultiDB::hasUser($query)) { if ($user = MultiDB::hasUser($query)) {
@ -55,12 +56,12 @@ class OAuth
{ {
$name = trim($name); $name = trim($name);
$last_name = (strpos($name, ' ') === false) ? '' : preg_replace('#.*\s([\w-]*)$#', '$1', $name); $last_name = (strpos($name, ' ') === false) ? '' : preg_replace('#.*\s([\w-]*)$#', '$1', $name);
$first_name = trim(preg_replace('#'.preg_quote($last_name, '/').'#', '', $name)); $first_name = trim(preg_replace('#' . preg_quote($last_name, '/') . '#', '', $name));
return [$first_name, $last_name]; return [$first_name, $last_name];
} }
public static function providerToString(int $social_provider) : string public static function providerToString(int $social_provider): string
{ {
switch ($social_provider) { switch ($social_provider) {
case SOCIAL_GOOGLE: case SOCIAL_GOOGLE:
@ -77,10 +78,12 @@ class OAuth
return 'bitbucket'; return 'bitbucket';
case SOCIAL_MICROSOFT: case SOCIAL_MICROSOFT:
return 'microsoft'; return 'microsoft';
case SOCIAL_APPLE:
return 'apple';
} }
} }
public static function providerToInt(string $social_provider) : int public static function providerToInt(string $social_provider): int
{ {
switch ($social_provider) { switch ($social_provider) {
case 'google': case 'google':
@ -97,6 +100,8 @@ class OAuth
return SOCIAL_BITBUCKET; return SOCIAL_BITBUCKET;
case 'microsoft': case 'microsoft':
return SOCIAL_MICROSOFT; return SOCIAL_MICROSOFT;
case 'apple':
return SOCIAL_APPLE;
} }
} }