Skip to content

Commit

Permalink
Rename file to acl-utils (not a component).
Browse files Browse the repository at this point in the history
  • Loading branch information
cahrens committed Feb 2, 2024
1 parent abec092 commit 1e8cc21
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 35 deletions.
4 changes: 2 additions & 2 deletions src/pages/workspaces/workspace/Dashboard/OwnerNotice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import { Ajax } from 'src/libs/ajax';
import colors from 'src/libs/colors';
import { withErrorReporting } from 'src/libs/error';
import { useCancellation } from 'src/libs/react-utils';
import { AclUtils } from 'src/workspaces/acl-utils';
import { InitializedWorkspaceWrapper as Workspace } from 'src/workspaces/common/state/useWorkspace';
import { WorkspaceAcl } from 'src/workspaces/common/WorkspaceAcl';
import { isOwner } from 'src/workspaces/utils';

interface OwnerNoticeProps {
Expand All @@ -20,7 +20,7 @@ export const OwnerNotice = (props: OwnerNoticeProps): ReactNode => {
const { workspace } = props;
const { owners = [], accessLevel } = workspace;

const [acl, setAcl] = useState<WorkspaceAcl>();
const [acl, setAcl] = useState<AclUtils>();

const signal = useCancellation();

Expand Down
8 changes: 4 additions & 4 deletions src/workspaces/ShareWorkspaceModal/Collaborator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { h } from 'react-hyperscript-helpers';
import { getTerraUser } from 'src/libs/state';
import { asMockedFn, renderWithAppContexts as render } from 'src/testing/test-utils';
import { defaultGoogleWorkspace } from 'src/testing/workspace-fixtures';
import { AccessEntry, WorkspaceAcl } from 'src/workspaces/common/WorkspaceAcl';
import { AccessEntry, AclUtils } from 'src/workspaces/acl-utils';
import { Collaborator } from 'src/workspaces/ShareWorkspaceModal/Collaborator';
import { BaseWorkspace } from 'src/workspaces/utils';

Expand Down Expand Up @@ -45,7 +45,7 @@ describe('a Collaborator component', () => {
canCompute: true,
accessLevel: 'OWNER',
};
const setAcl: Dispatch<SetStateAction<WorkspaceAcl>> = asMockedFn(jest.fn());
const setAcl: Dispatch<SetStateAction<AclUtils>> = asMockedFn(jest.fn());
const acl = [item];
render(
h(Collaborator, {
Expand All @@ -69,7 +69,7 @@ describe('a Collaborator component', () => {
canCompute: true,
accessLevel: 'OWNER',
};
const setAcl: Dispatch<SetStateAction<WorkspaceAcl>> = asMockedFn(jest.fn());
const setAcl: Dispatch<SetStateAction<AclUtils>> = asMockedFn(jest.fn());
const acl = [item];

render(
Expand All @@ -96,7 +96,7 @@ describe('a Collaborator component', () => {
canCompute: true,
accessLevel: 'OWNER',
};
const setAcl: Dispatch<SetStateAction<WorkspaceAcl>> = asMockedFn(jest.fn());
const setAcl: Dispatch<SetStateAction<AclUtils>> = asMockedFn(jest.fn());
const acl = [item];

render(
Expand Down
14 changes: 7 additions & 7 deletions src/workspaces/ShareWorkspaceModal/Collaborator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,22 @@ import { getPopupRoot } from 'src/components/popup-utils';
import colors from 'src/libs/colors';
import { getTerraUser } from 'src/libs/state';
import * as Utils from 'src/libs/utils';
import { AccessEntry, WorkspaceAcl } from 'src/workspaces/common/WorkspaceAcl';
import { AccessEntry, AclUtils } from 'src/workspaces/acl-utils';
import { BaseWorkspace, hasAccessLevel, isAzureWorkspace, WorkspaceAccessLevel } from 'src/workspaces/utils';

/**
* @param aclItem {AccessEntry} the item to render
* @param acl {WorkspaceAcl} the entire current Access Control List
* @param setAcl {Dispatch<SetStateAction<WorkspaceAcl>>} called to modify the Access Control list when the aclItem changes or is removed
* @param originalAcl {WorkspaceAcl} the original acl, to determine new items
* @param acl {AclUtils} the entire current Access Control List
* @param setAcl {Dispatch<SetStateAction<AclUtils>>} called to modify the Access Control list when the aclItem changes or is removed
* @param originalAcl {AclUtils} the original acl, to determine new items
* @param workspace {BaseWorkspace} the workspace the acl belongs to
* @param lastAddedEmail {string | undefined} the most recently added email to the list
*/
interface CollaboratorProps {
aclItem: AccessEntry;
acl: WorkspaceAcl;
setAcl: Dispatch<SetStateAction<WorkspaceAcl>>;
originalAcl: WorkspaceAcl;
acl: AclUtils;
setAcl: Dispatch<SetStateAction<AclUtils>>;
originalAcl: AclUtils;
workspace: BaseWorkspace;
lastAddedEmail?: string;
}
Expand Down
14 changes: 7 additions & 7 deletions src/workspaces/ShareWorkspaceModal/CurrentCollaborators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ import _ from 'lodash/fp';
import React, { CSSProperties, Dispatch, Fragment, SetStateAction, useLayoutEffect, useRef } from 'react';
import { div, h } from 'react-hyperscript-helpers';
import * as Style from 'src/libs/style';
import { aclEntryIsTerraSupport, WorkspaceAcl } from 'src/workspaces/common/WorkspaceAcl';
import { aclEntryIsTerraSupport, AclUtils } from 'src/workspaces/acl-utils';
import { Collaborator } from 'src/workspaces/ShareWorkspaceModal/Collaborator';
import { BaseWorkspace } from 'src/workspaces/utils';

/**
* Render a list of Collaborators of a workspace, and allow them to be modified or removed.
* @param acl {WorkspaceAcl} the entire current Access Control List
* @param setAcl {Dispatch<SetStateAction<WorkspaceAcl>>} called to modify the Access Control list when the aclItem changes or is removed
* @param originalAcl {WorkspaceAcl} the original acl, to determine new items
* @param acl {AclUtils} the entire current Access Control List
* @param setAcl {Dispatch<SetStateAction<AclUtils>>} called to modify the Access Control list when the aclItem changes or is removed
* @param originalAcl {AclUtils} the original acl, to determine new items
* @param workspace {BaseWorkspace} the workspace the acl belongs to
* @param lastAddedEmail {string | undefined} the most recently added email to the list
*/
interface CurrentCollaboratorsProps {
acl: WorkspaceAcl;
setAcl: Dispatch<SetStateAction<WorkspaceAcl>>;
originalAcl: WorkspaceAcl;
acl: AclUtils;
setAcl: Dispatch<SetStateAction<AclUtils>>;
originalAcl: AclUtils;
workspace: BaseWorkspace;
lastAddedEmail?: string;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Ajax } from 'src/libs/ajax';
import { getTerraUser } from 'src/libs/state';
import { asMockedFn, renderWithAppContexts as render } from 'src/testing/test-utils';
import { defaultAzureWorkspace, defaultGoogleWorkspace, protectedAzureWorkspace } from 'src/testing/workspace-fixtures';
import { AccessEntry, RawWorkspaceAcl } from 'src/workspaces/common/WorkspaceAcl';
import { AccessEntry, RawWorkspaceAcl } from 'src/workspaces/acl-utils';
import ShareWorkspaceModal from 'src/workspaces/ShareWorkspaceModal/ShareWorkspaceModal';
import { GoogleWorkspace } from 'src/workspaces/utils';

Expand Down
10 changes: 5 additions & 5 deletions src/workspaces/ShareWorkspaceModal/ShareWorkspaceModal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ import { useCancellation, useOnMount } from 'src/libs/react-utils';
import { append, cond, withBusyState } from 'src/libs/utils';
import {
aclEntryIsTerraSupport,
AclUtils,
terraSupportAccessLevel,
terraSupportEmail,
transformAcl,
WorkspaceAcl,
} from 'src/workspaces/common/WorkspaceAcl';
} from 'src/workspaces/acl-utils';
import { CurrentCollaborators } from 'src/workspaces/ShareWorkspaceModal/CurrentCollaborators';
import { isAzureWorkspace, isGoogleWorkspace, WorkspaceWrapper } from 'src/workspaces/utils';
import { WorkspacePolicies } from 'src/workspaces/WorkspacePolicies/WorkspacePolicies';
Expand All @@ -38,9 +38,9 @@ const ShareWorkspaceModal: React.FC<ShareWorkspaceModalProps> = (props: ShareWor
// State
const [shareSuggestions, setShareSuggestions] = useState<string[]>([]);
const [groups, setGroups] = useState<CurrentUserGroupMembership[]>([]);
const [originalAcl, setOriginalAcl] = useState<WorkspaceAcl>([]);
const [originalAcl, setOriginalAcl] = useState<AclUtils>([]);
const [searchValue, setSearchValue] = useState('');
const [acl, setAcl] = useState<WorkspaceAcl>([]);
const [acl, setAcl] = useState<AclUtils>([]);
const [loaded, setLoaded] = useState(false);
const [working, setWorking] = useState(false);
const [updateError, setUpdateError] = useState(undefined);
Expand All @@ -60,7 +60,7 @@ const ShareWorkspaceModal: React.FC<ShareWorkspaceModalProps> = (props: ShareWor
Ajax(signal).Groups.list(),
]);

const fixedAcl: WorkspaceAcl = transformAcl(acl);
const fixedAcl: AclUtils = transformAcl(acl);
setAcl(fixedAcl);
setOriginalAcl(fixedAcl);
setGroups(groups);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
import {
aclEntryIsTerraSupport,
RawWorkspaceAcl,
transformAcl,
WorkspaceAcl,
} from 'src/workspaces/common/WorkspaceAcl';
import { aclEntryIsTerraSupport, AclUtils, RawWorkspaceAcl, transformAcl } from 'src/workspaces/acl-utils';
import { workspaceAccessLevels } from 'src/workspaces/utils';

describe('utility functions for the workspace acl', () => {
Expand All @@ -17,7 +12,7 @@ describe('utility functions for the workspace acl', () => {
accessLevel: 'PROJECT_OWNER',
},
};
const expectedTransformedAcl: WorkspaceAcl = [
const expectedTransformedAcl: AclUtils = [
{
email: 'email1@test.com',
canCompute: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { WorkspaceAccessLevel, workspaceAccessLevels } from 'src/workspaces/util
export type RawWorkspaceAcl = { [key: string]: RawAccessEntry };

// a list of email, AccessEntry pairs
export type WorkspaceAcl = AccessEntry[];
export type AclUtils = AccessEntry[];

export interface RawAccessEntry {
pending: boolean;
Expand All @@ -18,7 +18,7 @@ export interface AccessEntry extends RawAccessEntry {
email: string;
}

export const transformAcl: (RawWorkspaceAcl) => WorkspaceAcl = (raw) => {
export const transformAcl: (RawWorkspaceAcl) => AclUtils = (raw) => {
return _.flow(
_.toPairs,
_.map(([email, data]) => ({ email, ...data })),
Expand Down

0 comments on commit 1e8cc21

Please sign in to comment.