Skip to content

Commit

Permalink
mock featureFlags, settings, some of hub permission checks
Browse files Browse the repository at this point in the history
  • Loading branch information
himdel committed Jun 20, 2024
1 parent 2472c5e commit e661564
Show file tree
Hide file tree
Showing 38 changed files with 211 additions and 549 deletions.
3 changes: 1 addition & 2 deletions src/actions/action.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ import { Button } from '@patternfly/react-core';
import { DropdownItem } from '@patternfly/react-core/deprecated';
import React, { type ReactNode } from 'react';
import { Tooltip } from 'src/components';
import { type PermissionContextType } from 'src/permissions';

type ModalType = ({ addAlert, listQuery, query, setState, state }) => ReactNode;

interface ActionParams {
buttonVariant?: 'primary' | 'secondary';
condition?: PermissionContextType;
condition?: (item, actionContext) => boolean;
disabled?: (item, actionContext) => string | ReactNode | null;
modal?: ModalType;
onClick: (item, actionContext) => void;
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-remote-create.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import { msg } from '@lingui/macro';
import { Paths, formatPath } from 'src/paths';
import { canAddAnsibleRemote } from 'src/permissions';
import { Action } from './action';

export const ansibleRemoteCreateAction = Action({
condition: canAddAnsibleRemote,
title: msg`Add remote`,
onClick: (item, { navigate }) =>
navigate(formatPath(Paths.ansibleRemoteEdit, { name: '_' })),
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-remote-delete.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { msg, t } from '@lingui/macro';
import React from 'react';
import { AnsibleRemoteAPI } from 'src/api';
import { DeleteAnsibleRemoteModal } from 'src/components';
import { canDeleteAnsibleRemote } from 'src/permissions';
import {
handleHttpError,
parsePulpIDFromURL,
Expand All @@ -12,7 +11,6 @@ import {
import { Action } from './action';

export const ansibleRemoteDeleteAction = Action({
condition: canDeleteAnsibleRemote,
title: msg`Delete`,
modal: ({ addAlert, listQuery, setState, state }) =>
state.deleteModalOpen ? (
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-remote-edit.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import { msg } from '@lingui/macro';
import { Paths, formatPath } from 'src/paths';
import { canEditAnsibleRemote } from 'src/permissions';
import { Action } from './action';

export const ansibleRemoteEditAction = Action({
condition: canEditAnsibleRemote,
title: msg`Edit`,
onClick: ({ name }, { navigate }) =>
navigate(formatPath(Paths.ansibleRemoteEdit, { name })),
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-repository-collection-version-add.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import {
DetailList,
closeAlert,
} from 'src/components';
import { canEditAnsibleRepository } from 'src/permissions';
import { handleHttpError, parsePulpIDFromURL, taskAlert } from 'src/utilities';
import { Action } from './action';

Expand Down Expand Up @@ -237,7 +236,6 @@ const AddCollectionVersionModal = ({
};

export const ansibleRepositoryCollectionVersionAddAction = Action({
condition: canEditAnsibleRepository,
title: msg`Add collection`,
modal: ({ addAlert, state, setState, query }) =>
state.addCollectionVersionModal ? (
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-repository-collection-version-remove.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { Text } from '@patternfly/react-core';
import React, { useState } from 'react';
import { AnsibleRepositoryAPI } from 'src/api';
import { DeleteModal } from 'src/components';
import { canEditAnsibleRepository } from 'src/permissions';
import { handleHttpError, parsePulpIDFromURL, taskAlert } from 'src/utilities';
import { Action } from './action';

Expand Down Expand Up @@ -87,7 +86,6 @@ const RemoveCollectionVersionModal = ({
};

export const ansibleRepositoryCollectionVersionRemoveAction = Action({
condition: canEditAnsibleRepository,
title: msg`Remove`,
modal: ({ addAlert, state, setState, query }) =>
state.removeCollectionVersionModal ? (
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-repository-create.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import { msg } from '@lingui/macro';
import { Paths, formatPath } from 'src/paths';
import { canAddAnsibleRepository } from 'src/permissions';
import { Action } from './action';

export const ansibleRepositoryCreateAction = Action({
condition: canAddAnsibleRepository,
title: msg`Add repository`,
onClick: (item, { navigate }) =>
navigate(formatPath(Paths.ansibleRepositoryEdit, { name: '_' })),
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-repository-delete.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { msg, t } from '@lingui/macro';
import React from 'react';
import { AnsibleDistributionAPI, AnsibleRepositoryAPI } from 'src/api';
import { DeleteAnsibleRepositoryModal } from 'src/components';
import { canDeleteAnsibleRepository } from 'src/permissions';
import {
handleHttpError,
parsePulpIDFromURL,
Expand All @@ -12,7 +11,6 @@ import {
import { Action } from './action';

export const ansibleRepositoryDeleteAction = Action({
condition: canDeleteAnsibleRepository,
title: msg`Delete`,
modal: ({ addAlert, listQuery, setState, state }) =>
state.deleteModalOpen ? (
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-repository-edit.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import { msg } from '@lingui/macro';
import { Paths, formatPath } from 'src/paths';
import { canEditAnsibleRepository } from 'src/permissions';
import { Action } from './action';

export const ansibleRepositoryEditAction = Action({
condition: canEditAnsibleRepository,
title: msg`Edit`,
onClick: ({ name }, { navigate }) =>
navigate(formatPath(Paths.ansibleRepositoryEdit, { name })),
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-repository-sync.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import { Link } from 'react-router-dom';
import { AnsibleRepositoryAPI } from 'src/api';
import { HelpButton, Spinner } from 'src/components';
import { Paths, formatPath } from 'src/paths';
import { canSyncAnsibleRepository } from 'src/permissions';
import { handleHttpError, parsePulpIDFromURL, taskAlert } from 'src/utilities';
import { Action } from './action';

Expand Down Expand Up @@ -102,7 +101,6 @@ const SyncModal = ({
};

export const ansibleRepositorySyncAction = Action({
condition: canSyncAnsibleRepository,
title: msg`Sync`,
modal: ({ addAlert, query, setState, state }) =>
state.syncModalOpen ? (
Expand Down
2 changes: 0 additions & 2 deletions src/actions/ansible-repository-version-revert.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { Button, Modal } from '@patternfly/react-core';
import React, { useState } from 'react';
import { AnsibleRepositoryAPI } from 'src/api';
import { Spinner } from 'src/components';
import { canRevertAnsibleRepositoryVersion } from 'src/permissions';
import { handleHttpError, parsePulpIDFromURL, taskAlert } from 'src/utilities';
import { Action } from './action';

Expand Down Expand Up @@ -83,7 +82,6 @@ function revert(
}

export const ansibleRepositoryVersionRevertAction = Action({
condition: canRevertAnsibleRepositoryVersion,
title: msg`Revert to this version`,
modal: ({ addAlert, state, setState, query }) =>
state.revertModal ? (
Expand Down
5 changes: 0 additions & 5 deletions src/api/response-types/settings.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
export class SettingsType {
GALAXY_AUTH_LDAP_ENABLED: never;
GALAXY_AUTO_SIGN_COLLECTIONS: boolean;
GALAXY_COLLECTION_SIGNING_SERVICE: string;
GALAXY_CONTAINER_SIGNING_SERVICE: string;
GALAXY_ENABLE_UNAUTHENTICATED_COLLECTION_ACCESS: boolean;
GALAXY_ENABLE_UNAUTHENTICATED_COLLECTION_DOWNLOAD: boolean;
GALAXY_REQUIRE_CONTENT_APPROVAL: boolean;
GALAXY_REQUIRE_SIGNATURE_FOR_APPROVAL: boolean;
GALAXY_FEATURE_FLAGS: never;
GALAXY_SIGNATURE_UPLOAD_ENABLED: boolean;
GALAXY_TOKEN_EXPIRATION: number | null;
GALAXY_LDAP_DISABLE_REFERRALS: never;
GALAXY_LDAP_MIRROR_ONLY_EXISTING_GROUPS: boolean;
GALAXY_MINIMUM_PASSWORD_LENGTH: never;
KEYCLOAK_URL: never;
}
23 changes: 0 additions & 23 deletions src/app-context.ts

This file was deleted.

87 changes: 87 additions & 0 deletions src/app-context.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import React, {
type ReactNode,
createContext,
useContext,
useState,
} from 'react';
import {
type FeatureFlagsType,
type SettingsType,
type UserType,
} from 'src/api';
import { type AlertType } from 'src/components';

export interface IAppContextType {
alerts: AlertType[];
featureFlags: FeatureFlagsType; // deprecated
hasPermission: (name: string) => boolean;
queueAlert: (alert: AlertType) => void;
selectedRepo?: string; // deprecated
setAlerts: (alerts: AlertType[]) => void;
setUser: (user: UserType) => void;
settings: SettingsType; // deprecated
updateTitle: (title: string) => void; // deprecated
user?: UserType;
}

export const AppContext = createContext<IAppContextType>(undefined);
export const useAppContext = () => useContext(AppContext);

export const AppContextProvider = ({ children }: { children: ReactNode }) => {
const [alerts, setAlerts] = useState<AlertType[]>([]);
const [user, setUser] = useState<UserType>(null);

// hub compat for now
const featureFlags = {
container_signing: true,
execution_environments: true,
external_authentication: false,
display_repositories: true,
can_create_signatures: true,
can_upload_signatures: true,
collection_auto_sign: true,
collection_signing: true,
display_signatures: true,
require_upload_signatures: false,
signatures_enabled: true,
_messages: [],
};
const settings = {
GALAXY_AUTO_SIGN_COLLECTIONS: true,
GALAXY_COLLECTION_SIGNING_SERVICE: 'mock_signing',
GALAXY_CONTAINER_SIGNING_SERVICE: 'mock_signing',
GALAXY_ENABLE_UNAUTHENTICATED_COLLECTION_ACCESS: true,
GALAXY_ENABLE_UNAUTHENTICATED_COLLECTION_DOWNLOAD: true,
GALAXY_REQUIRE_CONTENT_APPROVAL: true,
GALAXY_REQUIRE_SIGNATURE_FOR_APPROVAL: true,
GALAXY_SIGNATURE_UPLOAD_ENABLED: true,
GALAXY_TOKEN_EXPIRATION: null,
GALAXY_LDAP_MIRROR_ONLY_EXISTING_GROUPS: true,
};

const queueAlert = (alert) => setAlerts((alerts) => [...alerts, alert]);
const hasPermission = (_name) => true; // FIXME: permission handling
const updateTitle = (title) => {
document.title = title
? `${APPLICATION_NAME} - ${title}`
: APPLICATION_NAME;
};

return (
<AppContext.Provider
value={{
alerts,
featureFlags,
hasPermission,
queueAlert,
setAlerts,
setUser,
settings,
updateTitle,
user,
}}
>
{children}
</AppContext.Provider>
);
};
Loading

0 comments on commit e661564

Please sign in to comment.