mirror of
				https://github.com/BookStackApp/BookStack.git
				synced 2025-11-03 02:13:16 +03:00 
			
		
		
		
	Merge branch 'custom-avatar-provider' of git://github.com/Vinrobot/BookStack into Vinrobot-custom-avatar-provider
This commit is contained in:
		@@ -62,6 +62,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),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user