Skip to content

Commit 24e2ffc

Browse files
committed
Fix logins provider casing (VKontakte vs Vkontakte)
1 parent 77ab4ee commit 24e2ffc

File tree

1 file changed

+37
-52
lines changed

1 file changed

+37
-52
lines changed

src/JoinRpg.WebPortal.Models/UserProfile/UserLoginInfoViewModel.cs

Lines changed: 37 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -30,65 +30,50 @@ public static class UserLoginInfoViewModelBuilder
3030
public static IEnumerable<UserLoginInfoViewModel> GetSocialLogins(this User user)
3131
{
3232
var canRemoveLogins = user.PasswordHash != null || user.ExternalLogins.Count > 1;
33-
if (user.ExternalLogins.SingleOrDefault(l => l.Provider == "Google") is UserExternalLogin googleLogin)
33+
yield return GetModel(UserLoginInfoViewModel.ProviderDescViewModel.Google);
34+
var vk = GetModel(UserLoginInfoViewModel.ProviderDescViewModel.Vk);
35+
if (vk.ProviderKey is not null)
3436
{
35-
yield return new UserLoginInfoViewModel()
36-
{
37-
AllowLink = false,
38-
AllowUnlink = canRemoveLogins,
39-
LoginProvider = UserLoginInfoViewModel.ProviderDescViewModel.Google,
40-
ProviderKey = googleLogin.Key,
41-
NeedToReLink = false,
42-
ProviderLink = null,
43-
};
37+
vk.ProviderLink = $"https://vk.com/id{vk.ProviderKey}";
4438
}
45-
else
46-
{
47-
yield return new UserLoginInfoViewModel()
48-
{
49-
AllowLink = true,
50-
AllowUnlink = false,
51-
LoginProvider = UserLoginInfoViewModel.ProviderDescViewModel.Google,
52-
ProviderKey = null,
53-
NeedToReLink = false,
54-
ProviderLink = null,
55-
};
56-
}
57-
if (user.ExternalLogins.SingleOrDefault(l => l.Provider == "Vkontakte") is UserExternalLogin vkLogin)
39+
40+
if (vk.ProviderKey is null && user.Extra?.Vk is not null)
5841
{
59-
yield return new UserLoginInfoViewModel()
60-
{
61-
AllowLink = false,
62-
AllowUnlink = canRemoveLogins,
63-
LoginProvider = UserLoginInfoViewModel.ProviderDescViewModel.Vk,
64-
ProviderKey = vkLogin.Key,
65-
NeedToReLink = false,
66-
ProviderLink = $"https://vk.com/id{vkLogin.Key}",
67-
};
42+
vk.NeedToReLink = true;
43+
vk.AllowLink = false;
44+
vk.ProviderLink = $"https://vk.com/id{user.Extra?.Vk}";
6845
}
69-
else if (user.Extra?.Vk != null)
46+
47+
yield return vk;
48+
49+
UserLoginInfoViewModel GetModel(UserLoginInfoViewModel.ProviderDescViewModel provider)
7050
{
71-
yield return new UserLoginInfoViewModel()
51+
if (user.ExternalLogins.SingleOrDefault(l =>
52+
l.Provider.ToLowerInvariant() == provider.ProviderId.ToLowerInvariant()
53+
) is UserExternalLogin login)
7254
{
73-
AllowLink = false,
74-
AllowUnlink = false,
75-
LoginProvider = UserLoginInfoViewModel.ProviderDescViewModel.Vk,
76-
ProviderKey = null,
77-
NeedToReLink = true,
78-
ProviderLink = $"https://vk.com/id{user.Extra?.Vk}",
79-
};
80-
}
81-
else
82-
{
83-
yield return new UserLoginInfoViewModel()
55+
return new UserLoginInfoViewModel()
56+
{
57+
AllowLink = false,
58+
AllowUnlink = canRemoveLogins,
59+
LoginProvider = provider,
60+
ProviderKey = login.Key,
61+
NeedToReLink = false,
62+
ProviderLink = null,
63+
};
64+
}
65+
else
8466
{
85-
AllowLink = true,
86-
AllowUnlink = false,
87-
LoginProvider = UserLoginInfoViewModel.ProviderDescViewModel.Vk,
88-
ProviderKey = null,
89-
NeedToReLink = false,
90-
ProviderLink = null,
91-
};
67+
return new UserLoginInfoViewModel()
68+
{
69+
AllowLink = true,
70+
AllowUnlink = false,
71+
LoginProvider = provider,
72+
ProviderKey = null,
73+
NeedToReLink = false,
74+
ProviderLink = null,
75+
};
76+
}
9277
}
9378
}
9479
}

0 commit comments

Comments
 (0)