blob: 8bf2c13532d8ceb7bd6be4bc88bf9b64de77267f [file] [log] [blame]
package com.example.myproject.config;
import cn.dev33.satoken.stp.StpInterface;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import com.example.myproject.entity.Users;
import com.example.myproject.repository.UserRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* 自定义权限加载接口实现类
*/
@Component // 保证此类被 SpringBoot 扫描,完成 Sa-Token 的自定义权限验证扩展
@RequiredArgsConstructor
public class StpInterfaceImpl implements StpInterface {
private final UserRepository userRepository;
/**
* 返回一个账号所拥有的权限码集合
*/
@Override
public List<String> getPermissionList(Object loginId, String loginType) {
return new ArrayList<>();
}
/**
* 返回一个账号所拥有的角色标识集合 (权限与角色可分开校验)
*/
@Override
@Transactional
public List<String> getRoleList(Object loginId, String loginType) {
List<String> list = new ArrayList<String>();
long id = 0;
if(loginId instanceof String){
id = Long.parseLong(loginId.toString());
}else{
id = (long) loginId;
}
Users user = userRepository.getById(id);
list.add(user.getLevelRole());
return list;
}
}