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

1 year ago
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;
}
}