|
|
@@ -0,0 +1,81 @@
|
|
|
+package com.zhentao.service.impl;
|
|
|
+
|
|
|
+import com.zhentao.entity.AdminUser;
|
|
|
+import com.zhentao.mapper.AdminUserMapper;
|
|
|
+import com.zhentao.service.AdminSecurityService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 管理员安全服务实现类
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class AdminSecurityServiceImpl implements AdminSecurityService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AdminUserMapper adminUserMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<String> getUserPermissions(Integer userId) {
|
|
|
+ // 获取用户信息
|
|
|
+ AdminUser user = adminUserMapper.selectById(userId);
|
|
|
+ if (user == null) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 超级管理员拥有所有权限
|
|
|
+ if ("super".equals(user.getRole())) {
|
|
|
+ return Arrays.asList(
|
|
|
+ "user:view", "user:edit", "user:delete",
|
|
|
+ "dynamic:view", "dynamic:edit", "dynamic:delete",
|
|
|
+ "activity:view", "activity:edit", "activity:delete",
|
|
|
+ "course:view", "course:edit", "course:delete",
|
|
|
+ "matchmaker:view", "matchmaker:edit", "matchmaker:delete",
|
|
|
+ "vip:view", "vip:edit",
|
|
|
+ "report:view", "report:handle",
|
|
|
+ "announcement:view", "announcement:edit",
|
|
|
+ "banner:view", "banner:edit",
|
|
|
+ "admin:view", "admin:edit", "admin:delete"
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ // 普通管理员权限
|
|
|
+ return Arrays.asList(
|
|
|
+ "user:view",
|
|
|
+ "dynamic:view", "dynamic:edit",
|
|
|
+ "activity:view", "activity:edit",
|
|
|
+ "course:view",
|
|
|
+ "matchmaker:view",
|
|
|
+ "report:view", "report:handle",
|
|
|
+ "announcement:view",
|
|
|
+ "banner:view"
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<String> getUserRoles(Integer userId) {
|
|
|
+ AdminUser user = adminUserMapper.selectById(userId);
|
|
|
+ if (user == null) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> roles = new ArrayList<>();
|
|
|
+ if ("super".equals(user.getRole())) {
|
|
|
+ roles.add("super_admin");
|
|
|
+ roles.add("admin");
|
|
|
+ } else {
|
|
|
+ roles.add("admin");
|
|
|
+ }
|
|
|
+ return roles;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean isSuperAdmin(Integer userId) {
|
|
|
+ AdminUser user = adminUserMapper.selectById(userId);
|
|
|
+ return user != null && "super".equals(user.getRole());
|
|
|
+ }
|
|
|
+}
|