From f384115183bf89aee6086d5c7a5b6ee33f214d9d Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 11 Mar 2026 10:06:01 +0000 Subject: [PATCH] Bug 40596: Add CAS protocol to identity provider REST API and admin UI Adds 'CAS' to the identity_provider OpenAPI definition enum so the REST API accepts and returns CAS providers. Extends the Identity Providers admin UI (ProviderResource.vue) with: - CAS option in the protocol dropdown. - CAS settings group with server_url (required) and version (optional, 'CAS 2 or earlier' / 'CAS 3 or later') configuration fields. --- .../definitions/identity_provider.yaml | 1 + .../IdentityProviders/ProviderResource.vue | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/api/v1/swagger/definitions/identity_provider.yaml b/api/v1/swagger/definitions/identity_provider.yaml index 69a32058b77..7e4bb145a79 100644 --- a/api/v1/swagger/definitions/identity_provider.yaml +++ b/api/v1/swagger/definitions/identity_provider.yaml @@ -15,6 +15,7 @@ properties: description: Authentication protocol type: string enum: + - CAS - OAuth - OIDC - SAML2 diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/IdentityProviders/ProviderResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/IdentityProviders/ProviderResource.vue index e8808070244..f6954fa0171 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/IdentityProviders/ProviderResource.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/IdentityProviders/ProviderResource.vue @@ -11,6 +11,31 @@ import { APIClient } from "../../fetch/api-client.js"; import { $__ } from "@koha-vue/i18n"; const PROTOCOL_CONFIG_FIELDS = { + CAS: [ + { + name: "server_url", + label: __("CAS server URL"), + required: true, + type: "text", + group: "CAS settings", + toolTip: __( + "Base URL of the CAS server, e.g. https://cas.example.org/cas" + ), + }, + { + name: "version", + label: __("CAS protocol version"), + required: false, + type: "select", + group: "CAS settings", + options: [ + { value: "2", label: "CAS 2 or earlier" }, + { value: "3", label: "CAS 3 or later" }, + ], + requiredKey: "value", + selectLabel: "label", + }, + ], OAuth: [ { name: "key", @@ -152,6 +177,7 @@ export default { label: __("Protocol"), group: "Basic configuration", options: [ + { value: "CAS", label: "CAS" }, { value: "OAuth", label: "OAuth" }, { value: "OIDC", label: "OIDC" }, { value: "SAML2", label: "SAML2 / Shibboleth" }, -- 2.53.0