Skip to content

Commit ed66ed3

Browse files
Thomasrludomikula
Thomasr
authored andcommitted
Add email field to user and match users by email
1 parent 33a1adf commit ed66ed3

File tree

6 files changed

+31
-1
lines changed

6 files changed

+31
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public Mono<Organization> createDefault(User user, boolean isSuperAdmin) {
9898

9999
private Mono<Boolean> joinOrganizationInEnterpriseMode(String userId) {
100100
return getOrganizationInEnterpriseMode()
101-
.flatMap(organization -> orgMemberService.addMember(organization.getGid(), userId, MemberRole.MEMBER))
101+
.flatMap(organization -> orgMemberService.addMember(organization.getId(), userId, MemberRole.MEMBER))
102102
.defaultIfEmpty(false);
103103
}
104104

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class AuthUser {
1818

1919
private String uid;
2020
private String username;
21+
private String email;
2122
private String avatar;
2223
private Map<String, Object> rawUserInfo;
2324
private Map<String, Object> extra;

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public class User extends HasIdAndAuditing implements BeforeMongodbWrite, AfterM
4242

4343
private String name;
4444

45+
private String email;
46+
4547
private String uiLanguage;
4648

4749
private String avatar;

server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ public Mono<User> findByAuthUserRawId(AuthUser authUser) {
158158
public Mono<User> createNewUserByAuthUser(AuthUser authUser) {
159159
User.UserBuilder userBuilder = User.builder()
160160
.name(authUser.getUsername())
161+
.email(authUser.getEmail())
161162
.state(UserState.ACTIVATED)
162163
.isEnabled(true)
163164
.tpAvatarLink(authUser.getAvatar());

server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ public static AuthUser mapToAuthUser(Map<String, Object> map, HashMap<String, St
9696
return AuthUser.builder()
9797
.uid(uid)
9898
.username(username)
99+
.email(email)
99100
.avatar(avatar)
100101
.rawUserInfo(map)
101102
.build();
@@ -111,6 +112,7 @@ public static AuthUser mergeAuthUser(AuthUser low, AuthUser high) {
111112
return AuthUser.builder()
112113
.uid(high.getUid() != null ? high.getUid() : low.getUid())
113114
.username(high.getUsername() != null ? high.getUsername() : low.getUsername())
115+
.email(high.getEmail() != null ? high.getEmail() : low.getEmail())
114116
.avatar(high.getAvatar() != null ? high.getAvatar() : low.getAvatar())
115117
.rawUserInfo(high.getRawUserInfo() != null ? high.getRawUserInfo() : low.getRawUserInfo())
116118
.authToken(high.getAuthToken() != null ? high.getAuthToken() : low.getAuthToken())

server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,30 @@ public void addGidToDBObjects(MongockTemplate mongoTemplate) {
219219
}
220220
}
221221

222+
@ChangeSet(order = "023", id = "add-email", author = "")
223+
public void addEmailField(MongockTemplate mongoTemplate) {
224+
// Create a query to match all documents
225+
Query query = new Query();
226+
227+
// Use a DocumentCallbackHandler to iterate through each document
228+
mongoTemplate.executeQuery(query, "user", new DocumentCallbackHandler() {
229+
@Override
230+
public void processDocument(Document document) {
231+
// Generate a random UUID and ensure it is unique within the collection
232+
String username = document.getString("name");
233+
// Create an update object to add the 'gid' field
234+
Update update = new Update();
235+
update.set("email", username);
236+
237+
// Create a query to match the current document by its _id
238+
Query idQuery = new Query(Criteria.where("_id").is(document.getObjectId("_id")));
239+
240+
// Update the document with the new 'gid' field
241+
mongoTemplate.updateFirst(idQuery, update, "user");
242+
}
243+
});
244+
}
245+
222246
private void addGidField(MongockTemplate mongoTemplate, String collectionName) {
223247
// Create a query to match all documents
224248
Query query = new Query();

0 commit comments

Comments
 (0)