mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-28 03:46:06 -05:00 
			
		
		
		
	Fixhancement: better handle removed social apps in profile (#9876)
This commit is contained in:
		| @@ -136,6 +136,36 @@ class TestApiProfile(DirectoriesMixin, APITestCase): | ||||
|             ], | ||||
|         ) | ||||
|  | ||||
|     def test_profile_w_social_removed_app(self): | ||||
|         """ | ||||
|         GIVEN: | ||||
|             - Configured user and setup social account | ||||
|             - Social app has been removed | ||||
|         WHEN: | ||||
|             - API call is made to get profile | ||||
|         THEN: | ||||
|             - Profile is returned with "Unknown App" as name | ||||
|         """ | ||||
|         self.setupSocialAccount() | ||||
|  | ||||
|         # Remove the social app | ||||
|         SocialApp.objects.get(provider_id="keycloak-test").delete() | ||||
|  | ||||
|         response = self.client.get(self.ENDPOINT) | ||||
|  | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
|  | ||||
|         self.assertEqual( | ||||
|             response.data["social_accounts"], | ||||
|             [ | ||||
|                 { | ||||
|                     "id": 1, | ||||
|                     "provider": "keycloak-test", | ||||
|                     "name": "Unknown App", | ||||
|                 }, | ||||
|             ], | ||||
|         ) | ||||
|  | ||||
|     def test_update_profile(self): | ||||
|         """ | ||||
|         GIVEN: | ||||
|   | ||||
| @@ -4,6 +4,7 @@ from allauth.mfa.adapter import get_adapter as get_mfa_adapter | ||||
| from allauth.mfa.models import Authenticator | ||||
| from allauth.mfa.totp.internal.auth import TOTP | ||||
| from allauth.socialaccount.models import SocialAccount | ||||
| from allauth.socialaccount.models import SocialApp | ||||
| from django.contrib.auth.models import Group | ||||
| from django.contrib.auth.models import Permission | ||||
| from django.contrib.auth.models import User | ||||
| @@ -146,8 +147,11 @@ class SocialAccountSerializer(serializers.ModelSerializer): | ||||
|             "name", | ||||
|         ) | ||||
|  | ||||
|     def get_name(self, obj) -> str: | ||||
|     def get_name(self, obj: SocialAccount) -> str: | ||||
|         try: | ||||
|             return obj.get_provider_account().to_str() | ||||
|         except SocialApp.DoesNotExist: | ||||
|             return "Unknown App" | ||||
|  | ||||
|  | ||||
| class ProfileSerializer(serializers.ModelSerializer): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 shamoon
					shamoon