[api] userType, userRole 추가
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -10,6 +10,7 @@ public class AdminUserDto {
|
||||
private Integer userIdx;
|
||||
private String id;
|
||||
private String userRole;
|
||||
private String userType;
|
||||
|
||||
@JsonIgnore
|
||||
private String newPassword;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ public class AdminUserVo {
|
||||
private Integer userIdx;
|
||||
private String id;
|
||||
private String userRole;
|
||||
private String userType;
|
||||
|
||||
@JsonIgnore
|
||||
private String newPassword;
|
||||
|
||||
@@ -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, "토큰");
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ public class LoginDto {
|
||||
@JsonIgnore
|
||||
private String userRole;
|
||||
@JsonIgnore
|
||||
private String userType;
|
||||
@JsonIgnore
|
||||
private String userApiKey;
|
||||
@JsonIgnore
|
||||
private Integer userTokenIdx;
|
||||
|
||||
@@ -15,4 +15,5 @@ public class SsoExchangeDto {
|
||||
private Integer userTokenIdx;
|
||||
private String userId;
|
||||
private String userRole;
|
||||
private String userType;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -7,5 +7,6 @@ public class LoginTokenVo {
|
||||
private Integer userTokenIdx;
|
||||
private String userApiKey;
|
||||
private String userRole;
|
||||
private String userType;
|
||||
private String refreshToken;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ public class UserDto {
|
||||
private Integer userIdx;
|
||||
private String id;
|
||||
private String userRole;
|
||||
private String userType;
|
||||
|
||||
@JsonIgnore
|
||||
private String newPassword;
|
||||
|
||||
@@ -10,5 +10,6 @@ public class UserTokenDto {
|
||||
private Integer userIdx;
|
||||
private String userApiKey;
|
||||
private String userRole;
|
||||
private String userType;
|
||||
private int resultCode;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ public class UserVo {
|
||||
private Integer userIdx;
|
||||
private String id;
|
||||
private String userRole;
|
||||
private String userType;
|
||||
|
||||
@JsonIgnore
|
||||
private String newPassword;
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
</insert>
|
||||
<insert id="insertUserTokenSignup" useGeneratedKeys="true" keyProperty="userTokenIdx">
|
||||
/*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())
|
||||
</insert>
|
||||
|
||||
<select id="selectDuplicateUserCount" resultType="int">
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
, expires_at = #{expiresAt}
|
||||
, updated_at = now()
|
||||
WHERE user_token_idx = #{userTokenIdx}
|
||||
AND user_role IN ('A')
|
||||
AND user_type IN ('A')
|
||||
</update>
|
||||
<update id="updateAdminLastLoginAt">
|
||||
/*AdminLoginMapper.updateAdminLastLoginAt*/
|
||||
@@ -25,7 +25,7 @@
|
||||
, expires_at = null
|
||||
, updated_at = now()
|
||||
WHERE user_token_idx = #{userTokenIdx}
|
||||
AND user_role IN ('A')
|
||||
AND user_type IN ('A')
|
||||
</update>
|
||||
<select id="selectAdminLoginById" resultType="com.alist.api.modules.admin.auth.vo.AdminLoginVo">
|
||||
/*AdminLoginMapper.selectAdminLoginById*/
|
||||
@@ -33,23 +33,27 @@
|
||||
, ATU.id
|
||||
, ATU.password
|
||||
, ATUT.user_token_idx
|
||||
, ATUT.user_role
|
||||
, ATUT.user_type
|
||||
FROM ALISTLMS.test_user ATU
|
||||
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
|
||||
WHERE ATU.id = #{id}
|
||||
AND ATU.del_yn = 1
|
||||
AND ATUT.user_role IN ('A')
|
||||
AND ATUT.user_type IN ('A')
|
||||
LIMIT 1
|
||||
</select>
|
||||
<select id="selectAdminTokenByUserTokenIdx" resultType="com.alist.api.modules.admin.auth.vo.AdminLoginVo">
|
||||
/*AdminLoginMapper.selectAdminTokenByUserTokenIdx*/
|
||||
SELECT ATU.user_idx
|
||||
, ATU.id
|
||||
, ATUT.user_token_idx
|
||||
, ATUT.refresh_token
|
||||
, ATU.id
|
||||
, ATUT.user_token_idx
|
||||
, ATUT.refresh_token
|
||||
, ATUT.user_role
|
||||
, ATUT.user_type
|
||||
FROM ALISTLMS.test_user_token ATUT
|
||||
INNER JOIN ALISTLMS.test_user ATU ON ATU.user_idx = ATUT.user_idx
|
||||
WHERE ATUT.user_token_idx = #{userTokenIdx}
|
||||
AND ATUT.user_role IN ('A')
|
||||
AND ATUT.user_type IN ('A')
|
||||
AND ATU.del_yn = 1
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
INNER JOIN ALISTLMS.test_user_token ATUT ON ATUT.user_idx = ATU.user_idx
|
||||
WHERE ATU.id = #{id}
|
||||
AND ATU.del_yn = 1
|
||||
AND ATUT.user_role IN ('T','S1','S2')
|
||||
AND ATUT.user_type IN ('T','S')
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user