This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev-2.1.4
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev-2.1.4 by this push:
new c6ad494d8 [Improve] check member permissions improvement
c6ad494d8 is described below
commit c6ad494d8645888a2590bb439ca36a49cdf44b6a
Author: benjobs <[email protected]>
AuthorDate: Sun Apr 21 14:02:07 2024 +0800
[Improve] check member permissions improvement
---
.../system/service/impl/MemberServiceImpl.java | 17 +++++++++++++++
.../main/resources/mapper/system/MemberMapper.xml | 25 ++++++++++++++++------
2 files changed, 35 insertions(+), 7 deletions(-)
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/MemberServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/MemberServiceImpl.java
index b007a5d14..ad0b542b3 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/MemberServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/MemberServiceImpl.java
@@ -21,6 +21,8 @@ import org.apache.streampark.common.util.Utils;
import org.apache.streampark.console.base.domain.RestRequest;
import org.apache.streampark.console.base.exception.ApiAlertException;
import org.apache.streampark.console.base.mybatis.pager.MybatisPager;
+import org.apache.streampark.console.core.enums.UserType;
+import org.apache.streampark.console.core.service.ServiceHelper;
import org.apache.streampark.console.system.entity.Member;
import org.apache.streampark.console.system.entity.Team;
import org.apache.streampark.console.system.entity.User;
@@ -54,6 +56,7 @@ public class MemberServiceImpl extends
ServiceImpl<MemberMapper, Member> impleme
@Autowired private RoleService roleService;
@Autowired private TeamService teamService;
+ @Autowired private ServiceHelper serviceHelper;
@Override
@Transactional
@@ -153,6 +156,7 @@ public class MemberServiceImpl extends
ServiceImpl<MemberMapper, Member> impleme
@Override
public void deleteMember(Member memberArg) {
+ checkPermission(memberArg);
Member member =
Optional.ofNullable(this.getById(memberArg.getId()))
.orElseThrow(
@@ -163,8 +167,21 @@ public class MemberServiceImpl extends
ServiceImpl<MemberMapper, Member> impleme
userService.clearLastTeam(member.getUserId(), member.getTeamId());
}
+ private void checkPermission(Member member) {
+ User user = serviceHelper.getLoginUser();
+ ApiAlertException.throwIfTrue(user == null, "Permission denied, invalid
login");
+ if (user.getUserType() == UserType.USER) {
+ List<Team> teamList = this.findUserTeams(user.getUserId());
+ Optional<Team> team =
+ teamList.stream().filter(c ->
c.getId().equals(member.getTeamId())).findFirst();
+ ApiAlertException.throwIfTrue(
+ !team.isPresent(), "Permission denied, The current user is not in
the team");
+ }
+ }
+
@Override
public void updateMember(Member member) {
+ checkPermission(member);
Member oldMember =
Optional.ofNullable(this.getById(member.getId()))
.orElseThrow(
diff --git
a/streampark-console/streampark-console-service/src/main/resources/mapper/system/MemberMapper.xml
b/streampark-console/streampark-console-service/src/main/resources/mapper/system/MemberMapper.xml
index 643ebc206..a402027fb 100644
---
a/streampark-console/streampark-console-service/src/main/resources/mapper/system/MemberMapper.xml
+++
b/streampark-console/streampark-console-service/src/main/resources/mapper/system/MemberMapper.xml
@@ -71,14 +71,25 @@
</select>
<select id="findUsersNotInTeam"
resultType="org.apache.streampark.console.system.entity.User">
- select tu.* from t_user tu
- where tu.user_id
+ select u.user_id,
+ u.username,
+ u.nick_name,
+ u.user_type,
+ u.login_type,
+ u.status,
+ u.email,
+ u.create_time,
+ u.modify_time,
+ u.sex,
+ u.description
+ from t_user u
+ where u.user_id
not in (
- select u.user_id
- from t_user u join t_member m
- on m.team_id = #{teamId}
- and m.user_id = u.user_id
- )
+ select u.user_id
+ from t_user u join t_member m
+ on m.team_id = #{teamId}
+ and m.user_id = u.user_id
+ )
</select>
</mapper>