Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/main/java/com/fixit/web/entity/Profile.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class Profile extends Auditable<String> {
@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;
Expand Down
16 changes: 13 additions & 3 deletions src/main/java/com/fixit/web/service/CustomOAuth2UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -78,12 +84,16 @@ private void upDateUserLogin(OAuth2UserRequest oAuth2UserRequest, User user){
}

private User createNewUser(CustomOauth2User oauth2User, Provider provider){
Optional<Role> 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;
Expand All @@ -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);
}
Expand Down
16 changes: 13 additions & 3 deletions src/main/java/com/fixit/web/service/CustomOidcUserService.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand All @@ -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){
Expand Down Expand Up @@ -64,13 +70,17 @@ private void upDateUserLogin(OidcUser oidcUser, User user){
}

private User createNewUser(OidcUser oidcUser, Provider provider){
Optional<Role> userRoleOptional = roleService.findByName("ROLE_USER");
Role userRole = userRoleOptional.orElseThrow(() -> new NoSuchElementException("The specified role does not exist"));

User user = new User();
user.setUsername(oidcUser.getPreferredUsername());
user.setUsername(oidcUser.getEmail());
user.setPassword("");
user.setProviderId(oidcUser.getSubject());
user.setProvider(provider);
user.setLastLoginTime(LocalDateTime.now());
user.setEnabled(true);
user.setRoles(List.of(userRole));
userService.save(user);
return user;
}
Expand All @@ -80,7 +90,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);
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/templates/auth/register.html
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@ <h3 style="font-size: 26px;">Let's create your account!</h3>
<!-- Social Login -->
<div class="social-login-separator"><span>or</span></div>
<div class="social-login-buttons">
<a class="facebook-login ripple-effect"><i class="icon-brand-facebook-f"></i> Register via Facebook</a>
<a class="google-login ripple-effect"><i class="icon-brand-google-plus-g"></i> Register via Google+</a>
<a th:href="@{/oauth2/authorization/facebook}" class="facebook-login ripple-effect"><i class="icon-brand-facebook-f"></i> Register via Facebook</a>
<a th:href="@{/oauth2/authorization/google}" class="google-login ripple-effect"><i class="icon-brand-google-plus-g"></i> Register via Google+</a>
</div>
</div>

Expand Down