Browse Source

[Fix-10595][api] Fix Dependent Node Only View Projects Created By Self (#10834)

* [Fix-10595][api] Fix Dependent Node Only View Projects Created By Self
3.1.0-release
Assert 2 years ago committed by GitHub
parent
commit
4ff8eaa996
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml
  2. 48
      dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProjectMapperTest.java

10
dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml

@ -162,11 +162,13 @@
<select id="queryAllProject" resultType="org.apache.dolphinscheduler.dao.entity.Project"> <select id="queryAllProject" resultType="org.apache.dolphinscheduler.dao.entity.Project">
select select
<include refid="baseSql"/> <include refid="baseSqlV2">
from t_ds_project <property name="alias" value="p"/>
where 1=1 </include>
from t_ds_project p
<if test="userId != 0"> <if test="userId != 0">
and user_id = #{userId} right join t_ds_relation_project_user rpu on p.id = rpu.project_id
where rpu.user_id = #{userId}
</if> </if>
</select> </select>

48
dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ProjectMapperTest.java

@ -19,6 +19,7 @@ package org.apache.dolphinscheduler.dao.mapper;
import org.apache.dolphinscheduler.dao.BaseDaoTest; import org.apache.dolphinscheduler.dao.BaseDaoTest;
import org.apache.dolphinscheduler.dao.entity.Project; import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.ProjectUser;
import org.apache.dolphinscheduler.dao.entity.User; import org.apache.dolphinscheduler.dao.entity.User;
import java.util.Arrays; import java.util.Arrays;
@ -41,6 +42,9 @@ public class ProjectMapperTest extends BaseDaoTest {
@Autowired @Autowired
private UserMapper userMapper; private UserMapper userMapper;
@Autowired
private ProjectUserMapper projectUserMapper;
/** /**
* insert * insert
* *
@ -143,14 +147,14 @@ public class ProjectMapperTest extends BaseDaoTest {
Page<Project> page = new Page(1, 3); Page<Project> page = new Page(1, 3);
IPage<Project> projectIPage = projectMapper.queryProjectListPaging( IPage<Project> projectIPage = projectMapper.queryProjectListPaging(
page, page,
null, null,
null null
); );
IPage<Project> projectIPage1 = projectMapper.queryProjectListPaging( IPage<Project> projectIPage1 = projectMapper.queryProjectListPaging(
page, page,
null, null,
project.getName() project.getName()
); );
Assert.assertEquals(projectIPage.getTotal(), 1); Assert.assertEquals(projectIPage.getTotal(), 1);
Assert.assertEquals(projectIPage1.getTotal(), 1); Assert.assertEquals(projectIPage1.getTotal(), 1);
@ -170,7 +174,7 @@ public class ProjectMapperTest extends BaseDaoTest {
} }
/** /**
* test query authed prject list by userId * test query authed project list by userId
*/ */
@Test @Test
public void testQueryAuthedProjectListByUserId() { public void testQueryAuthedProjectListByUserId() {
@ -189,20 +193,42 @@ public class ProjectMapperTest extends BaseDaoTest {
Project project = insertOne(); Project project = insertOne();
List<Project> projects = projectMapper.queryProjectExceptUserId( List<Project> projects = projectMapper.queryProjectExceptUserId(
100000 100000
); );
Assert.assertNotEquals(projects.size(), 0); Assert.assertNotEquals(projects.size(), 0);
} }
@Test
public void testQueryAllProject() {
User user = new User();
user.setUserName("ut user");
userMapper.insert(user);
Project project = insertOne();
project.setUserId(user.getId());
projectMapper.updateById(project);
ProjectUser projectUser = new ProjectUser();
projectUser.setProjectId(project.getId());
projectUser.setUserId(user.getId());
projectUser.setCreateTime(new Date());
projectUser.setUpdateTime(new Date());
projectUserMapper.insert(projectUser);
List<Project> allProject = projectMapper.queryAllProject(user.getId());
Assert.assertNotEquals(allProject.size(), 0);
}
/** /**
* test query project permission * test query project permission
*/ */
@Test @Test
public void testListAuthorizedProjects(){ public void testListAuthorizedProjects() {
Project project = insertOne(); Project project = insertOne();
List<Project> projects = projectMapper.listAuthorizedProjects(1, Collections.singletonList(project.getId())); List<Project> projects = projectMapper.listAuthorizedProjects(1, Collections.singletonList(project.getId()));
Assert.assertEquals(projects.size(),0); Assert.assertEquals(projects.size(), 0);
} }
} }
Loading…
Cancel
Save