
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.cms.mber.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author : takensoft
* @since : 2024.04.01
*
* 회원 정보 관련 VO
* UserDetails : security 사용을 위해 상속
* Serializable : 직렬화를 위해 상속
*/
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class MberVO implements UserDetails, Serializable {
private static final long serialVersionUID = 1L;
/**
* 회원 아이디
*/
private String mbrId;
/**
* 로그인 아이디
*/
private String lgnId;
/**
* 회원 이름
*/
private String mbrNm;
/**
* 닉네임
*/
private String ncnm;
/**
* 비밀번호
*/
private String pswd;
/**
* 휴대폰번호
*/
private String mblTelno;
/**
* 전화번호
*/
private String telno;
/**
* 이메일
*/
private String eml;
/**
* 우편번호
*/
private String zip;
/**
* 주소
*/
private String addr;
/**
* 상세주소
*/
private String daddr;
/**
* 회원상태
* 0: 탈퇴, 1: 승인, 2: 승인대기, 3: 차단
*/
private String mbrStts;
/**
* 사용여부
*/
private boolean useYn;
/**
* 차단일
*/
private String cntrlDt;
/**
* 차단사유
*/
private String cntrlRsn;
/**
* 문자수신여부
* 0: 거부, 1: 허용
*/
private String smsRcptnAgreYn;
/**
* 이메일수신여부
* 0: 거부, 1: 허용
*/
private String emlRcptnAgreYn;
/**
* 개인정보공개여부
* 0: 거부, 1: 허용
*/
private String prvcRlsYn;
/**
* 회원형태
* S: 시스템, K: 카카오, N: 네이버, G: 구글, F: 페이스북
*/
private String mbrType;
/**
* 비밀번호 변경일
*/
private String pswdChgDt;
/**
* 최초등록 아이디
*/
private String frstRegIp;
/**
* 시스템 제공 여부 -> 시스템에서 제공되는 데이터는 사용자가 제거하지 못하도록 하기 위한 설정값
* 0: 시스템, 1: 사용자
*/
private String sysPvsnYn;
/**
* 등록자
*/
private String rgtr;
/**
* 등록일
*/
private String regDt;
/**
* 수정자
*/
private String mdfr;
/**
* 수정일
*/
private String mdfcnDt;
/**
* 권한 정보
*/
@JsonIgnore
private List<MberAuthorVO> authorList = new ArrayList<MberAuthorVO>();
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
if(this.authorList.size() > 0) {
return this.authorList.stream().map(auth -> new SimpleGrantedAuthority(
auth.getAuthrtCd()
)).collect(Collectors.toList());
} else {
return null;
}
}
@Override
public String getPassword() {
return this.pswd;
}
@Override
public String getUsername() {
return this.lgnId;
}
@Override
public boolean isAccountNonExpired() {
return this.useYn;
}
@Override
public boolean isAccountNonLocked() {
return this.useYn;
}
@Override
public boolean isCredentialsNonExpired() {
return this.useYn;
}
@Override
public boolean isEnabled() {
return this.useYn;
}
}