初始化用户时增加数据源管理权,给用户授权后改为无需重新登录即可拥有新的权限

This commit is contained in:
暮光:城中城
2023-02-13 20:27:53 +08:00
parent 1ae0e92c10
commit f8efca5ee0
9 changed files with 33 additions and 40 deletions

View File

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.config.security.UserAuthVo;
import com.zyplayer.doc.data.config.security.UserAuthInfo;
import com.zyplayer.doc.data.repository.manage.entity.UserInfo;
import com.zyplayer.doc.data.service.manage.UserAuthService;
import com.zyplayer.doc.data.service.manage.UserInfoService;
@@ -73,7 +73,7 @@ public class LoginController {
return DocResponseJson.warn("用户名或密码错误");
}
}
List<UserAuthVo> userAuthSet = userAuthService.getUserAuthSet(userInfo.getId());
List<UserAuthInfo> userAuthSet = userAuthService.getUserAuthSet(userInfo.getId());
String accessToken = IdUtil.simpleUUID();
DocUserDetails userDetails = new DocUserDetails(userInfo.getId(), userInfo.getUserName(), userInfo.getPassword(), true, userAuthSet);
DocUserUtil.setCurrentUser(accessToken, userDetails);

View File

@@ -9,6 +9,7 @@ import com.zyplayer.doc.core.json.DocResponseJson;
import com.zyplayer.doc.core.json.ResponseJson;
import com.zyplayer.doc.data.config.security.DocUserDetails;
import com.zyplayer.doc.data.config.security.DocUserUtil;
import com.zyplayer.doc.data.config.security.UserAuthInfo;
import com.zyplayer.doc.data.repository.manage.entity.AuthInfo;
import com.zyplayer.doc.data.repository.manage.entity.UserAuth;
import com.zyplayer.doc.data.repository.manage.entity.UserInfo;
@@ -227,26 +228,22 @@ public class UserInfoController {
authIdsList = Arrays.stream(authIds.split(",")).map(Long::valueOf).collect(Collectors.toList());
}
DocUserDetails currentUser = DocUserUtil.getCurrentUser();
UserAuth userAuthUp = new UserAuth();
userAuthUp.setDelFlag(1);
userAuthUp.setUpdateTime(new Date());
userAuthUp.setUpdateUid(currentUser.getUserId());
QueryWrapper<UserAuth> queryWrapper = new QueryWrapper<>();
queryWrapper.in("user_id", userIdsList);
userAuthService.update(userAuthUp, queryWrapper);
userAuthService.remove(queryWrapper);
List<UserAuth> createList = new LinkedList<>();
for (int i = 0; i < userIdsList.size(); i++) {
for (int j = 0; j < authIdsList.size(); j++) {
for (Long userId : userIdsList) {
for (Long authId : authIdsList) {
UserAuth userAuth = new UserAuth();
userAuth.setUserId(userIdsList.get(i));
userAuth.setAuthId(authIdsList.get(j));
userAuth.setUserId(userId);
userAuth.setAuthId(authId);
userAuth.setCreateUid(currentUser.getUserId());
userAuth.setCreationTime(new Date());
userAuth.setDelFlag(0);
createList.add(userAuth);
}
List<UserAuthInfo> userAuthListNew = userAuthService.getUserAuthSet(userId);
DocUserUtil.setUserAuth(userId, userAuthListNew);
}
userAuthService.saveBatch(createList);
return DocResponseJson.ok();