1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-05 15:01:23 +08:00

Fixed a null pointer exception when modifying an unprivileged role

This commit is contained in:
2023-05-15 09:09:55 +08:00
parent 75542c5be1
commit 84b7a95640

View File

@@ -71,15 +71,16 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
public boolean modifyRole(Role role) {
roleMapper.updateById(role);
Role originalRole = getRole(role.getId());
HashSet<Long> newPowerIds = new HashSet<>();
role.getPowers().forEach(power -> newPowerIds.add(power.getId()));
HashSet<Long> addPowerIds = new HashSet<>(newPowerIds);
if (originalRole != null) {
HashSet<Long> originalPowerIds = new HashSet<>();
originalRole.getMenus().forEach(menu -> originalPowerIds.add(menu.getPowerId()));
originalRole.getElements().forEach(element -> originalPowerIds.add(element.getPowerId()));
originalRole.getOperations().forEach(operation -> originalPowerIds.add(operation.getPowerId()));
HashSet<Long> newPowerIds = new HashSet<>();
role.getPowers().forEach(power -> newPowerIds.add(power.getId()));
HashSet<Long> deletePowerIds = new HashSet<>(originalPowerIds);
deletePowerIds.removeAll(newPowerIds);
HashSet<Long> addPowerIds = new HashSet<>(newPowerIds);
addPowerIds.removeAll(originalPowerIds);
deletePowerIds.forEach(deletePowerId -> {
LambdaQueryWrapper<PowerRole> wrapper = new LambdaQueryWrapper<>();
@@ -87,6 +88,7 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
.eq(PowerRole::getPowerId, deletePowerId);
powerRoleMapper.delete(wrapper);
});
}
addPowerIds.forEach(addPowerId -> {
PowerRole powerRole = new PowerRole();
powerRole.setRoleId(role.getId());