fix: OAuth authorization issue (#12183)
This commit is contained in:
parent
bf1d9efc2a
commit
e6466e1758
|
|
@ -21,6 +21,8 @@ import _, { get } from "lodash";
|
||||||
import { Title } from "./components/StyledComponents";
|
import { Title } from "./components/StyledComponents";
|
||||||
import {
|
import {
|
||||||
createMessage,
|
createMessage,
|
||||||
|
OAUTH_AUTHORIZATION_APPSMITH_ERROR,
|
||||||
|
OAUTH_AUTHORIZATION_FAILED,
|
||||||
RECONNECT_DATASOURCE_SUCCESS_MESSAGE1,
|
RECONNECT_DATASOURCE_SUCCESS_MESSAGE1,
|
||||||
RECONNECT_DATASOURCE_SUCCESS_MESSAGE2,
|
RECONNECT_DATASOURCE_SUCCESS_MESSAGE2,
|
||||||
RECONNECT_MISSING_DATASOURCE_CREDENTIALS,
|
RECONNECT_MISSING_DATASOURCE_CREDENTIALS,
|
||||||
|
|
@ -54,6 +56,8 @@ import { useQuery } from "../utils";
|
||||||
import ListItemWrapper from "./components/DatasourceListItem";
|
import ListItemWrapper from "./components/DatasourceListItem";
|
||||||
import { getDefaultPageId } from "sagas/ApplicationSagas";
|
import { getDefaultPageId } from "sagas/ApplicationSagas";
|
||||||
import { ReduxActionTypes } from "constants/ReduxActionConstants";
|
import { ReduxActionTypes } from "constants/ReduxActionConstants";
|
||||||
|
import { Toaster, Variant } from "components/ads";
|
||||||
|
import { getOAuthAccessToken } from "actions/datasourceActions";
|
||||||
import { builderURL } from "RouteBuilder";
|
import { builderURL } from "RouteBuilder";
|
||||||
|
|
||||||
const Container = styled.div`
|
const Container = styled.div`
|
||||||
|
|
@ -227,6 +231,11 @@ const DBFormWrapper = styled.div`
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
enum AuthorizationStatus {
|
||||||
|
SUCCESS = "success",
|
||||||
|
APPSMITH_ERROR = "appsmith_error",
|
||||||
|
}
|
||||||
|
|
||||||
function TooltipContent() {
|
function TooltipContent() {
|
||||||
return (
|
return (
|
||||||
<TooltipWrapper>
|
<TooltipWrapper>
|
||||||
|
|
@ -279,6 +288,30 @@ function ReconnectDatasourceModal() {
|
||||||
const [appId, setAppId] = useState<string | null>(queryAppId);
|
const [appId, setAppId] = useState<string | null>(queryAppId);
|
||||||
const [appURL, setAppURL] = useState("");
|
const [appURL, setAppURL] = useState("");
|
||||||
const [datasouce, setDatasource] = useState<Datasource | null>(null);
|
const [datasouce, setDatasource] = useState<Datasource | null>(null);
|
||||||
|
const [isImport, setIsImport] = useState(queryIsImport);
|
||||||
|
|
||||||
|
// when redirecting from oauth, processing the status
|
||||||
|
if (isImport) {
|
||||||
|
setIsImport(false);
|
||||||
|
const status = queryParams.get("response_status");
|
||||||
|
const display_message = queryParams.get("display_message");
|
||||||
|
const variant = Variant.danger;
|
||||||
|
|
||||||
|
if (status !== AuthorizationStatus.SUCCESS) {
|
||||||
|
const message =
|
||||||
|
status === AuthorizationStatus.APPSMITH_ERROR
|
||||||
|
? OAUTH_AUTHORIZATION_APPSMITH_ERROR
|
||||||
|
: OAUTH_AUTHORIZATION_FAILED;
|
||||||
|
Toaster.show({ text: display_message || message, variant });
|
||||||
|
} else if (queryDatasourceId) {
|
||||||
|
dispatch(getOAuthAccessToken(queryDatasourceId));
|
||||||
|
}
|
||||||
|
AnalyticsUtil.logEvent("DATASOURCE_AUTH_COMPLETE", {
|
||||||
|
queryAppId,
|
||||||
|
queryDatasourceId,
|
||||||
|
queryPageId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// should open reconnect datasource modal
|
// should open reconnect datasource modal
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,11 @@ function OAuth({
|
||||||
|
|
||||||
const search = new URLSearchParams(location.search);
|
const search = new URLSearchParams(location.search);
|
||||||
const status = search.get("response_status");
|
const status = search.get("response_status");
|
||||||
if (status) {
|
const queryIsImport = search.get("importForGit");
|
||||||
|
const queryDatasourceId = search.get("datasourceId");
|
||||||
|
const shouldNotify =
|
||||||
|
!queryIsImport || (queryIsImport && queryDatasourceId === datasourceId);
|
||||||
|
if (status && shouldNotify) {
|
||||||
const display_message = search.get("display_message");
|
const display_message = search.get("display_message");
|
||||||
const variant = Variant.danger;
|
const variant = Variant.danger;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user