|
@@ -0,0 +1,112 @@
|
|
|
+//package com.backendsys.config.Security.service;
|
|
|
+//
|
|
|
+//
|
|
|
+//import com.backendsys.exception.CustomException;
|
|
|
+//import com.backendsys.utils.response.ResultEnum;
|
|
|
+//import io.jsonwebtoken.Claims;
|
|
|
+//import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+//import org.springframework.stereotype.Service;
|
|
|
+//import org.springframework.util.StringUtils;
|
|
|
+//
|
|
|
+//import java.util.HashSet;
|
|
|
+//import java.util.List;
|
|
|
+//import java.util.Set;
|
|
|
+//
|
|
|
+///**
|
|
|
+// * 自定义权限 @PreAuthorize("@ss.hasPermi('3.2.3') && @ss.isSuper()")
|
|
|
+// */
|
|
|
+//@Service("ss")
|
|
|
+//public class __PermissionService {
|
|
|
+// //private static final String ALL_PERMISSION = "*:*:*";
|
|
|
+// @Autowired
|
|
|
+// private TokenService tokenService;
|
|
|
+// /**
|
|
|
+// * 验证用户是否具备权限
|
|
|
+// * @param permission 权限字符串
|
|
|
+// * @return boolean
|
|
|
+// */
|
|
|
+// public boolean hasPermi(String permission) {
|
|
|
+// // System.out.println(permission);
|
|
|
+//
|
|
|
+// if (StringUtils.isEmpty(permission)) return false;
|
|
|
+// // 获得当前用户的登录信息(包括权限)["xxx", "xxx"]
|
|
|
+// Claims loginUserInfo = tokenService.getRedisTokenInfo();
|
|
|
+//
|
|
|
+// // (/public/**) 接口 不要鉴权,否则会报错,会获取不到 loginUserInfo
|
|
|
+// // System.out.println("hasPermi - loginUserInfo:");
|
|
|
+// // System.out.println(loginUserInfo);
|
|
|
+//
|
|
|
+// // 没有 modules 即不是系统用户,即没有访问后台的权限
|
|
|
+// if (loginUserInfo != null) {
|
|
|
+// Object modules = loginUserInfo.get("modules");
|
|
|
+// if (modules != null) {
|
|
|
+// List<String> modulesList = (List<String>) modules;
|
|
|
+// Set<String> modulesSet = new HashSet<>();
|
|
|
+// for (String module : modulesList) {
|
|
|
+// modulesSet.add(module);
|
|
|
+// }
|
|
|
+// return hasPermissions(modulesSet, permission);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return false;
|
|
|
+// }
|
|
|
+// public boolean hasPermissions(Set<String> permissions, String permission) {
|
|
|
+// return permissions.contains(StringUtils.trimAllWhitespace(permission));
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 是否超级管理员
|
|
|
+// public boolean isSuper() {
|
|
|
+// Claims loginUserInfo = tokenService.getRedisTokenInfo();
|
|
|
+// Boolean bool = (Integer) loginUserInfo.get("is_super") == 1;
|
|
|
+// return bool;
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 是否超级管理员 (首位)
|
|
|
+// public boolean isFirstSuper() {
|
|
|
+// Claims loginUserInfo = tokenService.getRedisTokenInfo();
|
|
|
+// Boolean bool = (Integer) loginUserInfo.get("user_id") == 1;
|
|
|
+// return bool;
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 是否会员
|
|
|
+// public boolean isMember() {
|
|
|
+// Claims loginUserInfo = tokenService.getRedisTokenInfo();
|
|
|
+// // System.out.println("(isMember) loginUserInfo:");
|
|
|
+// // System.out.println(loginUserInfo);
|
|
|
+// Boolean bool = "Member".equals(loginUserInfo.get("target"));
|
|
|
+// return bool;
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 判断是否匹配当前 {用户ID} 与 {用户权限},不是则抛出错误
|
|
|
+// * - 匹配,通过
|
|
|
+// * - 不匹配,再次检查权限
|
|
|
+// * - 匹配,通过
|
|
|
+// * - 不匹配,抛出错误
|
|
|
+// * permissionService.checkUserIdAndPermission(sysUserDTO.getUser_id(), "3.2.1");
|
|
|
+// */
|
|
|
+// public void checkUserIdAndPermission(long user_id, String permission) {
|
|
|
+// Claims loginUserInfo = tokenService.getRedisTokenInfo();
|
|
|
+// Integer current_user_id = (Integer) loginUserInfo.get("user_id");
|
|
|
+// if (current_user_id != user_id) {
|
|
|
+// if (!hasPermi(permission)) {
|
|
|
+// throw new CustomException(ResultEnum.AUTH_ROLE_ERROR.getMessage(), ResultEnum.AUTH_ROLE_ERROR.getCode());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 判断是否 首位超级管理员 (id:1),不是则抛出错误
|
|
|
+// */
|
|
|
+// public void checkSuperAdminOfFirst(long user_id) {
|
|
|
+// if (user_id == 1) {
|
|
|
+// Claims loginUserInfo = tokenService.getRedisTokenInfo();
|
|
|
+// Boolean bool = (Integer) loginUserInfo.get("user_id") == 1;
|
|
|
+// if (!bool) {
|
|
|
+// throw new CustomException(ResultEnum.AUTH_USER_ERROR.getMessage(), ResultEnum.AUTH_USER_ERROR.getCode());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+//}
|