You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.ruoyi.system.handle;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
import org.dromara.warm.flow.core.handler.PermissionHandler;
import org.dromara.warm.flow.core.utils.StreamUtils;
import java.util.List;
/**
* 办理人权限处理器(可通过配置文件注入,也可用@Bean/@Component方式
*
* @author shadow
*/
public class CustomPermissionHandler implements PermissionHandler {
/**
* 获取当前操作用户所有权限
*/
@Override
public List<String> permissions() {
// 办理人权限标识,比如用户,角色,部门等, 流程设计时未设置办理人或者ignore为true可不传 [按需传输]
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
List<SysRole> roles = sysUser.getRoles();
List<String> permissionList = StreamUtils.toList(roles, role -> "role:" + role.getRoleId());
if (sysUser.getUserId() != null) {
permissionList.add(String.valueOf(sysUser.getUserId()));
}
if (sysUser.getDeptId() != null) {
permissionList.add("dept:" + sysUser.getDeptId());
}
return permissionList;
}
/**
* 获取当前办理人
* @return 当前办理人
*/
@Override
public String getHandler() {
SysUser sysUser = SecurityUtils.getLoginUser().getUser();
if (sysUser.getUserId() != null) {
return String.valueOf(sysUser.getUserId());
}
return null;
}
}