3
3
import lombok .RequiredArgsConstructor ;
4
4
import org .apache .commons .lang3 .StringUtils ;
5
5
import org .lowcoder .api .authentication .dto .OrganizationDomainCheckResult ;
6
+ import org .lowcoder .api .authentication .service .AuthenticationApiService ;
6
7
import org .lowcoder .api .framework .view .ResponseView ;
7
8
import org .lowcoder .api .home .SessionUserService ;
8
9
import org .lowcoder .api .home .UserHomeApiService ;
9
10
import org .lowcoder .api .usermanagement .view .UpdateUserRequest ;
10
11
import org .lowcoder .api .usermanagement .view .UserProfileView ;
12
+ import org .lowcoder .domain .organization .model .MemberRole ;
13
+ import org .lowcoder .domain .organization .service .OrgMemberService ;
11
14
import org .lowcoder .domain .user .constant .UserStatusType ;
12
15
import org .lowcoder .domain .user .model .User ;
13
16
import org .lowcoder .domain .user .model .UserDetail ;
14
17
import org .lowcoder .domain .user .service .UserService ;
15
18
import org .lowcoder .domain .user .service .UserStatusService ;
16
19
import org .lowcoder .sdk .config .CommonConfig ;
20
+ import org .lowcoder .sdk .constants .AuthSourceConstants ;
17
21
import org .lowcoder .sdk .exception .BizError ;
18
22
import org .springframework .http .HttpStatus ;
19
23
import org .springframework .http .codec .multipart .Part ;
@@ -35,6 +39,19 @@ public class UserController implements UserEndpoints
35
39
private final UserStatusService userStatusService ;
36
40
private final UserApiService userApiService ;
37
41
private final CommonConfig commonConfig ;
42
+ private final AuthenticationApiService authenticationApiService ;
43
+ private final OrgMemberService orgMemberService ;
44
+
45
+ @ Override
46
+ public Mono <ResponseView <?>> createUserAndAddToOrg (@ PathVariable String orgId , CreateUserRequest request ) {
47
+ return orgApiService .checkVisitorAdminRole (orgId ).flatMap (__ ->
48
+ authenticationApiService .authenticateByForm (request .email (), request .password (),
49
+ AuthSourceConstants .EMAIL , true , null , orgId ))
50
+ .flatMap (authUser -> userService .createNewUserByAuthUser (authUser , false ))
51
+ .delayUntil (user -> orgMemberService .tryAddOrgMember (orgId , user .getId (), MemberRole .MEMBER ))
52
+ .delayUntil (user -> orgApiService .switchCurrentOrganizationTo (user .getId (), orgId ))
53
+ .map (ResponseView ::success );
54
+ }
38
55
39
56
@ Override
40
57
public Mono <ResponseView <?>> getUserProfile (ServerWebExchange exchange ) {
0 commit comments