Added config to change Gravatar URL
This commit is contained in:
parent
5b36ddb12f
commit
5e6c039b08
4 changed files with 17 additions and 5 deletions
|
@ -61,6 +61,11 @@ DISCORD_APP_SECRET=false
|
||||||
|
|
||||||
# External services such as Gravatar and Draw.IO
|
# External services such as Gravatar and Draw.IO
|
||||||
DISABLE_EXTERNAL_SERVICES=false
|
DISABLE_EXTERNAL_SERVICES=false
|
||||||
|
# Default GRAVATAR_URL set to Gravatar service
|
||||||
|
GRAVATAR_URL=false
|
||||||
|
# To use a different service to get user's avatar like libravatar
|
||||||
|
# Possible placeholders: %{hash} %{size} %{email}
|
||||||
|
#GRAVATAR_URL=https://seccdn.libravatar.org/avatar/%{hash}?s=%{size}&d=identicon
|
||||||
|
|
||||||
# LDAP Settings
|
# LDAP Settings
|
||||||
LDAP_SERVER=false
|
LDAP_SERVER=false
|
||||||
|
|
|
@ -251,7 +251,7 @@ class UserRepo
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$avatar = Images::saveUserGravatar($user);
|
$avatar = Images::saveUserGravatar($user, config('services.gravatar_url'));
|
||||||
$user->avatar()->associate($avatar);
|
$user->avatar()->associate($avatar);
|
||||||
$user->save();
|
$user->save();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -281,16 +281,22 @@ class ImageService extends UploadService
|
||||||
/**
|
/**
|
||||||
* Save a gravatar image and set a the profile image for a user.
|
* Save a gravatar image and set a the profile image for a user.
|
||||||
* @param \BookStack\Auth\User $user
|
* @param \BookStack\Auth\User $user
|
||||||
|
* @param null|string $gravatarUrl
|
||||||
* @param int $size
|
* @param int $size
|
||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function saveUserGravatar(User $user, $size = 500)
|
public function saveUserGravatar(User $user, $gravatarUrl, $size = 500)
|
||||||
{
|
{
|
||||||
$emailHash = md5(strtolower(trim($user->email)));
|
if (!is_string($gravatarUrl) || empty($gravatarUrl)) {
|
||||||
$url = 'https://www.gravatar.com/avatar/' . $emailHash . '?s=' . $size . '&d=identicon';
|
$gravatarUrl = 'https://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon';
|
||||||
|
}
|
||||||
|
$email = strtolower(trim($user->email));
|
||||||
|
$gravatarUrl = str_replace('%{hash}', md5($email), $gravatarUrl);
|
||||||
|
$gravatarUrl = str_replace('%{size}', $size, $gravatarUrl);
|
||||||
|
$gravatarUrl = str_replace('%{email}', urlencode($email), $gravatarUrl);
|
||||||
$imageName = str_replace(' ', '-', $user->name . '-gravatar.png');
|
$imageName = str_replace(' ', '-', $user->name . '-gravatar.png');
|
||||||
$image = $this->saveNewFromUrl($url, 'user', $imageName);
|
$image = $this->saveNewFromUrl($gravatarUrl, 'user', $imageName);
|
||||||
$image->created_by = $user->id;
|
$image->created_by = $user->id;
|
||||||
$image->updated_by = $user->id;
|
$image->updated_by = $user->id;
|
||||||
$image->save();
|
$image->save();
|
||||||
|
|
|
@ -19,6 +19,7 @@ return [
|
||||||
'gravatar' => env('GRAVATAR', !env('DISABLE_EXTERNAL_SERVICES', false)),
|
'gravatar' => env('GRAVATAR', !env('DISABLE_EXTERNAL_SERVICES', false)),
|
||||||
'drawio' => env('DRAWIO', !env('DISABLE_EXTERNAL_SERVICES', false)),
|
'drawio' => env('DRAWIO', !env('DISABLE_EXTERNAL_SERVICES', false)),
|
||||||
|
|
||||||
|
'gravatar_url' => env('GRAVATAR_URL', false),
|
||||||
|
|
||||||
'callback_url' => env('APP_URL', false),
|
'callback_url' => env('APP_URL', false),
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue