Minor code clean up
This commit is contained in:
parent
7316a77f42
commit
d384dac7ec
|
|
@ -3,18 +3,17 @@ package com.appsmith.server.repositories;
|
||||||
import com.appsmith.server.acl.AclPermission;
|
import com.appsmith.server.acl.AclPermission;
|
||||||
import com.appsmith.server.domains.Application;
|
import com.appsmith.server.domains.Application;
|
||||||
import com.appsmith.server.domains.QApplication;
|
import com.appsmith.server.domains.QApplication;
|
||||||
import com.appsmith.server.domains.User;
|
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
|
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
|
||||||
import org.springframework.data.mongodb.core.convert.MongoConverter;
|
import org.springframework.data.mongodb.core.convert.MongoConverter;
|
||||||
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
||||||
import org.springframework.data.mongodb.core.query.Query;
|
|
||||||
import org.springframework.security.core.context.ReactiveSecurityContextHolder;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static org.springframework.data.mongodb.core.query.Criteria.where;
|
import static org.springframework.data.mongodb.core.query.Criteria.where;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -34,33 +33,15 @@ public class CustomApplicationRepositoryImpl extends BaseAppsmithRepositoryImpl<
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Mono<Application> findByIdAndOrganizationId(String id, String orgId, AclPermission permission) {
|
public Mono<Application> findByIdAndOrganizationId(String id, String orgId, AclPermission permission) {
|
||||||
return ReactiveSecurityContextHolder.getContext()
|
Criteria orgIdCriteria = where(fieldName(QApplication.application.organizationId)).is(orgId);
|
||||||
.map(ctx -> ctx.getAuthentication())
|
Criteria idCriteria = getIdCriteria(id);
|
||||||
.flatMap(auth -> {
|
|
||||||
User user = (User) auth.getPrincipal();
|
|
||||||
Query query = new Query(getIdCriteria(id));
|
|
||||||
query.addCriteria(where(fieldName(QApplication.application.organizationId)).is(orgId));
|
|
||||||
query.addCriteria(new Criteria().andOperator(notDeleted(), userAcl(user, permission)));
|
|
||||||
|
|
||||||
return mongoOperations.query(Application.class)
|
return queryOne(List.of(idCriteria, orgIdCriteria), permission);
|
||||||
.matching(query)
|
|
||||||
.one();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Mono<Application> findByName(String name, AclPermission permission) {
|
public Mono<Application> findByName(String name, AclPermission permission) {
|
||||||
return ReactiveSecurityContextHolder.getContext()
|
Criteria nameCriteria = where(fieldName(QApplication.application.name)).is(name);
|
||||||
.map(ctx -> ctx.getAuthentication())
|
return queryOne(List.of(nameCriteria), permission);
|
||||||
.map(auth -> auth.getPrincipal())
|
|
||||||
.flatMap(principal -> {
|
|
||||||
User user = (User) principal;
|
|
||||||
Query query = new Query(where(fieldName(QApplication.application.name)).is(name));
|
|
||||||
query.addCriteria(new Criteria().andOperator(notDeleted(), userAcl(user, permission)));
|
|
||||||
|
|
||||||
return mongoOperations.query(Application.class)
|
|
||||||
.matching(query)
|
|
||||||
.one();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
package com.appsmith.server.repositories;
|
package com.appsmith.server.repositories;
|
||||||
|
|
||||||
import com.appsmith.server.acl.AclPermission;
|
import com.appsmith.server.acl.AclPermission;
|
||||||
import com.appsmith.server.domains.Application;
|
|
||||||
import com.appsmith.server.domains.Organization;
|
import com.appsmith.server.domains.Organization;
|
||||||
import com.appsmith.server.domains.QApplication;
|
|
||||||
import com.appsmith.server.domains.QOrganization;
|
import com.appsmith.server.domains.QOrganization;
|
||||||
|
import com.appsmith.server.domains.QPlugin;
|
||||||
import com.appsmith.server.domains.User;
|
import com.appsmith.server.domains.User;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
|
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
|
||||||
|
|
@ -15,6 +14,8 @@ import org.springframework.security.core.context.ReactiveSecurityContextHolder;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static org.springframework.data.mongodb.core.query.Criteria.where;
|
import static org.springframework.data.mongodb.core.query.Criteria.where;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -29,35 +30,16 @@ public class CustomOrganizationRepositoryImpl extends BaseAppsmithRepositoryImpl
|
||||||
@Override
|
@Override
|
||||||
public Mono<Organization> findByName(String name, AclPermission aclPermission) {
|
public Mono<Organization> findByName(String name, AclPermission aclPermission) {
|
||||||
log.debug("Going to find organization by Name: {}", name);
|
log.debug("Going to find organization by Name: {}", name);
|
||||||
return ReactiveSecurityContextHolder.getContext()
|
Criteria nameCriterita = where(fieldName(QOrganization.organization.name)).is(name);
|
||||||
.switchIfEmpty(Mono.error(new Exception("Can't find user")))
|
|
||||||
.map(ctx -> ctx.getAuthentication())
|
|
||||||
.flatMap(auth -> {
|
|
||||||
User user = (User) auth.getPrincipal();
|
|
||||||
Query query = new Query();
|
|
||||||
query.addCriteria(where(fieldName(QOrganization.organization.name)).is(name));
|
|
||||||
query.addCriteria(new Criteria().andOperator(notDeleted(), userAcl(user, aclPermission)));
|
|
||||||
|
|
||||||
return mongoOperations.query(Organization.class)
|
return queryOne(List.of(nameCriterita), aclPermission);
|
||||||
.matching(query)
|
|
||||||
.one();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Mono<Organization> findByIdAndPluginsPluginId(String organizationId, String pluginId, AclPermission aclPermission) {
|
public Mono<Organization> findByIdAndPluginsPluginId(String organizationId, String pluginId, AclPermission aclPermission) {
|
||||||
return ReactiveSecurityContextHolder.getContext()
|
Criteria idCriteria = where(fieldName(QOrganization.organization.id)).is(organizationId);
|
||||||
.map(ctx -> ctx.getAuthentication())
|
Criteria pluginIdCriteria = where(fieldName(QOrganization.organization.plugins.any().pluginId)).is(pluginId);
|
||||||
.flatMap(auth -> {
|
|
||||||
User user = (User) auth.getPrincipal();
|
|
||||||
Query query = new Query(getIdCriteria(organizationId));
|
|
||||||
query.addCriteria(where(fieldName(QOrganization.organization.plugins.any().pluginId)).is(pluginId));
|
|
||||||
query.addCriteria(new Criteria().andOperator(notDeleted(), userAcl(user, aclPermission)));
|
|
||||||
|
|
||||||
return mongoOperations.query(Organization.class)
|
|
||||||
.matching(query)
|
|
||||||
.one();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
return queryOne(List.of(idCriteria, pluginIdCriteria), aclPermission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.security.test.context.support.WithUserDetails;
|
||||||
import org.springframework.test.annotation.DirtiesContext;
|
import org.springframework.test.annotation.DirtiesContext;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
@ -28,17 +29,16 @@ public class UserServiceTest {
|
||||||
OrganizationService organizationService;
|
OrganizationService organizationService;
|
||||||
|
|
||||||
Mono<User> userMono;
|
Mono<User> userMono;
|
||||||
|
|
||||||
Mono<Organization> organizationMono;
|
Mono<Organization> organizationMono;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
|
|
||||||
userMono = userService.findByEmail("usertest@usertest.com");
|
userMono = userService.findByEmail("usertest@usertest.com");
|
||||||
organizationMono = organizationService.getByName("Spring Test Organization");
|
organizationMono = organizationService.getByName("Spring Test Organization");
|
||||||
}
|
}
|
||||||
|
|
||||||
//Test the update organization flow.
|
//Test the update organization flow.
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateInvalidUserWithAnything() {
|
public void updateInvalidUserWithAnything() {
|
||||||
User updateUser = new User();
|
User updateUser = new User();
|
||||||
|
|
@ -56,6 +56,7 @@ public class UserServiceTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@WithUserDetails(value = "api_user")
|
||||||
public void updateUserWithValidOrganization() {
|
public void updateUserWithValidOrganization() {
|
||||||
User updateUser = new User();
|
User updateUser = new User();
|
||||||
//Add valid organization id to the updateUser object.
|
//Add valid organization id to the updateUser object.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user