From c1061804a1a83d3dddaa87e1a7c51c0be0966792 Mon Sep 17 00:00:00 2001 From: MenamAfzal Date: Tue, 9 Jul 2024 04:17:25 +0500 Subject: [PATCH 01/10] applied theme hook for styling --- .../lowcoder/src/comps/comps/dividerComp.tsx | 30 +++++++++---------- .../lowcoder/src/constants/themeConstants.ts | 6 ++++ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/client/packages/lowcoder/src/comps/comps/dividerComp.tsx b/client/packages/lowcoder/src/comps/comps/dividerComp.tsx index a01cf9ec4..efce74429 100644 --- a/client/packages/lowcoder/src/comps/comps/dividerComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/dividerComp.tsx @@ -17,10 +17,10 @@ import { AutoHeightControl } from "comps/controls/autoHeightControl"; import { useContext } from "react"; import { EditorContext } from "comps/editorState"; +import { useMergeCompStyles } from "@lowcoder-ee/index.sdk"; type IProps = DividerProps & { $style: DividerStyleType; - dashed: boolean; $animationStyle:AnimationStyleType; }; @@ -56,7 +56,6 @@ const StyledDivider = styled(Divider)` .ant-divider-inner-text::before, .ant-divider-inner-text::after { border-block-start: ${(props) => props.$style.borderWidth && props.$style.borderWidth !== "0px" ? props.$style.borderWidth : "1px"} - ${(props) => props.dashed ? "dashed" : "solid"} ${(props) => props.$style.border} !important; border-block-start-color: inherit; border-block-end: 0; @@ -81,11 +80,10 @@ const StyledDivider = styled(Divider)` const childrenMap = { title: StringControl, - dashed: BoolControl, align: alignControl(), autoHeight: withDefault(AutoHeightControl, "fixed"), - style: styleControl(DividerStyle), - animationStyle: styleControl(AnimationStyle), + style: styleControl(DividerStyle , 'style'), + animationStyle: styleControl(AnimationStyle , 'animationStyle'), }; function fixOldStyleData(oldData: any) { @@ -104,12 +102,13 @@ function fixOldStyleData(oldData: any) { // Compatible with historical style data 2022-8-26 -const DividerTempComp = migrateOldData( - new UICompBuilder(childrenMap, (props) => { +export const DividerComp = migrateOldData( + new UICompBuilder(childrenMap, (props , dispatch) => { + useMergeCompStyles(props as Record, dispatch); + return ( @@ -138,10 +137,9 @@ const DividerTempComp = migrateOldData( label: trans("divider.align"), radioButton: true, })} - {children.autoHeight.getPropertyView()} + {/* {children.autoHeight.getPropertyView()} */}
- {children.dashed.propertyView({ label: trans("divider.dashed") })} {children.style.getPropertyView()}
@@ -153,7 +151,6 @@ const DividerTempComp = migrateOldData( ); }) .setExposeStateConfigs([ - new NameConfig("dashed", trans("divider.dashedDesc")), new NameConfig("title", trans("divider.titleDesc")), new NameConfig("align", trans("divider.alignDesc")), NameConfigHidden, @@ -162,8 +159,9 @@ const DividerTempComp = migrateOldData( fixOldStyleData ); -export const DividerComp = class extends DividerTempComp { - override autoHeight(): boolean { - return this.children.autoHeight.getView(); - } -}; \ No newline at end of file +// export const DividerComp +// = class extends DividerTempComp { +// override autoHeight(): boolean { +// return this.children.autoHeight.getView(); +// } +// }; \ No newline at end of file diff --git a/client/packages/lowcoder/src/constants/themeConstants.ts b/client/packages/lowcoder/src/constants/themeConstants.ts index 45fd7a01e..5f3f5c6b6 100644 --- a/client/packages/lowcoder/src/constants/themeConstants.ts +++ b/client/packages/lowcoder/src/constants/themeConstants.ts @@ -95,6 +95,11 @@ const qrCode = { } }; +const divider = { + style: { + radius: "0px" + } +}; export const defaultTheme: ThemeDetail = { primary: "#3377FF", @@ -130,6 +135,7 @@ export const defaultTheme: ThemeDetail = { qrCode, treeSelect, pageLayout, + divider, password: input, numberInput: input, textArea: input, From e26a9f330717441f2cef2b647f3f13998e5b5d09 Mon Sep 17 00:00:00 2001 From: MenamAfzal Date: Tue, 9 Jul 2024 07:21:49 +0500 Subject: [PATCH 02/10] applied vertical type --- .../lowcoder/src/comps/comps/dividerComp.tsx | 48 +++++++++++-------- .../packages/lowcoder/src/i18n/locales/en.ts | 1 + 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/client/packages/lowcoder/src/comps/comps/dividerComp.tsx b/client/packages/lowcoder/src/comps/comps/dividerComp.tsx index efce74429..a97c76bed 100644 --- a/client/packages/lowcoder/src/comps/comps/dividerComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/dividerComp.tsx @@ -22,14 +22,13 @@ import { useMergeCompStyles } from "@lowcoder-ee/index.sdk"; type IProps = DividerProps & { $style: DividerStyleType; $animationStyle:AnimationStyleType; + type?: 'vertical' | 'horizontal'; }; -// TODO: enable type "vertical" https://ant.design/components/divider - const StyledDivider = styled(Divider)` + margin-top: 3.5px; - rotate: ${(props) => props.$style.rotation}; - + rotate: ${(props) => props.type === 'vertical' ? '0deg' : props.$style.rotation}; .ant-divider-inner-text { height: 32px; display: flex; @@ -76,14 +75,22 @@ const StyledDivider = styled(Divider)` ${(props) => props.$style.borderStyle} ${(props) => props.$style.border}; } + &.ant-divider-vertical { + height: ${(props) => props.type === 'vertical' && '200px'}; + border-left: ${(props) => props.$style.borderWidth && props.$style.borderWidth !== "0px" ? props.$style.borderWidth : "1px"} + ${(props) => props.$style.borderStyle} + ${(props) => props.$style.border}; + border-top: none; + } `; const childrenMap = { title: StringControl, align: alignControl(), - autoHeight: withDefault(AutoHeightControl, "fixed"), + type: BoolControl, + autoHeight: withDefault(AutoHeightControl, "auto"), style: styleControl(DividerStyle , 'style'), - animationStyle: styleControl(AnimationStyle , 'animationStyle'), + animationStyle: styleControl(AnimationStyle ,'animationStyle'), }; function fixOldStyleData(oldData: any) { @@ -102,27 +109,30 @@ function fixOldStyleData(oldData: any) { // Compatible with historical style data 2022-8-26 -export const DividerComp = migrateOldData( +const DividerTempComp = migrateOldData( new UICompBuilder(childrenMap, (props , dispatch) => { useMergeCompStyles(props as Record, dispatch); + const dividerType = props.type ? 'vertical' : 'horizontal'; return ( - {props.title} + {dividerType === 'horizontal' && props.title} ); }) .setPropertyViewFn((children) => { return ( <> -
- {children.title.propertyView({ label: trans("divider.title") })} -
- + {!children?.type?.getView() && +
+ {children.title.propertyView({ label: trans("divider.title") })} +
} + {["logic", "both"].includes(useContext(EditorContext).editorModeStatus) && (
{hiddenPropertyView(children)} @@ -137,9 +147,10 @@ export const DividerComp = migrateOldData( label: trans("divider.align"), radioButton: true, })} - {/* {children.autoHeight.getPropertyView()} */} + {children.autoHeight.getPropertyView()}
+ {children.type.propertyView({ label: trans("divider.type")})} {children.style.getPropertyView()}
@@ -159,9 +170,8 @@ export const DividerComp = migrateOldData( fixOldStyleData ); -// export const DividerComp -// = class extends DividerTempComp { -// override autoHeight(): boolean { -// return this.children.autoHeight.getView(); -// } -// }; \ No newline at end of file +export const DividerComp = class extends DividerTempComp { + override autoHeight(): boolean { + return this.children.autoHeight.getView(); + } +}; diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 3fb351f91..a40417486 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -2002,6 +2002,7 @@ export const en = { "title": "Title", "align": "Alignment", "dashed": "Dashed", + "type": "Type", "dashedDesc": "Whether to Use Dashed Line", "titleDesc": "Divider Title", "alignDesc": "Divider Title Alignment" From eb7515cf9b73dcda5ecb0a05b56552b284f3face Mon Sep 17 00:00:00 2001 From: MenamAfzal Date: Tue, 9 Jul 2024 07:37:09 +0500 Subject: [PATCH 03/10] type text changed --- client/packages/lowcoder/src/i18n/locales/en.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index b855382d8..15bed4897 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -2006,7 +2006,7 @@ export const en = { "title": "Title", "align": "Alignment", "dashed": "Dashed", - "type": "Type", + "type": "Vertical type", "dashedDesc": "Whether to Use Dashed Line", "titleDesc": "Divider Title", "alignDesc": "Divider Title Alignment" From 162facc6f87a8139d58bca2d60235c43589024c3 Mon Sep 17 00:00:00 2001 From: RAHEEL Date: Tue, 9 Jul 2024 23:06:00 +0500 Subject: [PATCH 04/10] fix mobile nav layout app view + fix styles of pc/mobile nav --- .../comps/comps/layout/mobileTabLayout.tsx | 34 ++++++++++++++----- .../src/comps/comps/layout/navLayout.tsx | 13 ++++--- .../src/comps/controls/styleControl.tsx | 2 +- client/packages/lowcoder/src/util/hooks.ts | 2 +- 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/client/packages/lowcoder/src/comps/comps/layout/mobileTabLayout.tsx b/client/packages/lowcoder/src/comps/comps/layout/mobileTabLayout.tsx index e76ef8c0b..c159e39ad 100644 --- a/client/packages/lowcoder/src/comps/comps/layout/mobileTabLayout.tsx +++ b/client/packages/lowcoder/src/comps/comps/layout/mobileTabLayout.tsx @@ -33,6 +33,8 @@ import { AlignRight } from "lowcoder-design"; import { LayoutActionComp } from "./layoutActionComp"; import { defaultTheme } from "@lowcoder-ee/constants/themeConstants"; import { clickEvent, eventHandlerControl } from "@lowcoder-ee/comps/controls/eventHandlerControl"; +import { useMergeCompStyles } from "@lowcoder-ee/util/hooks"; +import { childrenToProps } from "@lowcoder-ee/comps/generators/multi"; const TabBar = React.lazy(() => import("antd-mobile/es/components/tab-bar")); const TabBarItem = React.lazy(() => @@ -228,9 +230,10 @@ function TabBarView(props: TabBarProps & { > { + console.log(key) if (key) { - props.onEvent('click') props.onChange(key); + props.onEvent('click') } }} activeKey={props.selectedKey} @@ -289,7 +292,7 @@ let MobileTabLayoutTmp = (function () { const childrenMap = { onEvent: eventHandlerControl(EventOptions), dataOptionType: dropdownControl(DataOptionType, DataOption.Manual), - jsonItems: jsonControl(convertTreeData, mobileNavJsonMenuItems), + jsonItems: jsonControl(convertTreeData, mobileNavJsonMenuItems), tabs: manualOptionsControl(TabOptionComp, { initOptions: [ { @@ -315,12 +318,12 @@ let MobileTabLayoutTmp = (function () { maxWidth: withDefault(NumberControl, 450), verticalAlignment: dropdownControl(VerticalAlignmentOptions, "stretch"), showSeparator: withDefault(BoolCodeControl, true), - navStyle: withDefault(styleControl(NavLayoutStyle), defaultStyle), - navItemStyle: withDefault(styleControl(NavLayoutItemStyle), defaultStyle), - navItemHoverStyle: withDefault(styleControl(NavLayoutItemHoverStyle), {}), - navItemActiveStyle: withDefault(styleControl(NavLayoutItemActiveStyle), {}), + navStyle: styleControl(NavLayoutStyle, 'navStyle'), + navItemStyle: styleControl(NavLayoutItemStyle, 'navItemStyle'), + navItemHoverStyle: styleControl(NavLayoutItemHoverStyle, 'navItemHoverStyle'), + navItemActiveStyle: styleControl(NavLayoutItemActiveStyle, 'navItemActiveStyle'), }; - return new MultiCompBuilder(childrenMap, (props) => { + return new MultiCompBuilder(childrenMap, (props, dispatch) => { return null; }) .setPropertyViewFn((children) => { @@ -402,6 +405,8 @@ MobileTabLayoutTmp = withViewFn(MobileTabLayoutTmp, (comp) => { const bgColor = (useContext(ThemeContext)?.theme || defaultTheme).canvas; const onEvent = comp.children.onEvent.getView(); + useMergeCompStyles(childrenToProps(comp.children), comp.dispatch); + useEffect(() => { comp.children.jsonTabs.dispatchChangeValueAction({ manual: jsonItems as unknown as Array> @@ -427,9 +432,20 @@ MobileTabLayoutTmp = withViewFn(MobileTabLayoutTmp, (comp) => { const appView = useMemo(() => { const currentTab = tabViews[tabIndex]; + if (dataOptionType === DataOption.Json) { + return (currentTab && + currentTab.children.app.getAppId() && + currentTab.children.app.getView()) || ( + + ); + } + return (currentTab && - currentTab.children.app.getAppId() && - currentTab.children.app.getView()) || ( + // currentTab.children.app.getAppId() && + currentTab.children.action.getView()) || ( { return null; @@ -290,6 +291,8 @@ NavTmpLayout = withViewFn(NavTmpLayout, (comp) => { const dataOptionType = comp.children.dataOptionType.getView(); const onEvent = comp.children.onEvent.getView(); + useMergeCompStyles(childrenToProps(comp.children), comp.dispatch); + // filter out hidden. unauthorised items filtered by server const filterItem = useCallback((item: LayoutMenuItemComp): boolean => { return !item.children.hidden.getView(); diff --git a/client/packages/lowcoder/src/comps/controls/styleControl.tsx b/client/packages/lowcoder/src/comps/controls/styleControl.tsx index 7a25595d3..95aac2a97 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControl.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControl.tsx @@ -876,7 +876,7 @@ export function styleControl( ...(theme?.theme?.components?.[compType]?.[styleKey] || {}) as unknown as Record } : undefined; - const styleProps = preventStyleOverwriting || preventAppStylesOverwriting || appliedThemeId === themeId + const styleProps = (!comp && !compType) || preventStyleOverwriting || preventAppStylesOverwriting || appliedThemeId === themeId ? props as ColorMap : {} as ColorMap; diff --git a/client/packages/lowcoder/src/util/hooks.ts b/client/packages/lowcoder/src/util/hooks.ts index 4c9227423..419606216 100644 --- a/client/packages/lowcoder/src/util/hooks.ts +++ b/client/packages/lowcoder/src/util/hooks.ts @@ -177,7 +177,7 @@ export function useMergeCompStyles( const compTheme = theme?.theme?.components?.[compType]; const themeId = theme?.themeId; - const styleKeys = Object.keys(props).filter(key => key.toLowerCase().endsWith('style')); + const styleKeys = Object.keys(props).filter(key => key.toLowerCase().endsWith('style' || 'styles')); const styleProps: Record = {}; styleKeys.forEach((key: string) => { styleProps[key] = (props as any)[key]; From 33a1adfd601946b791fa81d9cd46b0b016f9c827 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Tue, 9 Jul 2024 23:55:35 +0200 Subject: [PATCH 05/10] Adding Posthog Login Event --- client/packages/lowcoder/src/app.tsx | 5 +++++ client/packages/lowcoder/src/pages/userAuth/authUtils.ts | 1 + 2 files changed, 6 insertions(+) diff --git a/client/packages/lowcoder/src/app.tsx b/client/packages/lowcoder/src/app.tsx index cc0aeb95b..7f05c9488 100644 --- a/client/packages/lowcoder/src/app.tsx +++ b/client/packages/lowcoder/src/app.tsx @@ -130,6 +130,11 @@ class AppIndex extends React.Component { // make sure all users in this app have checked login info if (!this.props.isFetchUserFinished || (this.props.currentUserId && !this.props.fetchHomeDataFinished)) { const hideLoadingHeader = isTemplate || isAuthUnRequired(pathname); + // if the user just logged in, we send the event to posthog + if (sessionStorage.getItem('_just_logged_in_')) { + posthog.identify(this.props.currentUserId); + sessionStorage.removeItem('_just_logged_in_'); + } return ; } diff --git a/client/packages/lowcoder/src/pages/userAuth/authUtils.ts b/client/packages/lowcoder/src/pages/userAuth/authUtils.ts index 146e404c3..f5ae11893 100644 --- a/client/packages/lowcoder/src/pages/userAuth/authUtils.ts +++ b/client/packages/lowcoder/src/pages/userAuth/authUtils.ts @@ -82,6 +82,7 @@ export function authRespValidate( if (doValidResponse(resp)) { onAuthSuccess?.(); + sessionStorage.setItem("_just_logged_in_", "true"); history.replace(replaceUrl.replace(baseUrl, '')); } else if ( resp.data.code === SERVER_ERROR_CODES.EXCEED_MAX_USER_ORG_COUNT || From ed66ed39221fad1d8e129e256c8be87d43c49f5b Mon Sep 17 00:00:00 2001 From: Thomasr Date: Mon, 8 Jul 2024 16:19:04 -0400 Subject: [PATCH 06/10] Add email field to user and match users by email --- .../service/OrganizationServiceImpl.java | 2 +- .../lowcoder/domain/user/model/AuthUser.java | 1 + .../org/lowcoder/domain/user/model/User.java | 2 ++ .../domain/user/service/UserServiceImpl.java | 1 + .../util/AuthenticationUtils.java | 2 ++ .../runner/migrations/DatabaseChangelog.java | 24 +++++++++++++++++++ 6 files changed, 31 insertions(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java index d4185379c..8961765cb 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java @@ -98,7 +98,7 @@ public Mono createDefault(User user, boolean isSuperAdmin) { private Mono joinOrganizationInEnterpriseMode(String userId) { return getOrganizationInEnterpriseMode() - .flatMap(organization -> orgMemberService.addMember(organization.getGid(), userId, MemberRole.MEMBER)) + .flatMap(organization -> orgMemberService.addMember(organization.getId(), userId, MemberRole.MEMBER)) .defaultIfEmpty(false); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java index c70b6a8c4..b2fb46d9d 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java @@ -18,6 +18,7 @@ public class AuthUser { private String uid; private String username; + private String email; private String avatar; private Map rawUserInfo; private Map extra; diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java index 04762de62..71e978ad8 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/User.java @@ -42,6 +42,8 @@ public class User extends HasIdAndAuditing implements BeforeMongodbWrite, AfterM private String name; + private String email; + private String uiLanguage; private String avatar; diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java index e403cb3e1..bd448f940 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java @@ -158,6 +158,7 @@ public Mono findByAuthUserRawId(AuthUser authUser) { public Mono createNewUserByAuthUser(AuthUser authUser) { User.UserBuilder userBuilder = User.builder() .name(authUser.getUsername()) + .email(authUser.getEmail()) .state(UserState.ACTIVATED) .isEnabled(true) .tpAvatarLink(authUser.getAvatar()); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java index c0a6978a3..ce8d27274 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AuthenticationUtils.java @@ -96,6 +96,7 @@ public static AuthUser mapToAuthUser(Map map, HashMap Date: Mon, 8 Jul 2024 16:26:52 -0400 Subject: [PATCH 07/10] match by email --- .../org/lowcoder/domain/user/repository/UserRepository.java | 1 + .../org/lowcoder/domain/user/service/UserServiceImpl.java | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java index e3dfd72f9..62b98c304 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java @@ -19,4 +19,5 @@ public interface UserRepository extends ReactiveMongoRepository { Flux findByConnections_SourceAndConnections_RawIdIn(String source, Collection rawIds); Mono findByName(String rawUuid); + Mono findByEmail(String rawUuid); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java index bd448f940..2a2a87ebb 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java @@ -112,6 +112,10 @@ public Mono findByName(String rawUuid) { return repository.findByName(rawUuid); } + public Mono findByEmail(String rawUuid) { + return repository.findByEmail(rawUuid); + } + @Override public Mono saveProfilePhoto(Part filePart, User user) { String prevAvatar = ObjectUtils.defaultIfNull(user.getAvatar(), ""); @@ -151,7 +155,7 @@ public Mono findByAuthUserSourceAndRawId(AuthUser authUser) { @Override public Mono findByAuthUserRawId(AuthUser authUser) { - return findByName(authUser.getUsername()); + return findByEmail(authUser.getEmail()); } @Override From f9aeb42969622974ba101300694cecace9ec0e19 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Mon, 8 Jul 2024 16:41:58 -0400 Subject: [PATCH 08/10] form login adds email field. --- .../api/authentication/request/form/FormAuthRequest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/form/FormAuthRequest.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/form/FormAuthRequest.java index 25ff34255..0aba24491 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/form/FormAuthRequest.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/request/form/FormAuthRequest.java @@ -55,7 +55,7 @@ public Mono auth(AuthRequestContext authRequestContext) { return Mono.empty(); }); }) - .thenReturn(AuthUser.builder().uid(context.getLoginId()).username(context.getLoginId()).build()); + .thenReturn(AuthUser.builder().uid(context.getLoginId()).username(context.getLoginId()).email(context.getLoginId()).build()); } @Override From 6233a03c8159e7f4cfd4ce80318e9e0da27e2620 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 9 Jul 2024 02:59:15 -0400 Subject: [PATCH 09/10] check connections' email deeply to match the email address with all possible connections --- .../main/java/org/lowcoder/domain/user/model/AuthUser.java | 1 + .../java/org/lowcoder/domain/user/model/Connection.java | 5 ++++- .../org/lowcoder/domain/user/repository/UserRepository.java | 4 +++- .../org/lowcoder/domain/user/service/UserServiceImpl.java | 6 +++--- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java index b2fb46d9d..5dcb1b19e 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/AuthUser.java @@ -42,6 +42,7 @@ public Connection toAuthConnection() { .authId(getAuthContext().getAuthConfig().getId()) .source(getSource()) .name(getUsername()) + .email(getEmail()) .rawId(getUid()) .avatar(getAvatar()) .orgIds(StringUtils.isBlank(getOrgId()) ? Set.of() : Set.of(getOrgId())) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/Connection.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/Connection.java index 6ef03f8c9..a0ec48c9b 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/Connection.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/model/Connection.java @@ -46,6 +46,8 @@ public class Connection implements Serializable { private final String name; + private final String email; + private final String avatar; private Set orgIds; @@ -59,12 +61,13 @@ public class Connection implements Serializable { private Set tokens; @JsonCreator - private Connection(String authId, String source, String rawId, String name, String avatar, Set orgIds, @Nullable + private Connection(String authId, String source, String rawId, String name, String email, String avatar, Set orgIds, @Nullable ConnectionAuthToken authConnectionAuthToken, Map rawUserInfo, Set tokens) { this.authId = authId; this.source = source; this.rawId = rawId; this.name = name; + this.email = email; this.avatar = avatar; this.orgIds = CollectionUtils.isEmpty(orgIds) ? new HashSet<>() : orgIds; this.authConnectionAuthToken = authConnectionAuthToken; diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java index 62b98c304..5a5b7faa6 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/repository/UserRepository.java @@ -19,5 +19,7 @@ public interface UserRepository extends ReactiveMongoRepository { Flux findByConnections_SourceAndConnections_RawIdIn(String source, Collection rawIds); Mono findByName(String rawUuid); - Mono findByEmail(String rawUuid); + + //email1 and email2 should be equal + Mono findByEmailOrConnections_Email(String email1, String email2); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java index 2a2a87ebb..7a86591df 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java @@ -112,8 +112,8 @@ public Mono findByName(String rawUuid) { return repository.findByName(rawUuid); } - public Mono findByEmail(String rawUuid) { - return repository.findByEmail(rawUuid); + public Mono findByEmailDeep(String email) { + return repository.findByEmailOrConnections_Email(email, email); } @Override @@ -155,7 +155,7 @@ public Mono findByAuthUserSourceAndRawId(AuthUser authUser) { @Override public Mono findByAuthUserRawId(AuthUser authUser) { - return findByEmail(authUser.getEmail()); + return findByEmailDeep(authUser.getEmail()); } @Override From 0df085dd837e2ad7044a639d8932e05dffd1248c Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Wed, 10 Jul 2024 00:16:17 +0200 Subject: [PATCH 10/10] Updating Version Numbers --- client/VERSION | 2 +- client/packages/lowcoder-comps/package.json | 2 +- client/packages/lowcoder-sdk/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/VERSION b/client/VERSION index acdc3f1b0..6550da697 100644 --- a/client/VERSION +++ b/client/VERSION @@ -1 +1 @@ -2.4.2 \ No newline at end of file +2.4.3 \ No newline at end of file diff --git a/client/packages/lowcoder-comps/package.json b/client/packages/lowcoder-comps/package.json index 5da1fff1f..ff70d4a41 100644 --- a/client/packages/lowcoder-comps/package.json +++ b/client/packages/lowcoder-comps/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-comps", - "version": "2.4.7", + "version": "2.4.8", "type": "module", "license": "MIT", "dependencies": { diff --git a/client/packages/lowcoder-sdk/package.json b/client/packages/lowcoder-sdk/package.json index e776ddc21..305ff0013 100644 --- a/client/packages/lowcoder-sdk/package.json +++ b/client/packages/lowcoder-sdk/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-sdk", - "version": "2.4.5", + "version": "2.4.6", "type": "module", "files": [ "src",