用户默认角色扩展
概述
当新用户登录时由于没有分配权限,导致用户登录后呈现空白页面。为优化用户体验,pangea提供了一套登录用户绑定默认角色的解决方案。
适用范围
Pangea v2.2.0及以上版本
快速上手
1、在业务模块的pom
文件中添加pangea-common-extends
依赖。
xml
<!--pangea扩展包 -->
<dependency>
<groupId>com.hisense.pangea</groupId>
<artifactId>pangea-common-extends</artifactId>
</dependency>
2、在yml配置文件中添加如下参数:
yaml
pangea:
application:
system_name: demo #系统名称,必须与前端请求headers中systemName参数一致
ignore-role-extend: true
3、实现UserExtendService
服务,并重写queryUserRoleRel
方法。
java
import com.hisense.pangea.service.UserExtendService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @author pangea
* @version Pangea2.0
* @date 2020/11/12 11:41
*/
//注意:此处添加Service注解, 使之交于IOC容器管理bean
@Service
public class UserExtendServcieImpl implements UserExtendService {
/**
* 获取用户与默认角色的关联关系
* 此接口将传入用户ID,登录账号,组织全路径等参数,返回角色编码集合
*
* @param userId 登录用户ID 例: 2
* @param loginName 登录账号 例: zhangsan
* @param orgFullPath 组织全路径 例: 海信集团/IT与数据管理部/技术开发部
* @return 角色编码集合
*/
@Override
public List<String> queryUserRoleRel(Long userId, String loginName, String orgFullPath) {
//业务实现代码...
//以下代码为Demo演示,不可用于实际业务开发
System.out.println("用户ID : " + userId);
System.out.println("登录账号 : " + loginName);
System.out.println("组织全路径 : " + orgFullPath);
List<String> list = new ArrayList<>();
if("admin".equals(loginName)){
list.add("adminRole");
} else{
list.add("userRole");
}
return list;
}
}
注意事项
yaml
spring:
application:
name: pangea-demo #不能以pangea开头