Skip to content

用户默认角色扩展

概述

当新用户登录时由于没有分配权限,导致用户登录后呈现空白页面。为优化用户体验,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开头