Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 93a0023

Browse files
Merge pull request #401 from lowcoder-org/fix-for-email-sign-up-env-var-not-applicable
Mongo DB Datasource Query Failure Fix + SIGNUP Enablement Always On Fix
2 parents 852d8ab + 75f41f0 commit 93a0023

File tree

7 files changed

+46
-6
lines changed

7 files changed

+46
-6
lines changed

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/authentication/AuthenticationServiceImpl.java‎

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package org.lowcoder.domain.authentication;
22

33
import lombok.extern.slf4j.Slf4j;
4+
import org.lowcoder.domain.organization.service.OrgMemberService;
45
import org.lowcoder.domain.organization.service.OrganizationService;
56
import org.lowcoder.sdk.auth.AbstractAuthConfig;
7+
import org.lowcoder.sdk.auth.EmailAuthConfig;
68
import org.lowcoder.sdk.config.AuthProperties;
79
import org.lowcoder.sdk.config.CommonConfig;
10+
import org.lowcoder.sdk.constants.AuthSourceConstants;
811
import org.lowcoder.sdk.constants.WorkspaceMode;
912
import org.springframework.beans.factory.annotation.Autowired;
1013
import org.springframework.stereotype.Service;
@@ -24,6 +27,10 @@ public class AuthenticationServiceImpl implements AuthenticationService {
2427

2528
@Autowired
2629
private OrganizationService organizationService;
30+
31+
@Autowired
32+
private OrgMemberService orgMemberService;
33+
2734
@Autowired
2835
private CommonConfig commonConfig;
2936
@Autowired
@@ -49,16 +56,27 @@ private Mono<FindAuthConfig> findAuthConfig(String orgId, Function<AbstractAuthC
4956

5057
@Override
5158
public Flux<FindAuthConfig> findAllAuthConfigs(String orgId, boolean enableOnly) {
52-
return findAllAuthConfigsByDomain()
59+
60+
Mono<FindAuthConfig> emailAuthConfigMono = orgMemberService.doesAtleastOneAdminExist()
61+
.map(doesAtleastOneAdminExist -> {
62+
boolean shouldEnableRegister = !doesAtleastOneAdminExist && authProperties.getEmail().isEnableRegister();
63+
return new FindAuthConfig
64+
(new EmailAuthConfig(AuthSourceConstants.EMAIL, authProperties.getEmail().isEnable(), shouldEnableRegister), null);
65+
});
66+
67+
68+
Flux<FindAuthConfig> findAuthConfigFlux = findAllAuthConfigsByDomain()
5369
.switchIfEmpty(findAllAuthConfigsForEnterpriseMode())
5470
.switchIfEmpty(findAllAuthConfigsForSaasMode(orgId))
5571
.filter(findAuthConfig -> {
5672
if (enableOnly) {
5773
return findAuthConfig.authConfig().isEnable();
5874
}
5975
return true;
60-
})
61-
.concatWithValues(new FindAuthConfig(DEFAULT_AUTH_CONFIG, null));
76+
});
77+
78+
return Flux.concat(findAuthConfigFlux, emailAuthConfigMono);
79+
6280
}
6381

6482
private Flux<FindAuthConfig> findAllAuthConfigsByDomain() {

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrgMemberService.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public interface OrgMemberService {
2424

2525
Mono<Long> getOrgMemberCount(String orgId);
2626

27+
Mono<Boolean> doesAtleastOneAdminExist();
28+
2729
Mono<Long> countAllActiveOrgs(String userId);
2830

2931
Mono<OrgMember> getOrgMember(String orgId, String userId);

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrgMemberServiceImpl.java‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,13 @@ public Mono<Long> getOrgMemberCount(String orgId) {
125125
return biRelationService.countBySourceId(ORG_MEMBER, orgId);
126126
}
127127

128+
@Override
129+
public Mono<Boolean> doesAtleastOneAdminExist() {
130+
return biRelationService.countByRelation(ORG_MEMBER, MemberRole.ADMIN.getValue())
131+
.single()
132+
.map(count -> count != 0);
133+
}
134+
128135
@Override
129136
public Mono<Boolean> addMember(String orgId, String userId, MemberRole memberRole) {
130137
return biRelationService.addBiRelation(ORG_MEMBER, orgId,

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/QueryExecutionService.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public Mono<QueryExecutionResult> executeQuery(Datasource datasource, Map<String
4848
String timeoutStr, QueryVisitorContext queryVisitorContext) {
4949

5050
int timeoutMs = QueryTimeoutUtils.parseQueryTimeoutMs(timeoutStr, requestParams, common.getMaxQueryTimeout());
51-
queryConfig.putIfAbsent("timeoutMs", timeoutMs);
51+
queryConfig.putIfAbsent("timeoutMs", String.valueOf(timeoutMs));
5252

5353
return Mono.defer(() -> {
5454
if (datasourceMetaInfoService.isJsDatasourcePlugin(datasource.getType())) {

‎server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelationRepository.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public interface BiRelationRepository extends ReactiveMongoRepository<BiRelation
2626

2727
Flux<BiRelation> findByBizTypeAndSourceIdAndRelation(BiRelationBizType bizType, String sourceId, String relation);
2828

29+
Mono<Long> countByBizTypeAndRelation(BiRelationBizType bizType, String relation);
30+
2931
Mono<Long> countByBizTypeAndSourceId(BiRelationBizType bizType, String sourceId);
3032

3133
Mono<Long> countByBizTypeAndTargetId(BiRelationBizType bizType, String targetId);

‎server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelationService.java‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ public Flux<BiRelation> getBySourceIdAndRelation(BiRelationBizType bizType, Stri
166166
return biRelationRepository.findByBizTypeAndSourceIdAndRelation(bizType, sourceId, relation);
167167
}
168168

169+
public Mono<Long> countByRelation(BiRelationBizType bizType, String relation) {
170+
return biRelationRepository.countByBizTypeAndRelation(bizType, relation);
171+
}
172+
169173
public Mono<Long> countBySourceId(BiRelationBizType bizType, String sourceId) {
170174
return biRelationRepository.countByBizTypeAndSourceId(bizType, sourceId);
171175
}

‎server/api-service/lowcoder-server/src/main/resources/application-lowcoder.yml‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ spring:
33
mongodb:
44
authentication-database: admin
55
auto-index-creation: false
6-
uri: mongodb://lowcoder:secret123@127.0.0.1/lowcoder?authSource=admin
6+
uri: mongodb://192.168.8.100:27017/lowcoder?authSource=admin
77
redis:
8-
url: redis://localhost:6379
8+
url: redis://192.168.8.100:6379
99
main:
1010
allow-bean-definition-overriding: true
1111
allow-circular-references: true
@@ -41,6 +41,8 @@ common:
4141
- '*'
4242
version: 1.1.8
4343
block-hound-enable: false
44+
js-executor:
45+
host: http://127.0.0.1:6060
4446

4547
material:
4648
mongodb-grid-fs:
@@ -52,3 +54,8 @@ springdoc:
5254
swagger-ui:
5355
path: /api/docs/swagger-ui
5456
paths-to-exclude: /api/v1/**
57+
58+
auth:
59+
email:
60+
enable: true
61+
enable-register: false

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /