mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-25 10:20:38 +00:00
added socialite provider for the user
This commit is contained in:
@@ -37,8 +37,9 @@ class CreateNewUserAction extends Controller
|
||||
|
||||
// Create user
|
||||
$user = User::create([
|
||||
'password' => ! $socialite_auth ? bcrypt($data['password']) : null,
|
||||
'email' => $data['email'],
|
||||
'password' => ! $socialite_auth ? bcrypt($data['password']) : null,
|
||||
'oauth_provider' => $socialite_auth ? $data->oauth_provider : null,
|
||||
'email' => $data['email'],
|
||||
]);
|
||||
|
||||
// Mark as verified if verification is disabled
|
||||
|
||||
@@ -22,9 +22,10 @@ class CheckAccountController extends Controller
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => $user->settings->name,
|
||||
'avatar' => $user->settings->avatar,
|
||||
'verified' => $user->email_verified_at ? 1 : 0,
|
||||
'name' => $user->settings->name,
|
||||
'avatar' => $user->settings->avatar,
|
||||
'verified' => $user->email_verified_at ? 1 : 0,
|
||||
'oauth_provider' => $user->password ? null : $user->oauth_provider,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class SocialiteAuthenticationController extends Controller
|
||||
|
||||
return response()->json([
|
||||
'url' => $url
|
||||
]);
|
||||
], 200);
|
||||
}
|
||||
|
||||
public function callback($provider)
|
||||
@@ -30,7 +30,7 @@ class SocialiteAuthenticationController extends Controller
|
||||
$provider_user = Socialite::driver($provider)->stateless()->user();
|
||||
|
||||
// Check if user exist already
|
||||
$user = User::whereEmail($provider_user->email)->first();
|
||||
$user = User::whereEmail($provider_user->email)->first();
|
||||
|
||||
if($user) {
|
||||
// Login User
|
||||
@@ -38,7 +38,10 @@ class SocialiteAuthenticationController extends Controller
|
||||
|
||||
} else {
|
||||
// Add user avatar from socialite
|
||||
$provider_user->avatar = get_socialite_avatar($provider_user->avatar);
|
||||
$provider_user->avatar = store_socialite_avatar($provider_user->avatar);
|
||||
|
||||
// Add provider name
|
||||
$provider_user->oauth_provider = $provider;
|
||||
|
||||
// Create User
|
||||
($this->createNewUser)($provider_user);
|
||||
|
||||
@@ -54,6 +54,7 @@ class User extends Authenticatable implements MustVerifyEmail
|
||||
protected $fillable = [
|
||||
'email',
|
||||
'password',
|
||||
'oauth_provider',
|
||||
];
|
||||
|
||||
protected $hidden = [
|
||||
|
||||
+35
-32
@@ -344,14 +344,7 @@ if (! function_exists('store_avatar')) {
|
||||
$intervention = Image::make($image->getRealPath());
|
||||
|
||||
// Generate avatar sizes
|
||||
collect(config('vuefilemanager.avatar_sizes'))
|
||||
->each(function ($size) use ($intervention, $avatar_name) {
|
||||
// fit thumbnail
|
||||
$intervention->fit($size['size'], $size['size'])->stream();
|
||||
|
||||
// Store thumbnail to disk
|
||||
Storage::put("avatars/{$size['name']}-{$avatar_name}", $intervention);
|
||||
});
|
||||
generate_avatar_thumbnails($intervention, $avatar_name);
|
||||
|
||||
// Return path to image
|
||||
return $avatar_name;
|
||||
@@ -1017,30 +1010,40 @@ if(! function_exists('get_socialite_avatar')) {
|
||||
/**
|
||||
* Get socialite avatar create and store his thumbnails
|
||||
*/
|
||||
function get_socialite_avatar($avatar)
|
||||
{
|
||||
$image = file_get_contents($avatar);
|
||||
|
||||
// Generate avatar name
|
||||
$avatar_name = Str::uuid() . '.jpg';
|
||||
|
||||
// Create intervention image
|
||||
$intervention = Image::make($image);
|
||||
|
||||
// Generate avatar sizes
|
||||
collect(config('vuefilemanager.avatar_sizes'))
|
||||
->each(function ($size) use ($intervention, $avatar_name) {
|
||||
|
||||
// fit thumbnail
|
||||
$intervention->fit($size['size'], $size['size'])->stream();
|
||||
|
||||
// Store thumbnail to disk
|
||||
Storage::put("avatars/{$size['name']}-{$avatar_name}", $intervention);
|
||||
});
|
||||
|
||||
// Return path to image
|
||||
return $avatar_name;
|
||||
}
|
||||
function store_socialite_avatar($avatar)
|
||||
{
|
||||
$image = file_get_contents($avatar);
|
||||
|
||||
// Generate avatar name
|
||||
$avatar_name = Str::uuid() . '.jpg';
|
||||
|
||||
// Create intervention image
|
||||
$intervention = Image::make($image);
|
||||
|
||||
// Generate avatar sizes
|
||||
generate_avatar_thumbnails($intervention, $avatar_name);
|
||||
|
||||
// Return name of image
|
||||
return $avatar_name;
|
||||
}
|
||||
}
|
||||
|
||||
if(! function_exists('generate_avatar_thumbnails')) {
|
||||
/**
|
||||
* Create avatar thumbnails
|
||||
*/
|
||||
function generate_avatar_thumbnails($intervention, $avatar_name)
|
||||
{
|
||||
collect(config('vuefilemanager.avatar_sizes'))
|
||||
->each(function ($size) use ($intervention, $avatar_name) {
|
||||
|
||||
// fit thumbnail
|
||||
$intervention->fit($size['size'], $size['size'])->stream();
|
||||
|
||||
// Store thumbnail to disk
|
||||
Storage::put("avatars/{$size['name']}-{$avatar_name}", $intervention);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user