From f1b5d0f9fa5eb6a195365896d4fc8bdb967e394f Mon Sep 17 00:00:00 2001 From: Porin Date: Wed, 1 Mar 2023 18:03:42 +0100 Subject: [PATCH] Remove Admin Authentication settings (#75) * Remove admin auth settings * Remove leftover Admin Authentication stuff * Remove leftover scss file --- src/__tests__/actions-test.ts | 54 --------------- src/actions.ts | 29 -------- src/components/AdminAuthServices.tsx | 69 ------------------- src/components/ConfigTabContainer.tsx | 3 - .../__tests__/ConfigTabContainer-test.tsx | 6 -- src/interfaces.ts | 6 -- src/reducers/adminAuthServices.ts | 8 --- src/reducers/index.ts | 4 -- .../admin_auth_service_edit_form.scss | 21 ------ src/stylesheets/app.scss | 1 - 10 files changed, 201 deletions(-) delete mode 100644 src/components/AdminAuthServices.tsx delete mode 100644 src/reducers/adminAuthServices.ts delete mode 100644 src/stylesheets/admin_auth_service_edit_form.scss diff --git a/src/__tests__/actions-test.ts b/src/__tests__/actions-test.ts index 861d35d3d..b6f6fc1d9 100644 --- a/src/__tests__/actions-test.ts +++ b/src/__tests__/actions-test.ts @@ -702,60 +702,6 @@ describe("actions", () => { }); }); - describe("fetchAdminAuthServices", () => { - it("dispatches request, load, and success", async () => { - const dispatch = stub(); - const adminAuthServicesData = "adminAuthServices"; - fetcher.testData = { - ok: true, - status: 200, - json: () => - new Promise((resolve, reject) => { - resolve(adminAuthServicesData); - }), - }; - fetcher.resolve = true; - - const data = await actions.fetchAdminAuthServices()(dispatch); - expect(dispatch.callCount).to.equal(3); - expect(dispatch.args[0][0].type).to.equal( - `${ActionCreator.ADMIN_AUTH_SERVICES}_${ActionCreator.REQUEST}` - ); - expect(dispatch.args[1][0].type).to.equal( - `${ActionCreator.ADMIN_AUTH_SERVICES}_${ActionCreator.SUCCESS}` - ); - expect(dispatch.args[2][0].type).to.equal( - `${ActionCreator.ADMIN_AUTH_SERVICES}_${ActionCreator.LOAD}` - ); - expect(data).to.deep.equal(adminAuthServicesData); - }); - }); - - describe("editAdminAuthService", () => { - it("dispatches request and success", async () => { - const editAdminAuthServiceUrl = "/admin/admin_auth_services"; - const dispatch = stub(); - const formData = new (window as any).FormData(); - formData.append("name", "new name"); - - fetchMock.mock(editAdminAuthServiceUrl, "server response"); - const fetchArgs = fetchMock.calls(); - - await actions.editAdminAuthService(formData)(dispatch); - expect(dispatch.callCount).to.equal(3); - expect(dispatch.args[0][0].type).to.equal( - `${ActionCreator.EDIT_ADMIN_AUTH_SERVICE}_${ActionCreator.REQUEST}` - ); - expect(dispatch.args[1][0].type).to.equal( - `${ActionCreator.EDIT_ADMIN_AUTH_SERVICE}_${ActionCreator.SUCCESS}` - ); - expect(fetchMock.called()).to.equal(true); - expect(fetchArgs[0][0]).to.equal(editAdminAuthServiceUrl); - expect(fetchArgs[0][1].method).to.equal("POST"); - expect(fetchArgs[0][1].body).to.equal(formData); - }); - }); - describe("fetchIndividualAdmins", () => { it("dispatches request, load, and success", async () => { const dispatch = stub(); diff --git a/src/actions.ts b/src/actions.ts index 92eaa695b..09a247587 100644 --- a/src/actions.ts +++ b/src/actions.ts @@ -8,7 +8,6 @@ import { StatsData, LibrariesData, CollectionsData, - AdminAuthServicesData, IndividualAdminsData, PatronAuthServicesData, SitewideSettingsData, @@ -75,9 +74,6 @@ export default class ActionCreator extends BaseActionCreator { static readonly COLLECTIONS = "COLLECTIONS"; static readonly EDIT_COLLECTION = "EDIT_COLLECTION"; static readonly DELETE_COLLECTION = "DELETE_COLLECTION"; - static readonly ADMIN_AUTH_SERVICES = "ADMIN_AUTH_SERVICES"; - static readonly EDIT_ADMIN_AUTH_SERVICE = "EDIT_ADMIN_AUTH_SERVICE"; - static readonly DELETE_ADMIN_AUTH_SERVICE = "DELETE_ADMIN_AUTH_SERVICE"; static readonly INDIVIDUAL_ADMINS = "INDIVIDUAL_ADMINS"; static readonly EDIT_INDIVIDUAL_ADMIN = "EDIT_INDIVIDUAL_ADMIN"; static readonly DELETE_INDIVIDUAL_ADMIN = "DELETE_INDIVIDUAL_ADMIN"; @@ -515,31 +511,6 @@ export default class ActionCreator extends BaseActionCreator { ).bind(this); } - fetchAdminAuthServices() { - const url = "/admin/admin_auth_services"; - return this.fetchJSON( - ActionCreator.ADMIN_AUTH_SERVICES, - url - ).bind(this); - } - - editAdminAuthService(data: FormData) { - const url = "/admin/admin_auth_services"; - return this.postForm(ActionCreator.EDIT_ADMIN_AUTH_SERVICE, url, data).bind( - this - ); - } - - deleteAdminAuthService(identifier: string | number) { - const url = "/admin/admin_auth_service/" + identifier; - return this.postForm( - ActionCreator.DELETE_ADMIN_AUTH_SERVICE, - url, - null, - "DELETE" - ).bind(this); - } - fetchIndividualAdmins() { const url = "/admin/individual_admins"; return this.fetchJSON( diff --git a/src/components/AdminAuthServices.tsx b/src/components/AdminAuthServices.tsx deleted file mode 100644 index ad20d4a6d..000000000 --- a/src/components/AdminAuthServices.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import EditableConfigList, { - EditableConfigListStateProps, - EditableConfigListDispatchProps, - EditableConfigListOwnProps, -} from "./EditableConfigList"; -import { connect } from "react-redux"; -import ActionCreator from "../actions"; -import { AdminAuthServicesData, AdminAuthServiceData } from "../interfaces"; -import ServiceEditForm from "./ServiceEditForm"; - -/** Right panel for admin authentication services on the system configuration page. - Shows a list of current admin authentication services and allows creating a new - service or editing or deleting an existing service. */ -export class AdminAuthServices extends EditableConfigList< - AdminAuthServicesData, - AdminAuthServiceData -> { - EditForm = ServiceEditForm; - listDataKey = "admin_auth_services"; - itemTypeName = "admin authentication service"; - urlBase = "/admin/web/config/adminAuth/"; - identifierKey = "protocol"; - labelKey = "protocol"; - limitOne = true; -} - -function mapStateToProps(state, ownProps) { - const data = Object.assign( - {}, - state.editor.adminAuthServices && state.editor.adminAuthServices.data - ); - if (state.editor.libraries && state.editor.libraries.data) { - data.allLibraries = state.editor.libraries.data.libraries; - } - // fetchError = an error involving loading the list of admin auth services; formError = an error upon - // submission of the create/edit form. - return { - data, - responseBody: - state.editor.adminAuthServices && - state.editor.adminAuthServices.successMessage, - fetchError: state.editor.adminAuthServices.fetchError, - formError: state.editor.adminAuthServices.formError, - isFetching: - state.editor.adminAuthServices.isFetching || - state.editor.adminAuthServices.isEditing, - }; -} - -function mapDispatchToProps(dispatch, ownProps) { - const actions = new ActionCreator(null, ownProps.csrfToken); - return { - fetchData: () => dispatch(actions.fetchAdminAuthServices()), - editItem: (data: FormData) => dispatch(actions.editAdminAuthService(data)), - deleteItem: (identifier: string | number) => - dispatch(actions.deleteAdminAuthService(identifier)), - }; -} - -const ConnectedAdminAuthServices = connect< - EditableConfigListStateProps, - EditableConfigListDispatchProps, - EditableConfigListOwnProps ->( - mapStateToProps, - mapDispatchToProps -)(AdminAuthServices); - -export default ConnectedAdminAuthServices; diff --git a/src/components/ConfigTabContainer.tsx b/src/components/ConfigTabContainer.tsx index ffe77b39e..06491c333 100644 --- a/src/components/ConfigTabContainer.tsx +++ b/src/components/ConfigTabContainer.tsx @@ -2,7 +2,6 @@ import * as React from "react"; import * as PropTypes from "prop-types"; import Libraries from "./Libraries"; import Collections from "./Collections"; -import AdminAuthServices from "./AdminAuthServices"; import IndividualAdmins from "./IndividualAdmins"; import PatronAuthServices from "./PatronAuthServices"; import SitewideAnnouncements from "./SitewideAnnouncements"; @@ -47,7 +46,6 @@ export default class ConfigTabContainer extends TabContainer< libraries: Libraries, individualAdmins: IndividualAdmins, collections: Collections, - adminAuth: AdminAuthServices, patronAuth: PatronAuthServices, sitewideSettings: SitewideSettings, logging: LoggingServices, @@ -65,7 +63,6 @@ export default class ConfigTabContainer extends TabContainer< SYSTEM_ADMIN_TABS = Object.keys(this.COMPONENT_CLASSES); DISPLAY_NAMES = { - adminAuth: "Admin Authentication", individualAdmins: "Admins", patronAuth: "Patron Authentication", sitewideAnnouncements: "Sitewide Announcements", diff --git a/src/components/__tests__/ConfigTabContainer-test.tsx b/src/components/__tests__/ConfigTabContainer-test.tsx index 414d7d0ff..b596d3788 100644 --- a/src/components/__tests__/ConfigTabContainer-test.tsx +++ b/src/components/__tests__/ConfigTabContainer-test.tsx @@ -8,7 +8,6 @@ import buildStore from "../../store"; import ConfigTabContainer from "../ConfigTabContainer"; import Libraries from "../Libraries"; import Collections from "../Collections"; -import AdminAuthServices from "../AdminAuthServices"; import IndividualAdmins from "../IndividualAdmins"; import PatronAuthServices from "../PatronAuthServices"; import SitewideSettings from "../SitewideSettings"; @@ -56,7 +55,6 @@ describe("ConfigTabContainer", () => { expect(linkTexts).to.contain("Libraries"); expect(linkTexts).to.contain("Admins"); expect(linkTexts).to.contain("Collections"); - expect(linkTexts).to.contain("Admin Authentication"); expect(linkTexts).to.contain("Patron Authentication"); expect(linkTexts).to.contain("Sitewide Settings"); expect(linkTexts).to.contain("Metadata"); @@ -69,7 +67,6 @@ describe("ConfigTabContainer", () => { Libraries, IndividualAdmins, Collections, - AdminAuthServices, PatronAuthServices, SitewideSettings, MetadataServices, @@ -123,7 +120,6 @@ describe("ConfigTabContainer", () => { expect(linkTexts).to.contain("Admins"); expect(linkTexts).not.to.contain("Analytics"); expect(linkTexts).not.to.contain("Collections"); - expect(linkTexts).not.to.contain("Admin Authentication"); expect(linkTexts).not.to.contain("Patron Authentication"); expect(linkTexts).not.to.contain("Sitewide Settings"); expect(linkTexts).not.to.contain("Metadata"); @@ -141,7 +137,6 @@ describe("ConfigTabContainer", () => { const hiddenComponentClasses = [ Collections, - AdminAuthServices, PatronAuthServices, SitewideSettings, MetadataServices, @@ -195,7 +190,6 @@ describe("ConfigTabContainer", () => { const hiddenComponentClasses = [ Collections, IndividualAdmins, - AdminAuthServices, PatronAuthServices, SitewideSettings, MetadataServices, diff --git a/src/interfaces.ts b/src/interfaces.ts index 7c3cffa61..6532739ae 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -293,12 +293,6 @@ export interface PathFor { (collectionUrl: string, bookUrl: string, tab?: string): string; } -export interface AdminAuthServiceData extends ServiceData {} - -export interface AdminAuthServicesData extends ServicesData { - admin_auth_services: AdminAuthServiceData[]; -} - export interface AdminRoleData { library?: string; role: string; diff --git a/src/reducers/adminAuthServices.ts b/src/reducers/adminAuthServices.ts deleted file mode 100644 index 1f01be364..000000000 --- a/src/reducers/adminAuthServices.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { AdminAuthServicesData } from "../interfaces"; -import ActionCreator from "../actions"; -import createFetchEditReducer from "./createFetchEditReducer"; - -export default createFetchEditReducer( - ActionCreator.ADMIN_AUTH_SERVICES, - ActionCreator.EDIT_ADMIN_AUTH_SERVICE -); diff --git a/src/reducers/index.ts b/src/reducers/index.ts index c2b451e07..c4ffe311b 100644 --- a/src/reducers/index.ts +++ b/src/reducers/index.ts @@ -10,7 +10,6 @@ import stats, { StatsState } from "./stats"; import diagnostics from "./diagnostics"; import libraries from "./libraries"; import collections from "./collections"; -import adminAuthServices from "./adminAuthServices"; import individualAdmins from "./individualAdmins"; import patronAuthServices from "./patronAuthServices"; import sitewideAnnouncements from "./sitewideAnnouncements"; @@ -51,7 +50,6 @@ import patronManager from "./managePatrons"; import { LibrariesData, CollectionsData, - AdminAuthServicesData, IndividualAdminsData, PatronAuthServicesData, SitewideAnnouncementsData, @@ -87,7 +85,6 @@ export interface State { diagnostics: FetchEditState; libraries: FetchEditState; collections: FetchEditState; - adminAuthServices: FetchEditState; individualAdmins: FetchEditState; patronAuthServices: FetchEditState; sitewideAnnouncements: FetchEditState; @@ -134,7 +131,6 @@ export default combineReducers({ diagnostics, libraries, collections, - adminAuthServices, individualAdmins, patronAuthServices, sitewideAnnouncements, diff --git a/src/stylesheets/admin_auth_service_edit_form.scss b/src/stylesheets/admin_auth_service_edit_form.scss deleted file mode 100644 index 7fa0cd7ff..000000000 --- a/src/stylesheets/admin_auth_service_edit_form.scss +++ /dev/null @@ -1,21 +0,0 @@ -.add-domain { - margin-left: 10px; -} - -.admin-auth-service-domain { - div { - display: inline-block; - margin-right: 10px; - } - - i { - color: #AAA; - cursor: pointer; - } -} - -.add-admin-form { - border: 1px solid black; - padding: 20px; - margin: 5px 0px; -} \ No newline at end of file diff --git a/src/stylesheets/app.scss b/src/stylesheets/app.scss index a42e60bf2..e585f71f5 100644 --- a/src/stylesheets/app.scss +++ b/src/stylesheets/app.scss @@ -10,7 +10,6 @@ $fontfamily: 'Open Sans', sans-serif; @import "colors"; @import "global"; -@import "admin_auth_service_edit_form"; @import "advanced_search"; @import "announcements"; @import "badge";