Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions admin-ui/app/locales/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,10 @@
"reloginToViewCedarlingChanges": "Please Re-login to view the cedarling changes.",
"allAvailableHintsSelected": "All available hint options are selected",
"noMatchingOptions": "No matching options",
"nothingToShowInTheList": "Nothing to show in the list"
"nothingToShowInTheList": "Nothing to show in the list",
"adminUiPolicyStore": "Admin UI Policy Store",
"configApiPolicyStore": "Config API Policy Store",
"localPolicies": "Local Policies"
},
"languages": {
"french": "French",
Expand Down Expand Up @@ -650,7 +653,8 @@
"securityDropdown": {
"adminUiRoles": "Admin UI Roles",
"capabilities": "Capabilities",
"mapping": "Mapping"
"mapping": "Mapping",
"cedarlingConfig": "Cedarling"
},
"basic_configuration": "Basic Configuration",
"inum_configuration": "Inum Configuration",
Expand Down Expand Up @@ -944,6 +948,7 @@
"jwk_keys": "JWK keys",
"jans_json_property": "Properties",
"mapping": "Role/Permission Mapping",
"cedarling_config": "Cedarling Configuration",
"modules_properties": "Module Properties",
"oauth_server_status_title": "OAuth server status",
"oidc_clients": "OpenID Connect Clients",
Expand Down Expand Up @@ -1704,11 +1709,17 @@
"principalAttribute": "Name or Friendly Name of the attribute used to identify external",
"principalType": "Way to identify and track external users from the assertion."
},

"samlConfiguration": {
"enabled": "SAML functionality enabled.",
"selectedIdp": "Selected SAML server.",
"ignoreValidation": "Boolean value to enable/disable SAML validation."
},
"cedarlingConfig": {
"title": "Configure fine-grained control using Cedarling",
"point1": "1. Create a policy store using Agama Lab. Fork project",
"point2": "2. Copy PolicyStore URL and configure.",
"note": "Note: This will help you to create your own cedarling project. You can update roles and permissions using",
"localPoliciesNote:": "Note: Recommended to set ON for production. If on, it will fetch policies from above URLs, store them in DB, and use them for Cedarling authorization."
}
}
}
16 changes: 14 additions & 2 deletions admin-ui/app/locales/es/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,10 @@
"reloginToViewCedarlingChanges": "Por favor, vuelve a iniciar sesión para ver los cambios de Cedarling.",
"allAvailableHintsSelected": "Todas las opciones de sugerencia disponibles están seleccionadas",
"noMatchingOptions": "No hay opciones coincidentes",
"nothingToShowInTheList": "Nada que mostrar en la lista"
"nothingToShowInTheList": "Nada que mostrar en la lista",
"adminUiPolicyStore": "Tienda de políticas de la interfaz de usuario del administrador",
"configApiPolicyStore": "Almacén de políticas de la API de configuración",
"localPolicies": "Políticas locales"
},
"languages": {
"french": "Frances",
Expand Down Expand Up @@ -650,7 +653,8 @@
"securityDropdown": {
"adminUiRoles": "Roles de la Interfaz de Administración",
"capabilities": "Capacidades",
"mapping": "Mapeo"
"mapping": "Mapeo",
"cedarlingConfig": "Cedarling"
},
"basic_configuration": "Configuración Básica",
"inum_configuration": "Configuración Inum",
Expand Down Expand Up @@ -941,6 +945,7 @@
"jwk_keys": "Claves JWK",
"jans_json_property": "Propiedades",
"mapping": "Mapeo Rol/Permiso",
"cedarling_config": "Configuración de Cedarling",
"modules_properties": "Propiedades del módulo",
"oauth_server_status_title": "Estado del servidor OAuth",
"oidc_clients": "Clientes OpenID Connect",
Expand Down Expand Up @@ -1705,6 +1710,13 @@
"enabled": "Funcionalidad SAML habilitada",
"selectedIdp": "Servidor SAML seleccionado",
"ignoreValidation": "Valor booleano para habilitar/deshabilitar validación SAML"
},
"cedarlingConfig": {
"title": "Configurar un control detallado mediante Cedarling",
"point1": "1. Crear un almacén de políticas con Agama Lab. Bifurcar proyecto.",
"point2": "2. Copie la URL de PolicyStore y configúrela.",
"note": "Nota: Esto te ayudará a crear tu propio proyecto de Cedarling. Puedes actualizar roles y permisos usando",
"localPoliciesNote:": "Nota: Se recomienda activarlo en producción. Si está activado, se obtendrán las políticas de las URL anteriores, se almacenarán en la base de datos y se usarán para la autorización de Cedarling."
}
},
"validations": {
Expand Down
16 changes: 14 additions & 2 deletions admin-ui/app/locales/fr/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@
"securityDropdown": {
"adminUiRoles": "Rôles de l'interface utilisateur d'administration",
"capabilities": "Capacités",
"mapping": "Mapping"
"mapping": "Mapping",
"cedarlingConfig": "Cèdre"
},
"lock": "Verrouillage",
"cache": "Cacher",
Expand Down Expand Up @@ -649,7 +650,10 @@
"reloginToViewCedarlingChanges": "Veuillez vous reconnecter pour voir les modifications de cedarling.",
"allAvailableHintsSelected": "Toutes les options d'indice disponibles sont sélectionnées.",
"noMatchingOptions": "Aucune option correspondante",
"nothingToShowInTheList": "Rien à montrer dans la liste"
"nothingToShowInTheList": "Rien à montrer dans la liste",
"adminUiPolicyStore": "Magasin de politiques de l'interface utilisateur d'administration",
"configApiPolicyStore": "Magasin de politiques de configuration de l'API",
"localPolicies": "Politiques locales"
},
"messages": {
"add_permission": "Ajouter une autorisation",
Expand Down Expand Up @@ -835,6 +839,7 @@
"loading_database_information": "Chargement des informations de la base de données...",
"jans_json_property": "Propriétés",
"all_oidc_clients": "Tous les clients OIDC",
"cedarling_config": "Configuration Cedarling",
"jans_kc_link": "Lien KC Jans",
"all_scopes": "Toutes les portées",
"idp": "IDP",
Expand Down Expand Up @@ -1555,6 +1560,13 @@
"description": "Description de la permission",
"tag": "Nom-de-la-balise pour identifier l'autorisation à inclure dans le jeton d'accès à l'API.",
"default_permission_in_token": "Si défini sur vrai, l'autorisation sera disponible par défaut dans le jeton d'autorisation pour accéder à l'API (avant l'authentification)."
},
"cedarlingConfig": {
"title": "Configurer un contrôle précis à l'aide de Cedarling",
"point1": "1. Créer un magasin de politiques avec Agama Lab. Projet Fork",
"point2": "2. Copiez l'URL de PolicyStore et configurez-la.",
"note": "Remarque : Ceci vous aidera à créer votre propre projet Cedarling. Vous pouvez modifier les rôles et les autorisations via",
"localPoliciesNote:": "Remarque : Il est recommandé d'activer cette option pour la production. Si elle est activée, les politiques seront récupérées à partir des URL ci-dessus, stockées dans la base de données et utilisées pour l'autorisation Cedarling."
}
},
"script": {
Expand Down
16 changes: 14 additions & 2 deletions admin-ui/app/locales/pt/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@
"securityDropdown": {
"adminUiRoles": "Funções da interface do administrador",
"capabilities": "Capacidades",
"mapping": "Mapeamento"
"mapping": "Mapeamento",
"cedarlingConfig": "Cedarling"
},
"lock": "Trancar",
"cache": "Cache",
Expand Down Expand Up @@ -644,7 +645,10 @@
"reloginToViewCedarlingChanges": "Por favor, faça login novamente para ver as alterações do cedarling.",
"allAvailableHintsSelected": "Todas as opções de dica disponíveis estão selecionadas",
"noMatchingOptions": "Nenhuma opção correspondente",
"nothingToShowInTheList": "Nada a mostrar na lista"
"nothingToShowInTheList": "Nada a mostrar na lista",
"adminUiPolicyStore": "Política de armazenamento da interface de administração",
"configApiPolicyStore": "Política de armazenamento da API de configuração",
"localPolicies": "Políticas locais"
},
"messages": {
"add_permission": "Adicionar permissão",
Expand Down Expand Up @@ -826,6 +830,7 @@
"all_attributes": "Todos os Atributos",
"all_custom_scripts": "Todos os scripts personalizados",
"jans_json_property": "Propriedades",
"cedarling_config": "Configuração Cedarling",
"jans_lock": "Trava Jans",
"config_api_configuration": "Configuração da API de Configuração",
"database_information": "Informações do Banco de Dados",
Expand Down Expand Up @@ -1552,6 +1557,13 @@
},
"authn": {
"acr": "Référence de classe de contexte d'authentification"
},
"cedarlingConfig": {
"title": "Configurar o controlo refinado usando Cedarling",
"point1": "1. Crie um repositório de políticas utilizando o Agama Lab. Fork Project",
"point2": "2.º Copie o URL do PolicyStore e configure.",
"note": "Nota: isto irá ajudá-lo a criar o seu próprio projeto cedarling. Pode atualizar funções e permissões usando",
"localPoliciesNote:": "Nota: Recomenda-se ativar a opção para produção. Se ativado, o sistema irá procurar políticas dos URLs acima, armazená-las na base de dados e utilizá-las para autorização do Cedarling."
}
},
"script": {
Expand Down
125 changes: 125 additions & 0 deletions admin-ui/plugins/admin/components/Cedarling/CedarlingConfigPage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
import { lazy, useState } from 'react'
import {
Button,
Card,
CardBody,
FormGroup,
CardTitle,
CardText,
Form,
Label,
Input,
CustomInput,
Col,
} from 'Components'
import { useTranslation } from 'react-i18next'
import SetTitle from 'Utils/SetTitle'
import GluuToogleRow from '@/routes/Apps/Gluu/GluuToogleRow'
import GluuLabel from '@/routes/Apps/Gluu/GluuLabel'

function CedarlingConfigPage() {
const { t } = useTranslation()
SetTitle(t('titles.cedarling_config'))
const [adminUiPolicyStore, setAdminUiPolicyStore] = useState('')
const [configApiPolicyStore, setConfigApiPolicyStore] = useState('')
const [localPolicies, setLocalPolicies] = useState(true)

const handleSubmit = (e) => {
e.preventDefault()
const config = {
adminUiPolicyStore,
configApiPolicyStore,
localPolicies,
}
console.log('Submitted Config:', config)
alert('Configuration applied successfully!')
}

return (
<Card className="shadow-sm align-items-center">
<Col sm="9">
<CardBody>
<CardTitle tag="h4" className="text-center fw-bold mb-4">
{t('documentation.cedarlingConfig.title')}
</CardTitle>

<Card className="bg-light border-0 p-3 mb-4">
<CardText className="text-center text-secondary">
{t('documentation.cedarlingConfig.point1')}{' '}
<a
href="https://github.com/kdhttps/admin-ui-cedarling-config"
target="_blank"
rel="noopener noreferrer"
>
AdminUICedarling
</a>
.
<br />
{t('documentation.cedarlingConfig.point2')}
</CardText>
<CardText className="text-center text-muted small">
{t('documentation.cedarlingConfig.note')}{' '}
<a href="https://cloud.gluu.org/agama-lab" target="_blank" rel="noopener noreferrer">
Agama-Lab
</a>
.
</CardText>
</Card>

<Form onSubmit={handleSubmit}>
<FormGroup row>
<GluuLabel label={'fields.adminUiPolicyStore'} />
<Col sm={9}>
<Input
id="adminUiPolicyStore"
type="url"
name="adminUiPolicyStore"
value={adminUiPolicyStore}
onChange={(e) => setAdminUiPolicyStore(e.target.value)}
/>
</Col>
</FormGroup>
<FormGroup row>
<GluuLabel label={'fields.configApiPolicyStore'} />
<Col sm={9}>
<Input
id="configApiPolicyStore"
type="url"
name="configApiPolicyStore"
value={configApiPolicyStore}
onChange={(e) => setConfigApiPolicyStore(e.target.value)}
/>
</Col>
</FormGroup>

<FormGroup row>
<Col sm={12} className="ps-4">
<GluuToogleRow
name="localPolicies"
handler={(e) => {
setLocalPolicies(e.target.checked)
}}
lsize={4}
rsize={8}
label={`${t('fields.localPolicies')}`}
value={localPolicies}
/>
<p className="text-muted small mt-2">
{t('documentation.cedarlingConfig.localPoliciesNote')}
</p>
</Col>
</FormGroup>

<div className="text-center mt-4">
<Button color="dark" size="lg" type="submit">
{t('actions.apply')}
</Button>
</div>
</Form>
</CardBody>
</Col>
</Card>
)
}

export default CedarlingConfigPage
11 changes: 11 additions & 0 deletions admin-ui/plugins/admin/plugin-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import JansAssetEditPage from './components/Assets/JansAssetEditPage'
import JansAssetAddPage from './components/Assets/JansAssetAddPage'
import DashboardPage from '../../app/routes/Dashboards/DashboardPage'
import LicenseDetailsPage from '../../app/routes/License/LicenseDetailsPage'
import CedarlingConfigPage from './components/Cedarling/CedarlingConfigPage'

const PLUGIN_BASE_PATH = '/adm'

Expand Down Expand Up @@ -95,6 +96,11 @@ const pluginMetadata = {
path: PLUGIN_BASE_PATH + '/mapping',
permission: MAPPING_READ,
},
{
title: 'menus.securityDropdown.cedarlingConfig',
path: PLUGIN_BASE_PATH + '/cedarlingconfig',
permission: MAPPING_READ,
},
],
},

Expand Down Expand Up @@ -158,6 +164,11 @@ const pluginMetadata = {
path: PLUGIN_BASE_PATH + '/mapping',
permission: MAPPING_READ,
},
{
component: CedarlingConfigPage,
path: PLUGIN_BASE_PATH + '/cedarlingconfig',
permission: MAPPING_READ,
},

{
component: WebhookListPage,
Expand Down
Loading