Fixing merge conflicts
This commit is contained in:
commit
aeb9ecb8f4
1
.github/workflows/client.yml
vendored
1
.github/workflows/client.yml
vendored
|
|
@ -75,7 +75,6 @@ jobs:
|
||||||
ui-test:
|
ui-test:
|
||||||
needs: build
|
needs: build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
# container: appsmith/cypress-nginx
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: app/client
|
working-directory: app/client
|
||||||
|
|
|
||||||
33
.github/workflows/server.yml
vendored
33
.github/workflows/server.yml
vendored
|
|
@ -82,3 +82,36 @@ jobs:
|
||||||
docker build -t appsmith/appsmith-server-ee:nightly .
|
docker build -t appsmith/appsmith-server-ee:nightly .
|
||||||
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
echo ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
|
||||||
docker push appsmith/appsmith-server-ee
|
docker push appsmith/appsmith-server-ee
|
||||||
|
|
||||||
|
# These are dummy jobs in the CI build to satisfy required status checks for merging PRs. This is a hack because Github doesn't support conditional
|
||||||
|
# required checks in monorepos. These jobs are a clone of similarly named jobs in client.yml.
|
||||||
|
#
|
||||||
|
# Check support request at: https://github.community/t/feature-request-conditional-required-checks/16761
|
||||||
|
ui-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
job: [0, 1, 2, 3, 4, 5, 6]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Checkout the code
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Do nothing as this is a dummy step
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
package:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Checkout the code
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Do nothing as this is a dummy step
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ export interface ApplicationResponsePayload {
|
||||||
name: string;
|
name: string;
|
||||||
organizationId: string;
|
organizationId: string;
|
||||||
pages?: ApplicationPagePayload[];
|
pages?: ApplicationPagePayload[];
|
||||||
|
appIsExample: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
// export interface FetchApplicationResponse extends ApiResponse {
|
// export interface FetchApplicationResponse extends ApiResponse {
|
||||||
|
|
|
||||||
|
|
@ -401,6 +401,7 @@ export type ApplicationPayload = {
|
||||||
defaultPageId?: string;
|
defaultPageId?: string;
|
||||||
isPublic?: boolean;
|
isPublic?: boolean;
|
||||||
userPermissions?: string[];
|
userPermissions?: string[];
|
||||||
|
appIsExample: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type OrganizationDetails = {
|
export type OrganizationDetails = {
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,7 @@ export const TIMEZONE = "Timezone";
|
||||||
export const ENABLE_TIME = "Enable Time";
|
export const ENABLE_TIME = "Enable Time";
|
||||||
|
|
||||||
export const EDIT_APP = "Back to editor";
|
export const EDIT_APP = "Back to editor";
|
||||||
|
export const FORK_APP = "Fork App";
|
||||||
|
|
||||||
export const LIGHTNING_MENU_DATA_API = "Use data from an API";
|
export const LIGHTNING_MENU_DATA_API = "Use data from an API";
|
||||||
export const LIGHTNING_MENU_DATA_QUERY = "Use data from a Query";
|
export const LIGHTNING_MENU_DATA_QUERY = "Use data from a Query";
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ export const getApplicationPayload = (): ApplicationPayload => ({
|
||||||
id: generateReactKey(),
|
id: generateReactKey(),
|
||||||
name: generateReactKey(),
|
name: generateReactKey(),
|
||||||
organizationId: generateReactKey(),
|
organizationId: generateReactKey(),
|
||||||
|
appIsExample: false,
|
||||||
pageCount: 4,
|
pageCount: 4,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import styled from "styled-components";
|
||||||
import StyledHeader from "components/designSystems/appsmith/StyledHeader";
|
import StyledHeader from "components/designSystems/appsmith/StyledHeader";
|
||||||
import AppsmithLogo from "assets/images/appsmith_logo_white.png";
|
import AppsmithLogo from "assets/images/appsmith_logo_white.png";
|
||||||
import Button from "components/editorComponents/Button";
|
import Button from "components/editorComponents/Button";
|
||||||
import { EDIT_APP } from "constants/messages";
|
import { EDIT_APP, FORK_APP } from "constants/messages";
|
||||||
import {
|
import {
|
||||||
isPermitted,
|
isPermitted,
|
||||||
PERMISSION_TYPE,
|
PERMISSION_TYPE,
|
||||||
|
|
@ -16,6 +16,7 @@ import {
|
||||||
import {
|
import {
|
||||||
APPLICATIONS_URL,
|
APPLICATIONS_URL,
|
||||||
getApplicationViewerPageURL,
|
getApplicationViewerPageURL,
|
||||||
|
SIGN_UP_URL,
|
||||||
} from "constants/routes";
|
} from "constants/routes";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { AppState } from "reducers";
|
import { AppState } from "reducers";
|
||||||
|
|
@ -60,6 +61,12 @@ const BackToEditorButton = styled(Button)`
|
||||||
margin: 5px 10px;
|
margin: 5px 10px;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
const ForkButton = styled(Button)`
|
||||||
|
max-width: 200px;
|
||||||
|
height: 32px;
|
||||||
|
margin: 5px 10px;
|
||||||
|
`;
|
||||||
|
|
||||||
const ShareButton = styled(Button)`
|
const ShareButton = styled(Button)`
|
||||||
height: 32px;
|
height: 32px;
|
||||||
margin: 5px 10px;
|
margin: 5px 10px;
|
||||||
|
|
@ -116,10 +123,41 @@ type AppViewerHeaderProps = {
|
||||||
|
|
||||||
export const AppViewerHeader = (props: AppViewerHeaderProps) => {
|
export const AppViewerHeader = (props: AppViewerHeaderProps) => {
|
||||||
const { currentApplicationDetails, pages, currentOrgId } = props;
|
const { currentApplicationDetails, pages, currentOrgId } = props;
|
||||||
|
const isExampleApp = currentApplicationDetails?.appIsExample;
|
||||||
const userPermissions = currentApplicationDetails?.userPermissions ?? [];
|
const userPermissions = currentApplicationDetails?.userPermissions ?? [];
|
||||||
const permissionRequired = PERMISSION_TYPE.MANAGE_APPLICATION;
|
const permissionRequired = PERMISSION_TYPE.MANAGE_APPLICATION;
|
||||||
const canEdit = isPermitted(userPermissions, permissionRequired);
|
const canEdit = isPermitted(userPermissions, permissionRequired);
|
||||||
|
|
||||||
|
const forkAppUrl = `${window.location.origin}${SIGN_UP_URL}?appId=${currentApplicationDetails?.id}`;
|
||||||
|
|
||||||
|
let CTA = null;
|
||||||
|
|
||||||
|
if (props.url && canEdit) {
|
||||||
|
CTA = (
|
||||||
|
<BackToEditorButton
|
||||||
|
className="t--back-to-editor"
|
||||||
|
href={props.url}
|
||||||
|
intent="primary"
|
||||||
|
icon="arrow-left"
|
||||||
|
iconAlignment="left"
|
||||||
|
text={EDIT_APP}
|
||||||
|
filled
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
} else if (isExampleApp) {
|
||||||
|
CTA = (
|
||||||
|
<ForkButton
|
||||||
|
className="t--fork-app"
|
||||||
|
href={forkAppUrl}
|
||||||
|
intent="primary"
|
||||||
|
icon="fork"
|
||||||
|
iconAlignment="left"
|
||||||
|
text={FORK_APP}
|
||||||
|
filled
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<HeaderWrapper hasPages={pages.length > 1}>
|
<HeaderWrapper hasPages={pages.length > 1}>
|
||||||
<HeaderRow justify={"space-between"}>
|
<HeaderRow justify={"space-between"}>
|
||||||
|
|
@ -160,18 +198,7 @@ export const AppViewerHeader = (props: AppViewerHeaderProps) => {
|
||||||
applicationId={currentApplicationDetails.id}
|
applicationId={currentApplicationDetails.id}
|
||||||
title={currentApplicationDetails.name}
|
title={currentApplicationDetails.name}
|
||||||
/>
|
/>
|
||||||
|
{CTA}
|
||||||
{props.url && canEdit && (
|
|
||||||
<BackToEditorButton
|
|
||||||
className="t--back-to-editor"
|
|
||||||
href={props.url}
|
|
||||||
intent="primary"
|
|
||||||
icon="arrow-left"
|
|
||||||
iconAlignment="left"
|
|
||||||
text={EDIT_APP}
|
|
||||||
filled
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</HeaderSection>
|
</HeaderSection>
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,9 @@ export const SignUp = (props: InjectedFormProps<SignupFormValues>) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
let signupURL = "/api/v1/" + SIGNUP_SUBMIT_PATH;
|
let signupURL = "/api/v1/" + SIGNUP_SUBMIT_PATH;
|
||||||
if (queryParams.has("redirectTo")) {
|
if (queryParams.has("appId")) {
|
||||||
|
signupURL += `?appId=${queryParams.get("appId")}`;
|
||||||
|
} else if (queryParams.has("redirectTo")) {
|
||||||
signupURL += `?redirectUrl=${queryParams.get("redirectTo")}`;
|
signupURL += `?redirectUrl=${queryParams.get("redirectTo")}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,7 @@ export function* fetchApplicationListSaga() {
|
||||||
id: application.id,
|
id: application.id,
|
||||||
pageCount: application.pages ? application.pages.length : 0,
|
pageCount: application.pages ? application.pages.length : 0,
|
||||||
defaultPageId: getDefaultPageId(application.pages),
|
defaultPageId: getDefaultPageId(application.pages),
|
||||||
|
appIsExample: application.appIsExample,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
yield put({
|
yield put({
|
||||||
|
|
@ -287,6 +288,7 @@ export function* createApplicationSaga(
|
||||||
organizationId: response.data.organizationId,
|
organizationId: response.data.organizationId,
|
||||||
pageCount: response.data.pages ? response.data.pages.length : 0,
|
pageCount: response.data.pages ? response.data.pages.length : 0,
|
||||||
defaultPageId: getDefaultPageId(response.data.pages),
|
defaultPageId: getDefaultPageId(response.data.pages),
|
||||||
|
appIsExample: response.data.appIsExample,
|
||||||
};
|
};
|
||||||
AnalyticsUtil.logEvent("CREATE_APP", {
|
AnalyticsUtil.logEvent("CREATE_APP", {
|
||||||
appName: application.name,
|
appName: application.name,
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ import {
|
||||||
import { RestAction } from "entities/Action";
|
import { RestAction } from "entities/Action";
|
||||||
import { setActionProperty } from "actions/actionActions";
|
import { setActionProperty } from "actions/actionActions";
|
||||||
import { fetchPluginForm } from "actions/pluginActions";
|
import { fetchPluginForm } from "actions/pluginActions";
|
||||||
import { changeQuery } from "actions/queryPaneActions";
|
|
||||||
|
|
||||||
function* changeQuerySaga(actionPayload: ReduxAction<{ id: string }>) {
|
function* changeQuerySaga(actionPayload: ReduxAction<{ id: string }>) {
|
||||||
const { id } = actionPayload.payload;
|
const { id } = actionPayload.payload;
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,6 @@ export const isStrongPassword = (value: string) => {
|
||||||
|
|
||||||
// TODO (abhinav): Use a regex which adheres to standards RFC5322
|
// TODO (abhinav): Use a regex which adheres to standards RFC5322
|
||||||
export const isEmail = (value: string) => {
|
export const isEmail = (value: string) => {
|
||||||
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||||
return re.test(value);
|
return re.test(value);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ For example:
|
||||||
$ ./build.sh -DskipTests
|
$ ./build.sh -DskipTests
|
||||||
```
|
```
|
||||||
|
|
||||||
This will
|
This script will perform the following steps:
|
||||||
1. Compile the code
|
1. Compile the code
|
||||||
2. Generate the jars for server & plugins
|
2. Generate the jars for server & plugins
|
||||||
3. Copy them into the `dist` directory
|
3. Copy them into the `dist` directory
|
||||||
|
|
|
||||||
|
|
@ -176,11 +176,11 @@ public class PolicyGenerator {
|
||||||
return childPolicySet;
|
return childPolicySet;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<Policy> getAllChildPolicies(Set<Policy> policySet, Class inheritingEntity, Class destinationEntity) {
|
public Set<Policy> getAllChildPolicies(Set<Policy> policySet, Class sourceEntity, Class destinationEntity) {
|
||||||
Set<Policy> policies = policySet.stream()
|
Set<Policy> policies = policySet.stream()
|
||||||
.map(policy -> {
|
.map(policy -> {
|
||||||
AclPermission aclPermission = AclPermission
|
AclPermission aclPermission = AclPermission
|
||||||
.getPermissionByValue(policy.getPermission(), inheritingEntity);
|
.getPermissionByValue(policy.getPermission(), sourceEntity);
|
||||||
// Get all the child policies for the given policy and aclPermission
|
// Get all the child policies for the given policy and aclPermission
|
||||||
return getChildPolicies(policy, aclPermission, destinationEntity);
|
return getChildPolicies(policy, aclPermission, destinationEntity);
|
||||||
}).flatMap(Collection::stream)
|
}).flatMap(Collection::stream)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import com.appsmith.server.acl.PolicyGenerator;
|
||||||
import com.appsmith.server.domains.Action;
|
import com.appsmith.server.domains.Action;
|
||||||
import com.appsmith.server.domains.Application;
|
import com.appsmith.server.domains.Application;
|
||||||
import com.appsmith.server.domains.Datasource;
|
import com.appsmith.server.domains.Datasource;
|
||||||
import com.appsmith.server.domains.Organization;
|
|
||||||
import com.appsmith.server.domains.Page;
|
import com.appsmith.server.domains.Page;
|
||||||
import com.appsmith.server.domains.User;
|
import com.appsmith.server.domains.User;
|
||||||
import com.appsmith.server.repositories.ActionRepository;
|
import com.appsmith.server.repositories.ActionRepository;
|
||||||
|
|
@ -27,13 +26,6 @@ import java.util.Set;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.appsmith.server.acl.AclPermission.MANAGE_APPLICATIONS;
|
|
||||||
import static com.appsmith.server.acl.AclPermission.MANAGE_PAGES;
|
|
||||||
import static com.appsmith.server.acl.AclPermission.ORGANIZATION_MANAGE_APPLICATIONS;
|
|
||||||
import static com.appsmith.server.acl.AclPermission.ORGANIZATION_READ_APPLICATIONS;
|
|
||||||
import static com.appsmith.server.acl.AclPermission.READ_APPLICATIONS;
|
|
||||||
import static com.appsmith.server.acl.AclPermission.READ_PAGES;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class PolicyUtils {
|
public class PolicyUtils {
|
||||||
|
|
||||||
|
|
@ -148,18 +140,6 @@ public class PolicyUtils {
|
||||||
.collect(Collectors.toMap(Policy::getPermission, Function.identity()));
|
.collect(Collectors.toMap(Policy::getPermission, Function.identity()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Policy> generateChildrenPoliciesFromOrganizationPolicies(Map<String, Policy> orgPolicyMap, Class destinationEntity) {
|
|
||||||
Set<Policy> extractedInterestingPolicySet = new HashSet<>(orgPolicyMap.values())
|
|
||||||
.stream()
|
|
||||||
.filter(policy -> policy.getPermission().equals(ORGANIZATION_MANAGE_APPLICATIONS.getValue())
|
|
||||||
|| policy.getPermission().equals(ORGANIZATION_READ_APPLICATIONS.getValue()))
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
return policyGenerator.getAllChildPolicies(extractedInterestingPolicySet, Organization.class, destinationEntity)
|
|
||||||
.stream()
|
|
||||||
.collect(Collectors.toMap(Policy::getPermission, Function.identity()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Flux<Datasource> updateWithNewPoliciesToDatasourcesByOrgId(String orgId, Map<String, Policy> newPoliciesMap, boolean addPolicyToObject) {
|
public Flux<Datasource> updateWithNewPoliciesToDatasourcesByOrgId(String orgId, Map<String, Policy> newPoliciesMap, boolean addPolicyToObject) {
|
||||||
|
|
||||||
return datasourceRepository
|
return datasourceRepository
|
||||||
|
|
@ -194,18 +174,6 @@ public class PolicyUtils {
|
||||||
.flatMapMany(updatedApplications -> applicationRepository.saveAll(updatedApplications));
|
.flatMapMany(updatedApplications -> applicationRepository.saveAll(updatedApplications));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Policy> generatePagePoliciesFromApplicationPolicies(Map<String, Policy> applicationPolicyMap) {
|
|
||||||
Set<Policy> extractedInterestingPolicySet = new HashSet<>(applicationPolicyMap.values())
|
|
||||||
.stream()
|
|
||||||
.filter(policy -> policy.getPermission().equals(MANAGE_APPLICATIONS.getValue())
|
|
||||||
|| policy.getPermission().equals(READ_APPLICATIONS.getValue()))
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
return policyGenerator.getAllChildPolicies(extractedInterestingPolicySet, Application.class, Page.class)
|
|
||||||
.stream()
|
|
||||||
.collect(Collectors.toMap(Policy::getPermission, Function.identity()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Flux<Page> updateWithApplicationPermissionsToAllItsPages(String applicationId, Map<String, Policy> newPagePoliciesMap, boolean addPolicyToObject) {
|
public Flux<Page> updateWithApplicationPermissionsToAllItsPages(String applicationId, Map<String, Policy> newPagePoliciesMap, boolean addPolicyToObject) {
|
||||||
|
|
||||||
return pageRepository
|
return pageRepository
|
||||||
|
|
@ -222,18 +190,6 @@ public class PolicyUtils {
|
||||||
.flatMapMany(updatedPages -> pageRepository.saveAll(updatedPages));
|
.flatMapMany(updatedPages -> pageRepository.saveAll(updatedPages));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, Policy> generateActionPoliciesFromPagePolicies(Map<String, Policy> pagePolicyMap) {
|
|
||||||
Set<Policy> extractedInterestingPolicySet = new HashSet<>(pagePolicyMap.values())
|
|
||||||
.stream()
|
|
||||||
.filter(policy -> policy.getPermission().equals(MANAGE_PAGES.getValue())
|
|
||||||
|| policy.getPermission().equals(READ_PAGES.getValue()))
|
|
||||||
.collect(Collectors.toSet());
|
|
||||||
|
|
||||||
return policyGenerator.getAllChildPolicies(extractedInterestingPolicySet, Page.class, Action.class)
|
|
||||||
.stream()
|
|
||||||
.collect(Collectors.toMap(Policy::getPermission, Function.identity()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Flux<Action> updateWithPagePermissionsToAllItsActions(String pageId, Map<String, Policy> newActionPoliciesMap, boolean addPolicyToObject) {
|
public Flux<Action> updateWithPagePermissionsToAllItsActions(String pageId, Map<String, Policy> newActionPoliciesMap, boolean addPolicyToObject) {
|
||||||
|
|
||||||
return actionRepository
|
return actionRepository
|
||||||
|
|
@ -255,4 +211,14 @@ public class PolicyUtils {
|
||||||
.collectList()
|
.collectList()
|
||||||
.flatMapMany(updatedActions -> actionRepository.saveAll(updatedActions));
|
.flatMapMany(updatedActions -> actionRepository.saveAll(updatedActions));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<String, Policy> generateInheritedPoliciesFromSourcePolicies(Map<String, Policy> sourcePolicyMap,
|
||||||
|
Class sourceEntity,
|
||||||
|
Class destinationEntity) {
|
||||||
|
Set<Policy> extractedInterestingPolicySet = new HashSet<>(sourcePolicyMap.values());
|
||||||
|
|
||||||
|
return policyGenerator.getAllChildPolicies(extractedInterestingPolicySet, sourceEntity, destinationEntity)
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toMap(Policy::getPermission, Function.identity()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -213,8 +213,8 @@ public class ApplicationServiceImpl extends BaseService<ApplicationRepository, A
|
||||||
user.setIsAnonymous(true);
|
user.setIsAnonymous(true);
|
||||||
|
|
||||||
Map<String, Policy> applicationPolicyMap = policyUtils.generatePolicyFromPermission(Set.of(applicationPermission), user);
|
Map<String, Policy> applicationPolicyMap = policyUtils.generatePolicyFromPermission(Set.of(applicationPermission), user);
|
||||||
Map<String, Policy> pagePolicyMap = policyUtils.generatePagePoliciesFromApplicationPolicies(applicationPolicyMap);
|
Map<String, Policy> pagePolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(applicationPolicyMap, Application.class, Page.class);
|
||||||
Map<String, Policy> actionPolicyMap = policyUtils.generateActionPoliciesFromPagePolicies(pagePolicyMap);
|
Map<String, Policy> actionPolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(pagePolicyMap, Page.class, Action.class);
|
||||||
Map<String, Policy> datasourcePolicyMap = policyUtils.generatePolicyFromPermission(Set.of(datasourcePermission), user);
|
Map<String, Policy> datasourcePolicyMap = policyUtils.generatePolicyFromPermission(Set.of(datasourcePermission), user);
|
||||||
|
|
||||||
Flux<Page> updatedPagesFlux = policyUtils.updateWithApplicationPermissionsToAllItsPages(application.getId(), pagePolicyMap, isPublic);
|
Flux<Page> updatedPagesFlux = policyUtils.updateWithApplicationPermissionsToAllItsPages(application.getId(), pagePolicyMap, isPublic);
|
||||||
|
|
|
||||||
|
|
@ -152,10 +152,10 @@ public class UserOrganizationServiceImpl implements UserOrganizationService {
|
||||||
// Generate all the policies for Organization, Application, Page and Actions for the current user
|
// Generate all the policies for Organization, Application, Page and Actions for the current user
|
||||||
Set<AclPermission> rolePermissions = role.getPermissions();
|
Set<AclPermission> rolePermissions = role.getPermissions();
|
||||||
Map<String, Policy> orgPolicyMap = policyUtils.generatePolicyFromPermission(rolePermissions, user);
|
Map<String, Policy> orgPolicyMap = policyUtils.generatePolicyFromPermission(rolePermissions, user);
|
||||||
Map<String, Policy> applicationPolicyMap = policyUtils.generateChildrenPoliciesFromOrganizationPolicies(orgPolicyMap, Application.class);
|
Map<String, Policy> applicationPolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(orgPolicyMap, Organization.class, Application.class);
|
||||||
Map<String, Policy> datasourcePolicyMap = policyUtils.generateChildrenPoliciesFromOrganizationPolicies(orgPolicyMap, Datasource.class);
|
Map<String, Policy> datasourcePolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(orgPolicyMap, Organization.class, Datasource.class);
|
||||||
Map<String, Policy> pagePolicyMap = policyUtils.generatePagePoliciesFromApplicationPolicies(applicationPolicyMap);
|
Map<String, Policy> pagePolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(applicationPolicyMap, Application.class, Page.class);
|
||||||
Map<String, Policy> actionPolicyMap = policyUtils.generateActionPoliciesFromPagePolicies(pagePolicyMap);
|
Map<String, Policy> actionPolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(pagePolicyMap, Page.class, Action.class);
|
||||||
|
|
||||||
//Now update the organization policies
|
//Now update the organization policies
|
||||||
Organization updatedOrganization = policyUtils.addPoliciesToExistingObject(orgPolicyMap, organization);
|
Organization updatedOrganization = policyUtils.addPoliciesToExistingObject(orgPolicyMap, organization);
|
||||||
|
|
@ -215,10 +215,10 @@ public class UserOrganizationServiceImpl implements UserOrganizationService {
|
||||||
// Generate all the policies for Organization, Application, Page and Actions
|
// Generate all the policies for Organization, Application, Page and Actions
|
||||||
Set<AclPermission> rolePermissions = role.getPermissions();
|
Set<AclPermission> rolePermissions = role.getPermissions();
|
||||||
Map<String, Policy> orgPolicyMap = policyUtils.generatePolicyFromPermission(rolePermissions, user);
|
Map<String, Policy> orgPolicyMap = policyUtils.generatePolicyFromPermission(rolePermissions, user);
|
||||||
Map<String, Policy> applicationPolicyMap = policyUtils.generateChildrenPoliciesFromOrganizationPolicies(orgPolicyMap, Application.class);
|
Map<String, Policy> applicationPolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(orgPolicyMap, Organization.class, Application.class);
|
||||||
Map<String, Policy> datasourcePolicyMap = policyUtils.generateChildrenPoliciesFromOrganizationPolicies(orgPolicyMap, Datasource.class);
|
Map<String, Policy> datasourcePolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(orgPolicyMap, Organization.class, Datasource.class);
|
||||||
Map<String, Policy> pagePolicyMap = policyUtils.generatePagePoliciesFromApplicationPolicies(applicationPolicyMap);
|
Map<String, Policy> pagePolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(applicationPolicyMap, Application.class, Page.class);
|
||||||
Map<String, Policy> actionPolicyMap = policyUtils.generateActionPoliciesFromPagePolicies(pagePolicyMap);
|
Map<String, Policy> actionPolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(pagePolicyMap, Page.class, Action.class);
|
||||||
|
|
||||||
//Now update the organization policies
|
//Now update the organization policies
|
||||||
Organization updatedOrganization = policyUtils.removePoliciesFromExistingObject(orgPolicyMap, organization);
|
Organization updatedOrganization = policyUtils.removePoliciesFromExistingObject(orgPolicyMap, organization);
|
||||||
|
|
@ -333,10 +333,10 @@ public class UserOrganizationServiceImpl implements UserOrganizationService {
|
||||||
// Generate all the policies for Organization, Application, Page and Actions for the current user
|
// Generate all the policies for Organization, Application, Page and Actions for the current user
|
||||||
Set<AclPermission> rolePermissions = role.getPermissions();
|
Set<AclPermission> rolePermissions = role.getPermissions();
|
||||||
Map<String, Policy> orgPolicyMap = policyUtils.generatePolicyFromPermissionForMultipleUsers(rolePermissions, users);
|
Map<String, Policy> orgPolicyMap = policyUtils.generatePolicyFromPermissionForMultipleUsers(rolePermissions, users);
|
||||||
Map<String, Policy> applicationPolicyMap = policyUtils.generateChildrenPoliciesFromOrganizationPolicies(orgPolicyMap, Application.class);
|
Map<String, Policy> applicationPolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(orgPolicyMap, Organization.class, Application.class);
|
||||||
Map<String, Policy> datasourcePolicyMap = policyUtils.generateChildrenPoliciesFromOrganizationPolicies(orgPolicyMap, Datasource.class);
|
Map<String, Policy> datasourcePolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(orgPolicyMap, Organization.class, Datasource.class);
|
||||||
Map<String, Policy> pagePolicyMap = policyUtils.generatePagePoliciesFromApplicationPolicies(applicationPolicyMap);
|
Map<String, Policy> pagePolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(applicationPolicyMap, Application.class, Page.class);
|
||||||
Map<String, Policy> actionPolicyMap = policyUtils.generateActionPoliciesFromPagePolicies(pagePolicyMap);
|
Map<String, Policy> actionPolicyMap = policyUtils.generateInheritedPoliciesFromSourcePolicies(pagePolicyMap, Page.class, Action.class);
|
||||||
|
|
||||||
//Now update the organization policies
|
//Now update the organization policies
|
||||||
Organization updatedOrganization = (Organization) policyUtils.addPoliciesToExistingObject(orgPolicyMap, organization);
|
Organization updatedOrganization = (Organization) policyUtils.addPoliciesToExistingObject(orgPolicyMap, organization);
|
||||||
|
|
|
||||||
|
|
@ -282,8 +282,7 @@ public class UserServiceImpl extends BaseService<UserRepository, User, String> i
|
||||||
.findByEmail(user.getEmail())
|
.findByEmail(user.getEmail())
|
||||||
.switchIfEmpty(Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, "token", token)))
|
.switchIfEmpty(Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, "token", token)))
|
||||||
.flatMap(passwordResetTokenRepository::delete)
|
.flatMap(passwordResetTokenRepository::delete)
|
||||||
.thenReturn(userFromDb)
|
.then(repository.save(userFromDb))
|
||||||
.flatMap(repository::save)
|
|
||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user