From c2c07b4cde25622898447d988cba0527a37ee8f5 Mon Sep 17 00:00:00 2001 From: Victor Okrobodo Date: Sun, 23 Apr 2023 17:41:00 +0100 Subject: [PATCH 1/3] added facebook login and google logi links to the register page --- src/main/resources/templates/auth/register.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/templates/auth/register.html b/src/main/resources/templates/auth/register.html index 1d44821..a4376ee 100644 --- a/src/main/resources/templates/auth/register.html +++ b/src/main/resources/templates/auth/register.html @@ -76,8 +76,8 @@

Let's create your account!

or
- - + +
From fe622ced0a8e0ef680fcedf24c37408ee34301fe Mon Sep 17 00:00:00 2001 From: Victor Okrobodo Date: Sun, 23 Apr 2023 17:59:37 +0100 Subject: [PATCH 2/3] fixed issue with phone number required when creating profile after oauth signup --- src/main/java/com/fixit/web/entity/Profile.java | 2 +- .../java/com/fixit/web/service/CustomOidcUserService.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/fixit/web/entity/Profile.java b/src/main/java/com/fixit/web/entity/Profile.java index 3e2b25b..0d2d541 100644 --- a/src/main/java/com/fixit/web/entity/Profile.java +++ b/src/main/java/com/fixit/web/entity/Profile.java @@ -32,7 +32,7 @@ public class Profile extends Auditable { @NotBlank private String lastName; - @Column(name = "mobile_number") + @Column(name = "mobile_number", nullable = true) @NotBlank(message = "Please provide your mobile number") @Size(min=10, max=20) private String mobileNumber; diff --git a/src/main/java/com/fixit/web/service/CustomOidcUserService.java b/src/main/java/com/fixit/web/service/CustomOidcUserService.java index 6234cfd..4e0e237 100644 --- a/src/main/java/com/fixit/web/service/CustomOidcUserService.java +++ b/src/main/java/com/fixit/web/service/CustomOidcUserService.java @@ -65,7 +65,7 @@ private void upDateUserLogin(OidcUser oidcUser, User user){ private User createNewUser(OidcUser oidcUser, Provider provider){ User user = new User(); - user.setUsername(oidcUser.getPreferredUsername()); + user.setUsername(oidcUser.getEmail()); user.setPassword(""); user.setProviderId(oidcUser.getSubject()); user.setProvider(provider); @@ -80,7 +80,7 @@ private void createNewProfile(OidcUser oidcUser, User user){ profile.setFirstName(oidcUser.getGivenName()); profile.setLastName(oidcUser.getFamilyName()); profile.setEmail(oidcUser.getEmail()); - profile.setMobileNumber(oidcUser.getPhoneNumber()); + profile.setMobileNumber("0123456789"); profile.setUser(user); profileService.save(profile); } From 2317d1f629e90deef2e0b1f7c2e0726779f7323d Mon Sep 17 00:00:00 2001 From: Victor Okrobodo Date: Sun, 23 Apr 2023 19:26:57 +0100 Subject: [PATCH 3/3] fixed profile bug on facebook oauth user signup --- .../web/service/CustomOAuth2UserService.java | 16 +++++++++++++--- .../fixit/web/service/CustomOidcUserService.java | 12 +++++++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/fixit/web/service/CustomOAuth2UserService.java b/src/main/java/com/fixit/web/service/CustomOAuth2UserService.java index 56a6fbd..0611271 100644 --- a/src/main/java/com/fixit/web/service/CustomOAuth2UserService.java +++ b/src/main/java/com/fixit/web/service/CustomOAuth2UserService.java @@ -2,6 +2,7 @@ import com.fixit.web.auth.CustomOauth2User; import com.fixit.web.entity.Profile; +import com.fixit.web.entity.Role; import com.fixit.web.entity.User; import com.fixit.web.enums.Provider; import org.slf4j.Logger; @@ -14,6 +15,8 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; +import java.util.List; +import java.util.NoSuchElementException; import java.util.Optional; @Service @@ -23,10 +26,13 @@ public class CustomOAuth2UserService extends DefaultOAuth2UserService { private ProfileService profileService; private UserService userService; + private RoleService roleService; + @Autowired - public CustomOAuth2UserService(ProfileService profileService, UserService userService) { + public CustomOAuth2UserService(ProfileService profileService, UserService userService, RoleService roleService) { this.profileService = profileService; this.userService = userService; + this.roleService = roleService; } @Override @@ -78,12 +84,16 @@ private void upDateUserLogin(OAuth2UserRequest oAuth2UserRequest, User user){ } private User createNewUser(CustomOauth2User oauth2User, Provider provider){ + Optional userRoleOptional = roleService.findByName("ROLE_USER"); + Role userRole = userRoleOptional.orElseThrow(() -> new NoSuchElementException("The specified role does not exist")); + User user = new User(); - user.setUsername(""); + user.setUsername(oauth2User.getEmail()); user.setPassword(""); user.setProviderId(oauth2User.getAttribute("id")); user.setProvider(provider); user.setLastLoginTime(LocalDateTime.now()); + user.setRoles(List.of(userRole)); user.setEnabled(true); userService.save(user); return user; @@ -94,7 +104,7 @@ private void createNewProfile(CustomOauth2User oAuth2User, User user){ profile.setFirstName(oAuth2User.getName().split(" ")[0]); profile.setLastName(oAuth2User.getName().split(" ")[1]); profile.setEmail(oAuth2User.getEmail()); - profile.setMobileNumber(""); + profile.setMobileNumber("0123456789"); profile.setUser(user); profileService.save(profile); } diff --git a/src/main/java/com/fixit/web/service/CustomOidcUserService.java b/src/main/java/com/fixit/web/service/CustomOidcUserService.java index 4e0e237..a97f6e7 100644 --- a/src/main/java/com/fixit/web/service/CustomOidcUserService.java +++ b/src/main/java/com/fixit/web/service/CustomOidcUserService.java @@ -1,6 +1,7 @@ package com.fixit.web.service; import com.fixit.web.entity.Profile; +import com.fixit.web.entity.Role; import com.fixit.web.entity.User; import com.fixit.web.enums.Provider; import org.slf4j.Logger; @@ -11,6 +12,8 @@ import org.springframework.stereotype.Service; import java.time.LocalDateTime; +import java.util.List; +import java.util.NoSuchElementException; import java.util.Optional; @Service @@ -20,10 +23,13 @@ public class CustomOidcUserService { private ProfileService profileService; private UserService userService; + private RoleService roleService; + @Autowired - public CustomOidcUserService(ProfileService profileService, UserService userService) { + public CustomOidcUserService(ProfileService profileService, UserService userService, RoleService roleService) { this.profileService = profileService; this.userService = userService; + this.roleService = roleService; } public void processUser(OidcUserRequest oidcUserRequest, OidcUser oidcUser){ @@ -64,6 +70,9 @@ private void upDateUserLogin(OidcUser oidcUser, User user){ } private User createNewUser(OidcUser oidcUser, Provider provider){ + Optional userRoleOptional = roleService.findByName("ROLE_USER"); + Role userRole = userRoleOptional.orElseThrow(() -> new NoSuchElementException("The specified role does not exist")); + User user = new User(); user.setUsername(oidcUser.getEmail()); user.setPassword(""); @@ -71,6 +80,7 @@ private User createNewUser(OidcUser oidcUser, Provider provider){ user.setProvider(provider); user.setLastLoginTime(LocalDateTime.now()); user.setEnabled(true); + user.setRoles(List.of(userRole)); userService.save(user); return user; }