## Description Add feature flag based logic for code splitted files #### PR fixes following issue(s) Fixes #2237 #### Type of change - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [x] Manual - [ ] JUnit - [ ] Jest - [x] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
96 lines
2.6 KiB
TypeScript
96 lines
2.6 KiB
TypeScript
import { tenantConfigConnection } from "@appsmith/constants/tenantConstants";
|
|
import type {
|
|
AdminConfigType,
|
|
Category,
|
|
} from "@appsmith/pages/AdminSettings/config/types";
|
|
import { ADMIN_SETTINGS_CATEGORY_DEFAULT_PATH } from "constants/routes";
|
|
import type { User } from "constants/userConstants";
|
|
|
|
/* settings is the updated & unsaved settings on Admin settings page */
|
|
export const saveAllowed = (
|
|
settings: any,
|
|
isFormLoginEnabled: boolean,
|
|
socialLoginList: string[],
|
|
) => {
|
|
const connectedMethodsCount =
|
|
socialLoginList.length + (isFormLoginEnabled ? 1 : 0);
|
|
if (connectedMethodsCount === 1) {
|
|
const checkFormLogin =
|
|
!("APPSMITH_FORM_LOGIN_DISABLED" in settings) && isFormLoginEnabled,
|
|
checkGoogleAuth =
|
|
settings["APPSMITH_OAUTH2_GOOGLE_CLIENT_ID"] !== "" &&
|
|
socialLoginList.includes("google"),
|
|
checkGithubAuth =
|
|
settings["APPSMITH_OAUTH2_GITHUB_CLIENT_ID"] !== "" &&
|
|
socialLoginList.includes("github");
|
|
|
|
return checkFormLogin || checkGoogleAuth || checkGithubAuth;
|
|
} else {
|
|
return connectedMethodsCount >= 2;
|
|
}
|
|
};
|
|
|
|
/* get default admin settings path */
|
|
export const getDefaultAdminSettingsPath = (
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
{ isSuperUser, tenantPermissions: any = [] }: Record<string, any>,
|
|
): string => {
|
|
return ADMIN_SETTINGS_CATEGORY_DEFAULT_PATH;
|
|
};
|
|
|
|
export const showAdminSettings = (user?: User): boolean => {
|
|
return (user?.isSuperUser && user?.isConfigurable) || false;
|
|
};
|
|
|
|
export const getLoginUrl = (method: string): string => {
|
|
const urls: Record<string, string> = {};
|
|
|
|
return urls[method];
|
|
};
|
|
|
|
export const isTenantConfig = (name: string): boolean => {
|
|
const fields: string[] = tenantConfigConnection;
|
|
|
|
return fields.includes(name);
|
|
};
|
|
|
|
export const getWrapperCategory = (
|
|
categories: Record<string, AdminConfigType>,
|
|
subCategory: string,
|
|
category: string,
|
|
) => {
|
|
return categories[subCategory || category];
|
|
};
|
|
|
|
export const getFilteredGeneralCategories = (categories: Category[]) => {
|
|
return categories
|
|
?.map((category: Category) => {
|
|
return category;
|
|
})
|
|
.filter(Boolean);
|
|
};
|
|
|
|
export const getFilteredAclCategories = (
|
|
categories: Category[],
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
isSuperUser?: boolean,
|
|
) => {
|
|
return categories
|
|
?.map((category: Category) => {
|
|
return category;
|
|
})
|
|
.filter(Boolean);
|
|
};
|
|
|
|
export const getFilteredOtherCategories = (
|
|
categories: Category[],
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
isSuperUser?: boolean,
|
|
) => {
|
|
return categories
|
|
?.map((category: Category) => {
|
|
return category;
|
|
})
|
|
.filter(Boolean);
|
|
};
|