diff --git a/src/main/java/com/alist/api/modules/admin/auth/AdminAuthController.java b/src/main/java/com/alist/api/modules/admin/auth/AdminAuthController.java
index 1257c1b..53047f4 100644
--- a/src/main/java/com/alist/api/modules/admin/auth/AdminAuthController.java
+++ b/src/main/java/com/alist/api/modules/admin/auth/AdminAuthController.java
@@ -102,7 +102,8 @@ public class AdminAuthController {
result.put("userId", admin.getId());
result.put("userIdx", admin.getUserIdx());
result.put("userTokenIdx", userTokenIdx);
- result.put("userRole", "ADMIN");
+ result.put("userRole", admin.getUserRole());
+ result.put("userType", admin.getUserType());
return ApiResponse.entity(result, ApiResponseCode.CODE_200);
}
diff --git a/src/main/java/com/alist/api/modules/admin/auth/vo/AdminLoginVo.java b/src/main/java/com/alist/api/modules/admin/auth/vo/AdminLoginVo.java
index 306b3e7..732464c 100644
--- a/src/main/java/com/alist/api/modules/admin/auth/vo/AdminLoginVo.java
+++ b/src/main/java/com/alist/api/modules/admin/auth/vo/AdminLoginVo.java
@@ -10,6 +10,8 @@ public class AdminLoginVo {
private boolean isLogin;
private Integer userIdx;
private String id;
+ private String userRole;
+ private String userType;
@JsonIgnore
private String password;
diff --git a/src/main/java/com/alist/api/modules/admin/user/dto/AdminUserDto.java b/src/main/java/com/alist/api/modules/admin/user/dto/AdminUserDto.java
index d519528..d2e746e 100644
--- a/src/main/java/com/alist/api/modules/admin/user/dto/AdminUserDto.java
+++ b/src/main/java/com/alist/api/modules/admin/user/dto/AdminUserDto.java
@@ -10,6 +10,7 @@ public class AdminUserDto {
private Integer userIdx;
private String id;
private String userRole;
+ private String userType;
@JsonIgnore
private String newPassword;
diff --git a/src/main/java/com/alist/api/modules/admin/user/form/AdminUserSignupForm.java b/src/main/java/com/alist/api/modules/admin/user/form/AdminUserSignupForm.java
index 4e45d9e..a766d0f 100644
--- a/src/main/java/com/alist/api/modules/admin/user/form/AdminUserSignupForm.java
+++ b/src/main/java/com/alist/api/modules/admin/user/form/AdminUserSignupForm.java
@@ -31,15 +31,31 @@ public class AdminUserSignupForm {
)
private String password;
+ @NotBlank(message = "사용자 권한(관리자{A:관리자}")
+ @Pattern(
+ regexp = "^A$",
+ message = "사용자 권한(관리자{A:관리자})"
+ )
+ @Schema(
+ description = "사용자 권한(관리자{A:관리자})",
+ example = "A"
+ )
+ private String userRole;
+
@NotBlank(message = "사용자 구분(A:관리자)")
@Pattern(regexp = "^A$", message = "관리자 사용자 구분은 A만 가능합니다.")
- private String userRole;
+ @Schema(
+ description = "사용자 타입(A:관리자)",
+ example = "A"
+ )
+ private String userType;
public AdminUserDto toAdminUserDto() {
AdminUserDto adminUserDto = new AdminUserDto();
adminUserDto.setId(id.trim());
adminUserDto.setPassword(password);
adminUserDto.setUserRole(userRole);
+ adminUserDto.setUserType(userType);
return adminUserDto;
}
}
diff --git a/src/main/java/com/alist/api/modules/admin/user/service/AdminUserService.java b/src/main/java/com/alist/api/modules/admin/user/service/AdminUserService.java
index 367e172..a874ded 100644
--- a/src/main/java/com/alist/api/modules/admin/user/service/AdminUserService.java
+++ b/src/main/java/com/alist/api/modules/admin/user/service/AdminUserService.java
@@ -28,6 +28,7 @@ public class AdminUserService {
userDto.setId(adminUserDto.getId());
userDto.setPassword(adminUserDto.getPassword());
userDto.setUserRole(adminUserDto.getUserRole());
+ userDto.setUserType(adminUserDto.getUserType());
UserVo userVo = userService.insertUser(userDto);
@@ -35,6 +36,8 @@ public class AdminUserService {
result.setResultCode(userVo.getResultCode());
result.setUserIdx(userVo.getUserIdx());
result.setId(userVo.getId());
+ result.setUserRole(userVo.getUserRole());
+ result.setUserType(userVo.getUserType());
return result;
}
diff --git a/src/main/java/com/alist/api/modules/admin/user/vo/AdminUserVo.java b/src/main/java/com/alist/api/modules/admin/user/vo/AdminUserVo.java
index b0c6a1e..6461452 100644
--- a/src/main/java/com/alist/api/modules/admin/user/vo/AdminUserVo.java
+++ b/src/main/java/com/alist/api/modules/admin/user/vo/AdminUserVo.java
@@ -10,6 +10,7 @@ public class AdminUserVo {
private Integer userIdx;
private String id;
private String userRole;
+ private String userType;
@JsonIgnore
private String newPassword;
diff --git a/src/main/java/com/alist/api/modules/auth/AuthController.java b/src/main/java/com/alist/api/modules/auth/AuthController.java
index 3b24aa7..3282769 100644
--- a/src/main/java/com/alist/api/modules/auth/AuthController.java
+++ b/src/main/java/com/alist/api/modules/auth/AuthController.java
@@ -102,6 +102,7 @@ public class AuthController {
result.put("userIdx", ssoSession.getUserIdx());
result.put("userId", ssoSession.getUserId());
result.put("userRole", ssoSession.getUserRole());
+ result.put("userType", ssoSession.getUserType());
return ApiResponse.entity(result, ApiResponseCode.CODE_2001, "토큰");
}
diff --git a/src/main/java/com/alist/api/modules/auth/SsoController.java b/src/main/java/com/alist/api/modules/auth/SsoController.java
index 9ec2ecb..8f6140c 100644
--- a/src/main/java/com/alist/api/modules/auth/SsoController.java
+++ b/src/main/java/com/alist/api/modules/auth/SsoController.java
@@ -73,7 +73,8 @@ public class SsoController {
result.setLoginIn(true);
result.setId(ssoLoginDto.getUserId());
result.setUserIdx(ssoLoginDto.getUserIdx());
- result.setRole(ssoLoginDto.getUserRole());
+ result.setUserRole(ssoLoginDto.getUserRole());
+ result.setUserType(ssoLoginDto.getUserType());
return ApiResponse.entity(result, ApiResponseCode.CODE_2001, "SSO 로그인");
}
@@ -112,6 +113,7 @@ public class SsoController {
result.put("userIdx", ssoSession.getUserIdx());
result.put("userTokenIdx", ssoSession.getUserTokenIdx());
result.put("userRole", ssoSession.getUserRole());
+ result.put("userType", ssoSession.getUserType());
return ApiResponse.entity(result, ApiResponseCode.CODE_200);
}
diff --git a/src/main/java/com/alist/api/modules/auth/dto/LoginDto.java b/src/main/java/com/alist/api/modules/auth/dto/LoginDto.java
index d1aecc4..179bce9 100644
--- a/src/main/java/com/alist/api/modules/auth/dto/LoginDto.java
+++ b/src/main/java/com/alist/api/modules/auth/dto/LoginDto.java
@@ -22,6 +22,8 @@ public class LoginDto {
@JsonIgnore
private String userRole;
@JsonIgnore
+ private String userType;
+ @JsonIgnore
private String userApiKey;
@JsonIgnore
private Integer userTokenIdx;
diff --git a/src/main/java/com/alist/api/modules/auth/dto/SsoExchangeDto.java b/src/main/java/com/alist/api/modules/auth/dto/SsoExchangeDto.java
index f2388f3..4493aec 100644
--- a/src/main/java/com/alist/api/modules/auth/dto/SsoExchangeDto.java
+++ b/src/main/java/com/alist/api/modules/auth/dto/SsoExchangeDto.java
@@ -15,4 +15,5 @@ public class SsoExchangeDto {
private Integer userTokenIdx;
private String userId;
private String userRole;
+ private String userType;
}
diff --git a/src/main/java/com/alist/api/modules/auth/dto/SsoLoginCheckDto.java b/src/main/java/com/alist/api/modules/auth/dto/SsoLoginCheckDto.java
index 0e638ea..efc7818 100644
--- a/src/main/java/com/alist/api/modules/auth/dto/SsoLoginCheckDto.java
+++ b/src/main/java/com/alist/api/modules/auth/dto/SsoLoginCheckDto.java
@@ -9,5 +9,6 @@ public class SsoLoginCheckDto {
private boolean loginIn;
private String id;
private Integer userIdx;
- private String role;
+ private String userRole;
+ private String userType;
}
diff --git a/src/main/java/com/alist/api/modules/auth/dto/SsoLoginDto.java b/src/main/java/com/alist/api/modules/auth/dto/SsoLoginDto.java
index 65776e5..beb02e7 100644
--- a/src/main/java/com/alist/api/modules/auth/dto/SsoLoginDto.java
+++ b/src/main/java/com/alist/api/modules/auth/dto/SsoLoginDto.java
@@ -15,6 +15,7 @@ public class SsoLoginDto {
private Integer userTokenIdx;
private String userId;
private String userRole;
+ private String userType;
public LoginDto toLoginDto() {
LoginDto loginDto = new LoginDto();
diff --git a/src/main/java/com/alist/api/modules/auth/service/AuthService.java b/src/main/java/com/alist/api/modules/auth/service/AuthService.java
index d0a1125..1ff1678 100644
--- a/src/main/java/com/alist/api/modules/auth/service/AuthService.java
+++ b/src/main/java/com/alist/api/modules/auth/service/AuthService.java
@@ -45,6 +45,7 @@ public class AuthService {
loginDto.setUserTokenIdx(loginTokenVo.getUserTokenIdx());
loginDto.setUserRole(loginTokenVo.getUserRole());
+ loginDto.setUserType(loginTokenVo.getUserType());
Instant now = Instant.now();
Instant expiresAt = now.plusSeconds(jwtProperties.getRefreshTokenValiditySeconds());
diff --git a/src/main/java/com/alist/api/modules/auth/service/SsoService.java b/src/main/java/com/alist/api/modules/auth/service/SsoService.java
index 6feb43b..b3a3a4b 100644
--- a/src/main/java/com/alist/api/modules/auth/service/SsoService.java
+++ b/src/main/java/com/alist/api/modules/auth/service/SsoService.java
@@ -55,6 +55,7 @@ public class SsoService {
redisTemplate.opsForHash().put(sessionKey, "userTokenIdx", String.valueOf(loginDto.getUserTokenIdx()));
redisTemplate.opsForHash().put(sessionKey, "userId", loginDto.getId());
redisTemplate.opsForHash().put(sessionKey, "userRole", loginDto.getUserRole());
+ redisTemplate.opsForHash().put(sessionKey, "userType", loginDto.getUserType());
redisTemplate.expire(sessionKey, ssoSessionTtl);
redisTemplate.opsForValue().set(latestSessionKey, ssoSessionId, ssoSessionTtl);
@@ -63,6 +64,7 @@ public class SsoService {
result.setUserId(loginDto.getId());
result.setUserIdx(loginDto.getUserIdx());
result.setUserRole(loginDto.getUserRole());
+ result.setUserType(loginDto.getUserType());
result.setResultCode(200);
return result;
@@ -90,6 +92,7 @@ public class SsoService {
String userId = (String) redisTemplate.opsForHash().get(sessionKey, "userId");
String userTokenIdx = (String) redisTemplate.opsForHash().get(sessionKey, "userTokenIdx");
String userRole = (String) redisTemplate.opsForHash().get(sessionKey, "userRole");
+ String userType = (String) redisTemplate.opsForHash().get(sessionKey, "userType");
SsoExchangeDto result = new SsoExchangeDto();
result.setSsoSessionId(ssoSessionId);
@@ -97,6 +100,7 @@ public class SsoService {
result.setUserIdx(userIdx == null ? null : Integer.parseInt(userIdx));
result.setUserTokenIdx(userTokenIdx == null ? null : Integer.parseInt(userTokenIdx));
result.setUserRole(userRole);
+ result.setUserType(userType);
return result;
}
@@ -168,6 +172,7 @@ public class SsoService {
String userIdx = (String) redisTemplate.opsForHash().get(sessionKey, "userIdx");
String userTokenIdx = (String) redisTemplate.opsForHash().get(sessionKey, "userTokenIdx");
String userRole = (String) redisTemplate.opsForHash().get(sessionKey, "userRole");
+ String userType = (String) redisTemplate.opsForHash().get(sessionKey, "userType");
String latestSsoSessionId = redisTemplate.opsForValue().get("alist:sso:userIdx:" + userIdx);
if (!ssoSessionId.equals(latestSsoSessionId)) {
@@ -182,6 +187,7 @@ public class SsoService {
result.setUserIdx(Integer.parseInt(userIdx));
result.setUserTokenIdx(Integer.parseInt(userTokenIdx));
result.setUserRole(userRole);
+ result.setUserType(userType);
result.setSsoSessionId(ssoSessionId);
return result;
}
diff --git a/src/main/java/com/alist/api/modules/auth/vo/LoginTokenVo.java b/src/main/java/com/alist/api/modules/auth/vo/LoginTokenVo.java
index dd1d73c..ae6a67b 100644
--- a/src/main/java/com/alist/api/modules/auth/vo/LoginTokenVo.java
+++ b/src/main/java/com/alist/api/modules/auth/vo/LoginTokenVo.java
@@ -7,5 +7,6 @@ public class LoginTokenVo {
private Integer userTokenIdx;
private String userApiKey;
private String userRole;
+ private String userType;
private String refreshToken;
}
diff --git a/src/main/java/com/alist/api/modules/user/dto/UserDto.java b/src/main/java/com/alist/api/modules/user/dto/UserDto.java
index f56b2b8..5f59f24 100644
--- a/src/main/java/com/alist/api/modules/user/dto/UserDto.java
+++ b/src/main/java/com/alist/api/modules/user/dto/UserDto.java
@@ -10,6 +10,7 @@ public class UserDto {
private Integer userIdx;
private String id;
private String userRole;
+ private String userType;
@JsonIgnore
private String newPassword;
diff --git a/src/main/java/com/alist/api/modules/user/dto/UserTokenDto.java b/src/main/java/com/alist/api/modules/user/dto/UserTokenDto.java
index ada656d..a10e876 100644
--- a/src/main/java/com/alist/api/modules/user/dto/UserTokenDto.java
+++ b/src/main/java/com/alist/api/modules/user/dto/UserTokenDto.java
@@ -10,5 +10,6 @@ public class UserTokenDto {
private Integer userIdx;
private String userApiKey;
private String userRole;
+ private String userType;
private int resultCode;
}
diff --git a/src/main/java/com/alist/api/modules/user/form/UserSignupForm.java b/src/main/java/com/alist/api/modules/user/form/UserSignupForm.java
index 6b40368..0e5efad 100644
--- a/src/main/java/com/alist/api/modules/user/form/UserSignupForm.java
+++ b/src/main/java/com/alist/api/modules/user/form/UserSignupForm.java
@@ -31,22 +31,34 @@ public class UserSignupForm {
)
private String password;
- @NotBlank(message = "사용자 구분(T:교사, S1: 학생, S2: 수강생)")
+ @NotBlank(message = "사용자 권한(교사{CCM: 복합 캠퍼스 마스터, SCM:단일 캠퍼스 마스터, I: 교사}, 학생{R:정회원, E:수강생}")
@Pattern(
- regexp = "^(S1|S2|T)$",
- message = "사용자 구분은 S1(학생), S2(수강생), T(교사)만 가능합니다."
+ regexp = "^(CCM|SCM|I|R|E)$",
+ message = "사용자 권한(교사{CCM: 복합 캠퍼스 마스터, SCM:단일 캠퍼스 마스터, I: 교사}, 학생{R:정회원, E:수강생})"
)
@Schema(
- description = "사용자 구분(T:교사, S1: 학생, S2: 수강생)",
- example = "T"
+ description = "사용자 권한(사용자 권한(교사{CCM: 복합 캠퍼스 마스터, SCM:단일 캠퍼스 마스터, I: 교사}, 학생{R:정회원, E:수강생})",
+ example = "I"
)
private String userRole;
+ @NotBlank(message = "사용자 타입(T:교사, S: 학생)")
+ @Pattern(
+ regexp = "^(S|T)$",
+ message = "사용자 타입 S(학생), T(교사)만 가능합니다."
+ )
+ @Schema(
+ description = "사용자 타입(T:교사, S: 학생)",
+ example = "T"
+ )
+ private String userType;
+
public UserDto toUserDto() {
UserDto userDto = new UserDto();
userDto.setId(id.trim());
userDto.setPassword(password);
userDto.setUserRole(userRole);
+ userDto.setUserType(userType);
return userDto;
}
}
diff --git a/src/main/java/com/alist/api/modules/user/service/UserService.java b/src/main/java/com/alist/api/modules/user/service/UserService.java
index 4e30508..aa068a6 100644
--- a/src/main/java/com/alist/api/modules/user/service/UserService.java
+++ b/src/main/java/com/alist/api/modules/user/service/UserService.java
@@ -41,6 +41,7 @@ public class UserService {
UserVo result = new UserVo();
result.setId(userDto.getId());
result.setUserRole(userDto.getUserRole());
+ result.setUserType(userDto.getUserType());
// 중복체크
if (userMapper.selectDuplicateUserCount(userDto) > 0) {
@@ -59,6 +60,7 @@ public class UserService {
UserTokenDto userTokenDto = new UserTokenDto();
userTokenDto.setUserIdx(userDto.getUserIdx());
userTokenDto.setUserRole(userDto.getUserRole());
+ userTokenDto.setUserType(userDto.getUserType());
result.setUserIdx(userDto.getUserIdx());
diff --git a/src/main/java/com/alist/api/modules/user/vo/UserVo.java b/src/main/java/com/alist/api/modules/user/vo/UserVo.java
index 543a0c7..b758c58 100644
--- a/src/main/java/com/alist/api/modules/user/vo/UserVo.java
+++ b/src/main/java/com/alist/api/modules/user/vo/UserVo.java
@@ -10,6 +10,7 @@ public class UserVo {
private Integer userIdx;
private String id;
private String userRole;
+ private String userType;
@JsonIgnore
private String newPassword;
diff --git a/src/main/resources/mapper/User/UserMapper.xml b/src/main/resources/mapper/User/UserMapper.xml
index 00299b1..296f1fd 100644
--- a/src/main/resources/mapper/User/UserMapper.xml
+++ b/src/main/resources/mapper/User/UserMapper.xml
@@ -9,8 +9,8 @@
/*UserMapper.insertUserTokenSignup*/
- insert into ALISTLMS.test_user_token (user_idx, user_api_key, user_role, created_at, updated_at)
- value (#{userIdx}, #{userApiKey}, #{userRole}, now(), now())
+ insert into ALISTLMS.test_user_token (user_idx, user_api_key, user_role, user_type, created_at, updated_at)
+ value (#{userIdx}, #{userApiKey}, #{userRole}, #{userType}, now(), now())
@@ -28,6 +28,7 @@
/*LoginMapper.selectUserTokenByUserId*/
select user_token_idx
, user_role
+ , user_type
, refresh_token
from ALISTLMS.test_user_token
where user_idx = #{userIdx}
@@ -37,6 +38,7 @@
/*LoginMapper.selectUserTokenByUserApiKey*/
select user_token_idx
, user_role
+ , user_type
, refresh_token
from ALISTLMS.test_user_token
where user_api_key = #{userApiKey}
@@ -46,6 +48,7 @@
/*LoginMapper.selectUserTokenByUserTokenIdx*/
select user_token_idx
, user_role
+ , user_type
, refresh_token
from ALISTLMS.test_user_token
where user_token_idx = #{userTokenIdx}