|
|
|
@ -52,7 +52,9 @@ public class Authority extends AbstractEntity implements GrantedAuthority {
|
|
|
|
|
description,
|
|
|
|
|
infoScope,
|
|
|
|
|
userInfoScope;
|
|
|
|
|
private List<String> actions;
|
|
|
|
|
private List<String>
|
|
|
|
|
actionGroups,
|
|
|
|
|
actions;
|
|
|
|
|
|
|
|
|
|
/**{@link Type 권한 유형} 코드를 반환한다.
|
|
|
|
|
* @return 권한 유형 코드
|
|
|
|
@ -82,6 +84,7 @@ public class Authority extends AbstractEntity implements GrantedAuthority {
|
|
|
|
|
|
|
|
|
|
/**권한 id를 설정한다.
|
|
|
|
|
* @param id 권한 id
|
|
|
|
|
* @return 현재 Authority
|
|
|
|
|
*/
|
|
|
|
|
public Authority setId(String id) {
|
|
|
|
|
this.id = id;
|
|
|
|
@ -97,6 +100,7 @@ public class Authority extends AbstractEntity implements GrantedAuthority {
|
|
|
|
|
|
|
|
|
|
/**권한 이름을 설정한다.
|
|
|
|
|
* @param name 권한 이름
|
|
|
|
|
* @return 현재 Authority
|
|
|
|
|
*/
|
|
|
|
|
public Authority setName(String name) {
|
|
|
|
|
this.name = name;
|
|
|
|
@ -132,6 +136,7 @@ public class Authority extends AbstractEntity implements GrantedAuthority {
|
|
|
|
|
* <ul><li>ALL - 모든 정보</li>
|
|
|
|
|
* <li>SELF - 사용자가 등록한 정보</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
* @return 현재 Authority
|
|
|
|
|
*/
|
|
|
|
|
public Authority setInfoScope(String infoScope) {
|
|
|
|
|
this.infoScope = infoScope;
|
|
|
|
@ -153,17 +158,58 @@ public class Authority extends AbstractEntity implements GrantedAuthority {
|
|
|
|
|
* <ul><li>ALL - 모든 사용자정보</li>
|
|
|
|
|
* <li>SELF - 사용자 자신의 정보</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
* @return 현재 Authority
|
|
|
|
|
*/
|
|
|
|
|
public Authority setUserInfoScope(String userInfoScope) {
|
|
|
|
|
this.userInfoScope = userInfoScope;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**실행할 수 있는 기능그룹을 반환한다.
|
|
|
|
|
* @return 실행할 수 있는 기능그룹
|
|
|
|
|
*/
|
|
|
|
|
public List<String> getActionGroups() {
|
|
|
|
|
return Assert.ifEmpty(actionGroups, Collections::emptyList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**지정한 기능그룹이 허용되는지 반환한다.
|
|
|
|
|
* @param actionGroups 기능그룹
|
|
|
|
|
* @return 기능그룹의 허용 여부
|
|
|
|
|
* <ul><li>기능그룹이 허용되 있으면 true</li>
|
|
|
|
|
* <li>기능그룹이 허용되 있지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public boolean isActionGroupGranted(String actionGroup) {
|
|
|
|
|
return Type.SUPER.equals(type())
|
|
|
|
|
|| getActionGroups().contains(actionGroup);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**실행할 수 있는 기능그룹을 설정한다.
|
|
|
|
|
* @param actionGroups 기능그룹
|
|
|
|
|
* @return 현재 Authority
|
|
|
|
|
*/
|
|
|
|
|
public Authority setActionGroups(List<String> actionGroups) {
|
|
|
|
|
this.actionGroups = actionGroups;
|
|
|
|
|
return this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**action을 실행할 권한이 있는지 반환한다.
|
|
|
|
|
* @param action 실행할 기능(URL)
|
|
|
|
|
* @return
|
|
|
|
|
* <ul><li>기능을 실행할 권한이 있으면 true</li>
|
|
|
|
|
* <li>기능을 실행할 권한이 없으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public boolean isActionGranted(String action) {
|
|
|
|
|
return Type.SUPER.equals(type())
|
|
|
|
|
|| getActions().contains(action);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**실행기능(URL)을 반환한다.
|
|
|
|
|
* @return 실행기능(URL)
|
|
|
|
|
*/
|
|
|
|
|
public List<String> getActions() {
|
|
|
|
|
return actions != null ? actions : Collections.emptyList();
|
|
|
|
|
return Assert.ifEmpty(actions, Collections::emptyList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**실행기능(URL)을 설정한다.
|
|
|
|
@ -205,19 +251,6 @@ public class Authority extends AbstractEntity implements GrantedAuthority {
|
|
|
|
|
return Assert.ifEmpty(infoScopes != null ? infoScopes.get(infoType) : null, () -> "none");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**action을 실행할 권한이 있는지 반환한다.
|
|
|
|
|
* @param action 실행할 기능(URL)
|
|
|
|
|
* @return
|
|
|
|
|
* <ul><li>기능을 실행할 권한이 있으면 true</li>
|
|
|
|
|
* <li>기능을 실행할 권한이 없으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
public boolean isGranted(String action) {
|
|
|
|
|
if (Type.SUPER.equals(type())) return true;
|
|
|
|
|
|
|
|
|
|
return getActions().contains(action);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String toString() {
|
|
|
|
|
return String.format("%s{id:'%s', name:'%s'}", getClass().getSimpleName(), getId(), getName());
|
|
|
|
|