Skip to content

Commit 9b36805

Browse files
Merge 2266ca2 into 5466117
2 parents 5466117 + 2266ca2 commit 9b36805

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UsersServiceImpl.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,12 @@ public Map<String, Object> grantProjectWithReadPerm(User loginUser, int userId,
556556
putMsg(result, Status.FUNCTION_DISABLED);
557557
return result;
558558
}
559+
560+
if (!isAdmin(loginUser)) {
561+
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
562+
return result;
563+
}
564+
559565
// check exist
560566
User tempUser = userMapper.selectById(userId);
561567
if (tempUser == null) {
@@ -603,6 +609,7 @@ public Map<String, Object> grantProject(User loginUser, int userId, String proje
603609
putMsg(result, Status.FUNCTION_DISABLED);
604610
return result;
605611
}
612+
606613
// check exist
607614
User tempUser = userMapper.selectById(userId);
608615
if (tempUser == null) {
@@ -611,6 +618,11 @@ public Map<String, Object> grantProject(User loginUser, int userId, String proje
611618
return result;
612619
}
613620

621+
if (!isAdmin(loginUser)) {
622+
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
623+
return result;
624+
}
625+
614626
if (check(result, StringUtils.isEmpty(projectIds), Status.SUCCESS)) {
615627
log.warn("Parameter projectIds is empty.");
616628
return result;
@@ -763,6 +775,11 @@ public Map<String, Object> grantUDFFunction(User loginUser, int userId, String u
763775
return result;
764776
}
765777

778+
if (!isAdmin(loginUser)) {
779+
putMsg(result, Status.NO_CURRENT_OPERATING_PERMISSION);
780+
return result;
781+
}
782+
766783
udfUserMapper.deleteByUserId(userId);
767784

768785
if (check(result, StringUtils.isEmpty(udfIds), Status.SUCCESS)) {

dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,14 @@ public void testGrantProject() {
397397
result = usersService.grantProject(loginUser, userId, projectIds);
398398
logger.info(result.toString());
399399
Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
400+
401+
// ERROR: NO_CURRENT_OPERATING_PERMISSION
402+
loginUser.setId(3);
403+
loginUser.setUserType(UserType.GENERAL_USER);
404+
when(userMapper.selectById(3)).thenReturn(loginUser);
405+
result = this.usersService.grantProject(loginUser, userId, projectIds);
406+
logger.info(result.toString());
407+
Assertions.assertEquals(Status.NO_CURRENT_OPERATING_PERMISSION, result.get(Constants.STATUS));
400408
}
401409

402410
@Test
@@ -418,6 +426,14 @@ public void testGrantProjectWithReadPerm() {
418426
result = usersService.grantProjectWithReadPerm(loginUser, userId, projectIds);
419427
logger.info(result.toString());
420428
Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
429+
430+
// ERROR: NO_CURRENT_OPERATING_PERMISSION
431+
loginUser.setId(3);
432+
loginUser.setUserType(UserType.GENERAL_USER);
433+
when(userMapper.selectById(3)).thenReturn(loginUser);
434+
result = this.usersService.grantProjectWithReadPerm(loginUser, userId, projectIds);
435+
logger.info(result.toString());
436+
Assertions.assertEquals(Status.NO_CURRENT_OPERATING_PERMISSION, result.get(Constants.STATUS));
421437
}
422438

423439
@Test
@@ -527,11 +543,20 @@ public void testGrantUDFFunction() {
527543
Map<String, Object> result = usersService.grantUDFFunction(loginUser, 2, udfIds);
528544
logger.info(result.toString());
529545
Assertions.assertEquals(Status.USER_NOT_EXIST, result.get(Constants.STATUS));
546+
530547
// success
531548
when(udfUserMapper.deleteByUserId(1)).thenReturn(1);
532549
result = usersService.grantUDFFunction(loginUser, 1, udfIds);
533550
logger.info(result.toString());
534551
Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
552+
553+
// ERROR: NO_CURRENT_OPERATING_PERMISSION
554+
loginUser.setId(2);
555+
loginUser.setUserType(UserType.GENERAL_USER);
556+
when(userMapper.selectById(2)).thenReturn(loginUser);
557+
result = this.usersService.grantUDFFunction(loginUser, 2, udfIds);
558+
logger.info(result.toString());
559+
Assertions.assertEquals(Status.NO_CURRENT_OPERATING_PERMISSION, result.get(Constants.STATUS));
535560
}
536561

537562
@Test

0 commit comments

Comments
 (0)