From 996f0fe1c18d3368efbd554541dd006f757fb54f Mon Sep 17 00:00:00 2001 From: Art Date: Tue, 7 Sep 2021 00:19:05 +0300 Subject: [PATCH] 44. User authorities (#4 Section 6: User Registration) --- .../supportportal/backend/constant/Authority.java | 11 +++++++++++ .../fullstack/supportportal/backend/domain/User.java | 2 +- .../supportportal/backend/domain/UserPrincipal.java | 6 +----- .../supportportal/backend/common/BaseUserTest.java | 2 +- .../backend/domain/UserPrincipalTest.java | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/constant/Authority.java diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/constant/Authority.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/constant/Authority.java new file mode 100644 index 0000000..df98b58 --- /dev/null +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/constant/Authority.java @@ -0,0 +1,11 @@ +package net.shyshkin.study.fullstack.supportportal.backend.constant; + +public class Authority { + + public static final String[] USER_AUTHORITIES = {"user:read"}; + public static final String[] HR_AUTHORITIES = {"user:read", "user:update"}; + public static final String[] MANAGER_AUTHORITIES = {"user:read", "user:update"}; + public static final String[] ADMIN_AUTHORITIES = {"user:read", "user:create", "user:update"}; + public static final String[] SUPER_ADMIN_AUTHORITIES = {"user:read", "user:create", "user:update", "user:delete"}; + +} diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/User.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/User.java index 04eb146..2bd346a 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/User.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/User.java @@ -35,7 +35,7 @@ public class User implements Serializable { private LocalDateTime lastLoginDate; private LocalDateTime lastLoginDateDisplay; private LocalDateTime joinDate; - private String[] roles; //ROLE_USER, ROLE_ADMIN + private String role; //ROLE_USER, ROLE_ADMIN private String[] authorities; private boolean isActive; private boolean isNotLocked; diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipal.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipal.java index 6af9ade..38713ba 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipal.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipal.java @@ -19,11 +19,7 @@ public class UserPrincipal implements UserDetails { @Override public Collection getAuthorities() { - return Stream - .concat( - Stream.of(user.getRoles()), - Stream.of(user.getAuthorities()) - ) + return Stream.of(user.getAuthorities()) .map(SimpleGrantedAuthority::new) .collect(Collectors.toList()); } diff --git a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/common/BaseUserTest.java b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/common/BaseUserTest.java index f1d49fc..be7e7ff 100644 --- a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/common/BaseUserTest.java +++ b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/common/BaseUserTest.java @@ -35,7 +35,7 @@ public abstract class BaseUserTest { .profileImageUrl("http://url_to_profile_img") .lastLoginDate(LocalDateTime.now()) .lastLoginDateDisplay(LocalDateTime.now()) - .roles(new String[]{"ROLE_ADMIN", "ROLE_USER"}) + .role("ROLE_ADMIN") .authorities(new String[]{"user:delete", "user:read"}) .build(); } diff --git a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipalTest.java b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipalTest.java index d45900e..0660eff 100644 --- a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipalTest.java +++ b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/domain/UserPrincipalTest.java @@ -22,7 +22,7 @@ class UserPrincipalTest extends BaseUserTest { void displayUser() { //given Long id = user.getId(); - int expectedAuthoritiesLength = user.getAuthorities().length + user.getRoles().length; + int expectedAuthoritiesLength = user.getAuthorities().length ; //when Optional savedUserOptional = userRepository.findById(id);