diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index f85a09bf9..d7e0422a1 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Zugriffsverwaltung", + "add_project": "Projekt hinzufügen", "alert_created": "Alarm erstellt", "alert_deleted": "Alarm gelöscht", "alert_log_successful_publish": "Erfolgreiche Alarmierung protokollieren", @@ -64,6 +65,7 @@ "create_oidc_group": "Gruppe erstellen", "create_oidc_user": "OpenID Connect-Benutzer erstellen", "create_repository": "Repository erstellen", + "create_role": "Rolle erstellen", "create_team": "Team erstellen", "create_template": "Vorlage erstellen", "create_user": "Benutzer erstellen", @@ -78,6 +80,7 @@ "delete_alert": "Alarm löschen", "delete_oidc_group": "Gruppe löschen", "delete_repository": "Repository löschen", + "delete_role": "Rolle löschen", "delete_team": "Team löschen", "delete_template": "Vorlage löschen", "delete_user": "Benutzer löschen", @@ -164,6 +167,7 @@ "metrics": "Metriken", "mime_type": "Mime Typ", "minutes": "Minuten", + "multiselect_remove_role": "Rollen können nur geändert werden", "name_regex": "Komponentenname Regex", "name_regex_desc": "Gibt einen regulären Ausdruck an, der interne Komponenten anhand des Komponentennamens identifiziert.", "namespace_regex": "Regulärer Ausdruck für den Komponenten-Namespace", @@ -193,9 +197,11 @@ "perform_identification": "Identifizierung durchführen", "perform_test": "Test durchführen", "permissions": "Berechtigungen", + "permissions_updated": "Die Berechtigungen wurden aktualisiert", "personal_access_token": "Persönlicher Zugriffstoken", "portfolio_access_control": "Portfolio-Zugriffskontrolle", "preview": "Vorschau", + "project": "Projekt", "project_access": "Projektzugriff", "project_retention_enable": "Aktivieren Sie das Löschen inaktiver Projekte", "publisher": "Publisher", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Sicherheitslücken", "reindex_vulnerable_software": "Anfällige Software", "remove_api_key": "remove_api_key", + "remove_permission": "Erlaubnis entfernen", + "remove_role": "Rolle entfernen", + "remove_team_membership": "Mitgliedschaft entfernen", "repositories": "Repositorys", "repository_authentication": "Authentifizierung erforderlich", "repository_created": "Repository erstellt", @@ -224,6 +233,7 @@ "required_fullname": "Der vollständige Name ist erforderlich", "required_oidc_group_name": "Name ist erforderlich", "required_password": "Passwort wird benötigt", + "required_role_name": "Rollenname ist erforderlich", "required_team_name": "Teamname ist erforderlich", "required_username": "Benutzername wird benötigt", "restore_default_template": "Standardvorlagen wiederherstellen", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Mittel (Standard: 3)", "risk_score_weight_unassigned": "Nicht zugewiesen (Standard: 5)", "risk_score_weighting_description": "Sie können die Gewichtung jedes Schweregrads anpassen, um die Risikobewertung anzupassen.", + "role": "Rolle", + "role_already_assigned": "Der Benutzer hat diese Rolle bereits zugewiesen.", + "role_assigned": "Rolle zugewiesen", + "role_created": "Rolle erstellt", + "role_deleted": "Rolle gelöscht", + "role_name": "Rollenname", + "role_updated": "Rolle aktualisiert", + "roles": "Rollen", "scope": "Scope", "select_ecosystem": "Ökosysteme auswählen", "select_ldap_group": "LDAP-Gruppe auswählen", "select_oidc_group": "OpenID Connect-Gruppe auswählen", "select_permission": "Berechtigung auswählen", "select_project": "Projekt auswählen", + "select_role": "Rolle auswählen", "select_team": "Team auswählen", "select_team_as_recipient": "Team als Empfänger auswählen", "snyk": "Snyk (Beta)", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 9ff5274d3..189fcbd18 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Access Management", + "add_project": "Add Project", "alert_created": "Alert created", "alert_deleted": "Alert deleted", "alert_log_successful_publish": "Log successful publish", @@ -64,6 +65,7 @@ "create_oidc_group": "Create Group", "create_oidc_user": "Create OpenID Connect User", "create_repository": "Create Repository", + "create_role": "Create Role", "create_team": "Create Team", "create_template": "Create Template", "create_user": "Create User", @@ -78,6 +80,7 @@ "delete_alert": "Delete Alert", "delete_oidc_group": "Delete Group", "delete_repository": "Delete Repository", + "delete_role": "Delete Role", "delete_team": "Delete Team", "delete_template": "Delete Template", "delete_user": "Delete User", @@ -164,6 +167,7 @@ "metrics": "Metrics", "mime_type": "Mime type", "minutes": "Minutes", + "multiselect_remove_role": "Roles can only be changed", "name_regex": "Component name regex", "name_regex_desc": "Specifies a regular expression that identifies internal components by the components name.", "namespace_regex": "Component namespace regex", @@ -193,9 +197,11 @@ "perform_identification": "Perform Identification", "perform_test": "Perform Test", "permissions": "Permissions", + "permissions_updated": "Permissions updated", "personal_access_token": "Personal Access Token", "portfolio_access_control": "Portfolio Access Control", "preview": "Preview", + "project": "Project", "project_access": "Project access", "project_retention_enable": "Enable Inactive Project Deletion", "publisher": "Publisher", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Vulnerabilities", "reindex_vulnerable_software": "Vulnerable software", "remove_api_key": "Remove API Key", + "remove_permission": "Remove Permission", + "remove_role": "Remove Role", + "remove_team_membership": "Remove Membership", "repositories": "Repositories", "repository_authentication": "Authentication required", "repository_created": "Repository created", @@ -224,6 +233,7 @@ "required_fullname": "Fullname is required", "required_oidc_group_name": "Name is required", "required_password": "Password is required", + "required_role_name": "Role name is required", "required_team_name": "Team name is required", "required_username": "Username is required", "restore_default_template": "Restore default templates", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Medium (default: 3)", "risk_score_weight_unassigned": "Unassigned (default: 5)", "risk_score_weighting_description": "You can customize the weighting of each severity to customize the risk score.", + "role": "Role", + "role_already_assigned": "The user already has this role assigned.", + "role_assigned": "Role Assigned", + "role_created": "Role Created", + "role_deleted": "Role Deleted", + "role_name": "Role Name", + "role_updated": "Role Updated", + "roles": "Roles", "scope": "Scope", "select_ecosystem": "Select Ecosystems", "select_ldap_group": "Select LDAP Group", "select_oidc_group": "Select OpenID Connect Group", "select_permission": "Select permission", "select_project": "Select Project", + "select_role": "Select Role", "select_team": "Select Team", "select_team_as_recipient": "Select team as recipient", "snyk": "Snyk (Beta)", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 3df684da7..333983fd0 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Gestión de Acceso", + "add_project": "Agregar proyecto", "alert_created": "Alerta creada", "alert_deleted": "Alerta eliminada", "alert_log_successful_publish": "Registrar publicación exitosa", @@ -64,6 +65,7 @@ "create_oidc_group": "Crea un grupo", "create_oidc_user": "Crear usuario de OpenID Connect", "create_repository": "Crear repositorio", + "create_role": "Crear rol", "create_team": "Crear equipo", "create_template": "Crear plantilla", "create_user": "Crear usuario", @@ -78,6 +80,7 @@ "delete_alert": "Eliminar alerta", "delete_oidc_group": "Eliminar grupo", "delete_repository": "Eliminar repositorio", + "delete_role": "Delete Role", "delete_team": "Eliminar equipo", "delete_template": "Eliminar plantilla", "delete_user": "Borrar usuario", @@ -164,6 +167,7 @@ "metrics": "Métrica", "mime_type": "Tipo de Mimica", "minutes": "Minutos", + "multiselect_remove_role": "Los roles solo se pueden cambiar", "name_regex": "Nombre del componente expresión regular", "name_regex_desc": "Especifica una expresión regular que identifica los componentes internos por el nombre de los componentes.", "namespace_regex": "Expresión regular del espacio de nombres del componente", @@ -193,9 +197,11 @@ "perform_identification": "Realizar identificación", "perform_test": "Realizar prueba", "permissions": "Permisos", + "permissions_updated": "Permisos actualizados", "personal_access_token": "Token de acceso personal", "portfolio_access_control": "Control de acceso al portafolio", "preview": "Avance", + "project": "Proyecto", "project_access": "Acceso al proyecto", "project_retention_enable": "Habilitar la eliminación de proyectos inactivos", "publisher": "Editor", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Vulnerabilidades", "reindex_vulnerable_software": "software vulnerable", "remove_api_key": "remove_api_key", + "remove_permission": "Eliminar el permiso", + "remove_role": "Eliminar el rol", + "remove_team_membership": "Eliminar la membresía", "repositories": "Repositorios", "repository_authentication": "Autenticacion requerida", "repository_created": "Repositorio creado", @@ -224,6 +233,7 @@ "required_fullname": "Se requiere el nombre completo", "required_oidc_group_name": "Se requiere el nombre", "required_password": "se requiere contraseña", + "required_role_name": "El nombre del rol es obligatorio", "required_team_name": "El nombre del equipo es obligatorio.", "required_username": "Se requiere nombre de usuario", "restore_default_template": "Restaurar plantillas predeterminadas", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Medio (predeterminado: 3)", "risk_score_weight_unassigned": "No asignado (predeterminado: 5)", "risk_score_weighting_description": "Puede personalizar la ponderación de cada gravedad para personalizar la puntuación de riesgo.", + "role": "Role", + "role_already_assigned": "El usuario ya tiene este rol asignado.", + "role_assigned": "Rol asignado", + "role_created": "Rol creado", + "role_deleted": "Rol eliminado", + "role_name": "Nombre del rol", + "role_updated": "Rol actualizado", + "roles": "Roles", "scope": "Alcance", "select_ecosystem": "Seleccionar ecosistemas", "select_ldap_group": "Seleccione grupo LDAP", "select_oidc_group": "Seleccione el grupo de conexión OpenID", "select_permission": "Seleccionar permiso", "select_project": "Seleccionar Proyecto", + "select_role": "Rol de selección", "select_team": "Selecciona un equipo", "select_team_as_recipient": "Seleccionar equipo como destinatario", "snyk": "Snyk (Beta)", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 8e7b638e4..c66eebdbe 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Gestion des accès", + "add_project": "Ajouter un projet", "alert_created": "Alerte créée", "alert_deleted": "Alerte supprimée", "alert_log_successful_publish": "Journaliser les publications réussies", @@ -64,6 +65,7 @@ "create_oidc_group": "Créer un groupe", "create_oidc_user": "Créer un utilisateur OpenID Connect", "create_repository": "Créer un dépôt", + "create_role": "Créer un rôle", "create_team": "Créer une équipe", "create_template": "Créer un modèle", "create_user": "Créer un utilisateur", @@ -78,6 +80,7 @@ "delete_alert": "Supprimer l'alerte", "delete_oidc_group": "Supprimer le groupe", "delete_repository": "Supprimer le dépôt", + "delete_role": "Supprimer le rôle", "delete_team": "Supprimer l'équipe", "delete_template": "Supprimer le modèle", "delete_user": "Supprimer l'utilisateur", @@ -164,6 +167,7 @@ "metrics": "Métrique", "mime_type": "Type MIME", "minutes": "Minutes", + "multiselect_remove_role": "Les rôles ne peuvent être modifiés que", "name_regex": "Regex du nom du composant", "name_regex_desc": "Spécifie une expression régulière qui identifie les composants internes par le nom des composants.", "namespace_regex": "Regex d'espace de noms de composant", @@ -193,9 +197,11 @@ "perform_identification": "Effectuer une identification", "perform_test": "Effectuer un test", "permissions": "Autorisations", + "permissions_updated": "Autorisations mises à jour", "personal_access_token": "Jeton d'accès personnel", "portfolio_access_control": "Contrôle d'accès au portefolio", "preview": "Aperçu", + "project": "Projet", "project_access": "Accès au projet", "project_retention_enable": "Activer la suppression des projets inactifs", "publisher": "Éditeur", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Vulnérabilités", "reindex_vulnerable_software": "Logiciels vulnérables", "remove_api_key": "Retirer la clé d'API", + "remove_permission": "Supprimer l'autorisation", + "remove_role": "Supprimer le rôle", + "remove_team_membership": "Supprimer", "repositories": "Dépôts", "repository_authentication": "Authentification requise", "repository_created": "Dépôt créé", @@ -224,6 +233,7 @@ "required_fullname": "Le nom complet est requis", "required_oidc_group_name": "Le nom est requis", "required_password": "Mot de passe requis", + "required_role_name": "Le nom du rôle est obligatoire", "required_team_name": "Le nom de l'équipe est requis", "required_username": "Nom d'utilisateur est nécessaire", "restore_default_template": "Restaurer les modèles par défaut", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Moyen (par défaut : 3)", "risk_score_weight_unassigned": "Non attribué (par défaut : 5)", "risk_score_weighting_description": "Vous pouvez personnaliser la pondération de chaque gravité pour personnaliser le score de risque.", + "role": "Rôle", + "role_already_assigned": "L'utilisateur a déjà ce rôle attribué.", + "role_assigned": "Rôle attribué", + "role_created": "Rôle créé", + "role_deleted": "Rôle supprimé", + "role_name": "Nom du rôle", + "role_updated": "Rôle mis à jour", + "roles": "Rôles", "scope": "Périmètre", "select_ecosystem": "Sélectionner les écosystèmes", "select_ldap_group": "Sélectionner un groupe LDAP", "select_oidc_group": "Sélectionner le groupe OpenID Connect", "select_permission": "Sélectionner l'autorisation", "select_project": "Sélectionner un projet", + "select_role": "Sélectionner un rôle", "select_team": "Sélectionner une équipe", "select_team_as_recipient": "Sélectionner une équipe comme destinataire", "snyk": "Snyk (bêta)", diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json index e44b617ce..8f5d5b3f7 100644 --- a/src/i18n/locales/hi.json +++ b/src/i18n/locales/hi.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "उपयोग प्रबंधन", + "add_project": "प्रोजेक्ट जोड़ें", "alert_created": "अलर्ट बनाया गया", "alert_deleted": "अलर्ट हटा दिया गया", "alert_log_successful_publish": "लॉग सफल प्रकाशन", @@ -64,6 +65,7 @@ "create_oidc_group": "समूह बनाना", "create_oidc_user": "OpenID कनेक्ट उपयोगकर्ता बनाएँ", "create_repository": "रिपॉजिटरी बनाएं", + "create_role": "भूमिका बनाएँ", "create_team": "टीम बनाएं", "create_template": "टेम्पलेट बनाएं", "create_user": "उपयोगकर्ता बनाइये", @@ -78,6 +80,7 @@ "delete_alert": "अलर्ट हटाएं", "delete_oidc_group": "समूह हटाएं", "delete_repository": "रिपॉजिटरी हटाएँ", + "delete_role": "भूमिका हटाएँ", "delete_team": "टीम हटाएँ", "delete_template": "टेम्पलेट हटाएं", "delete_user": "उपभोक्ता मिटायें", @@ -164,6 +167,7 @@ "metrics": "मेट्रिक्स", "mime_type": "माइम प्रकार", "minutes": "मिनट", + "multiselect_remove_role": "भूमिकाएँ केवल बदली जा सकती हैं", "name_regex": "घटक नाम रेगेक्स", "name_regex_desc": "एक नियमित अभिव्यक्ति निर्दिष्ट करता है जो घटक नाम से आंतरिक घटकों की पहचान करता है।", "namespace_regex": "घटक नामस्थान regex", @@ -193,9 +197,11 @@ "perform_identification": "पहचान करें", "perform_test": "परीक्षण करें", "permissions": "अनुमतियां", + "permissions_updated": "अनुमतियाँ अपडेट की गईं", "personal_access_token": "व्यक्तिगत एक्सेस टोकन", "portfolio_access_control": "पोर्टफोलियो एक्सेस नियंत्रण", "preview": "पूर्व दर्शन", + "project": "परियोजना", "project_access": "परियोजना तक पहुंच", "project_retention_enable": "निष्क्रिय प्रोजेक्ट विलोपन सक्षम करें", "publisher": "प्रकाशक", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "कमजोरियों", "reindex_vulnerable_software": "कमजोर सॉफ्टवेयर", "remove_api_key": "remove_api_key", + "remove_permission": "अनुमति निकालें", + "remove_role": "भूमिका को दूर करना", + "remove_team_membership": "सदस्यता निकालें", "repositories": "डेटा संग्रह स्थान", "repository_authentication": "प्रमाणित करना", "repository_created": "रिपोजिटरी बनाई गई", @@ -224,6 +233,7 @@ "required_fullname": "पूरा नाम आवश्यक है", "required_oidc_group_name": "नाम आवश्यक है", "required_password": "पासवर्ड की आवश्यकता है", + "required_role_name": "भूमिका का नाम आवश्यक है", "required_team_name": "टीम का नाम आवश्यक है", "required_username": "उपयोगकर्ता नाम आवश्यक है", "restore_default_template": "डिफ़ॉल्ट टेम्पलेट्स पुनर्स्थापित करें", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "मध्यम (डिफ़ॉल्ट: 3)", "risk_score_weight_unassigned": "असाइन नहीं किया गया (डिफ़ॉल्ट: 5)", "risk_score_weighting_description": "आप जोखिम स्कोर को अनुकूलित करने के लिए प्रत्येक गंभीरता के भार को अनुकूलित कर सकते हैं।", + "role": "भूमिका", + "role_already_assigned": "उपयोगकर्ता के पास पहले से ही यह भूमिका है।", + "role_assigned": "सौंपी गई भूमिका", + "role_created": "भूमिका बनाई गई", + "role_deleted": "भूमिका हटा दी गई", + "role_name": "भूमिका का नाम", + "role_updated": "अद्यतन की गई भूमिका", + "roles": "भूमिकाएँ", "scope": "दायरा", "select_ecosystem": "पारिस्थितिकी तंत्र का चयन करें", "select_ldap_group": "LDAP समूह चुनें", "select_oidc_group": "OpenID कनेक्ट समूह का चयन करें", "select_permission": "अनुमति चुनें", "select_project": "प्रोजेक्ट चुनें", + "select_role": "भूमिका का चयन करें", "select_team": "टीम का चयन", "select_team_as_recipient": "प्राप्तकर्ता के रूप में टीम का चयन करें", "snyk": "स्निक (बीटा)", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index fffd2ed42..e2109a43a 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "gestione degli accessi", + "add_project": "Aggiungi progetto", "alert_created": "Avviso creato", "alert_deleted": "Avviso eliminato", "alert_log_successful_publish": "Registra la pubblicazione riuscita", @@ -64,6 +65,7 @@ "create_oidc_group": "Creare un gruppo", "create_oidc_user": "Crea utente OpenID Connect", "create_repository": "Crea archivio", + "create_role": "Crea ruolo", "create_team": "Crea squadra", "create_template": "Crea modello", "create_user": "Creare un utente", @@ -78,6 +80,7 @@ "delete_alert": "Elimina avviso", "delete_oidc_group": "Elimina gruppo", "delete_repository": "Elimina archivio", + "delete_role": "Elimina ruolo", "delete_team": "Elimina squadra", "delete_template": "Elimina modello", "delete_user": "Elimina utente", @@ -164,6 +167,7 @@ "metrics": "Metrica", "mime_type": "Tipo mimo", "minutes": "Minuti", + "multiselect_remove_role": "I ruoli possono essere modificati solo", "name_regex": "Nome del componente regex", "name_regex_desc": "Specifica un'espressione regolare che identifica i componenti interni tramite il nome dei componenti.", "namespace_regex": "Regex dello spazio dei nomi del componente", @@ -193,9 +197,11 @@ "perform_identification": "Eseguire l'identificazione", "perform_test": "Eseguire la prova", "permissions": "Autorizzazioni", + "permissions_updated": "Autorizzazioni aggiornate", "personal_access_token": "Token di accesso personale", "portfolio_access_control": "Controllo degli accessi al portafoglio", "preview": "Anteprima", + "project": "Progetto", "project_access": "Accesso al progetto", "project_retention_enable": "Abilita l'eliminazione del progetto inattivo", "publisher": "Editore", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Vulnerabilità", "reindex_vulnerable_software": "Software vulnerabile", "remove_api_key": "remove_api_key", + "remove_permission": "Rimuovere l'autorizzazione", + "remove_role": "Rimuovere il ruolo", + "remove_team_membership": "Rimuovere l'adesione", "repositories": "Repository", "repository_authentication": "Autenticazione richiesta", "repository_created": "Archivio creato", @@ -224,6 +233,7 @@ "required_fullname": "Il nome completo è obbligatorio", "required_oidc_group_name": "Il nome è obbligatorio", "required_password": "E 'richiesta la password", + "required_role_name": "Il nome del ruolo è obbligatorio", "required_team_name": "Il nome della squadra è obbligatorio", "required_username": "è richiesto il nome utente", "restore_default_template": "Ripristina i modelli predefiniti", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Medio (predefinito: 3)", "risk_score_weight_unassigned": "Non assegnato (impostazione predefinita: 5)", "risk_score_weighting_description": "È possibile personalizzare la ponderazione di ciascuna gravità per personalizzare il punteggio di rischio.", + "role": "Ruolo", + "role_already_assigned": "L'utente ha già questo ruolo assegnato.", + "role_assigned": "Ruolo assegnato", + "role_created": "Ruolo creato", + "role_deleted": "Ruolo eliminato", + "role_name": "Nome del ruolo", + "role_updated": "Ruolo aggiornato", + "roles": "Ruoli", "scope": "Scopo", "select_ecosystem": "Seleziona Ecosistemi", "select_ldap_group": "Seleziona Gruppo LDAP", "select_oidc_group": "Seleziona Gruppo OpenID Connect", "select_permission": "Seleziona l'autorizzazione", "select_project": "Seleziona Progetto", + "select_role": "Seleziona il ruolo", "select_team": "Selezionare squadra", "select_team_as_recipient": "Seleziona la squadra come destinatario", "snyk": "Snyk (Beta)", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index c4467180d..97cacf639 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "アクセス管理", + "add_project": "プロジェクトを追加します", "alert_created": "アラートを作成しました", "alert_deleted": "アラートを削除しました", "alert_log_successful_publish": "発行成功のログ", @@ -64,6 +65,7 @@ "create_oidc_group": "グループを作成", "create_oidc_user": "OpenID Connect ユーザーを作成する", "create_repository": "リポジトリの作成", + "create_role": "ロールを作成", "create_team": "チームを作成", "create_template": "テンプレートを作成", "create_user": "ユーザーを作成", @@ -78,6 +80,7 @@ "delete_alert": "アラートを削除", "delete_oidc_group": "グループを削除", "delete_repository": "リポジトリの削除", + "delete_role": "ロールを削除", "delete_team": "チームを削除", "delete_template": "テンプレートを削除", "delete_user": "ユーザーを削除", @@ -129,7 +132,7 @@ "index_general_description": "Dependency Track は Apache Lucene を使用して、プロジェクトや脆弱性などのさまざまなエンティティの全文検索を可能にします。", "index_issues_description": "時間の経過とともに、Lucene インデックスは劣化したり、Dependency Track データベースからずれたりすることがあります。DT はずれを最小限に抑えるために最善を尽くしますが、必要に応じてインデックスをチェックしたり復元したりするために、以下の管理機能が提供されています。使用には注意が必要です。", "index_rebuild_description": "一部またはすべてのインデックスの選択的な再構築を即時に開始できます。インデックスの再構築は非同期タスクとして実行されます。Dependency Trackのログから進行状況を確認できます。", - "index_use_cases": "全文検索機能は、主に検索 API (すべてのインデックス) と CPE 上の内部アナライザーのあいまい一致 (脆弱なソフトウェア インデックス) に使用されます。", + "index_use_cases": "全文検索功能は、主に検索 API (すべてのインデックス) と CPE 上の内部アナライザーのあいまい一致 (脆弱なソフトウェア インデックス) に使用されます。", "integration_defectdojo_enable": "DefectDojo統合を有効にする", "integration_defectdojo_reimport_enable": "再インポートを有効にする", "integration_fortify_ssc_enable": "Fortify SSC統合を有効にする", @@ -164,6 +167,7 @@ "metrics": "メトリクス", "mime_type": "MIMEタイプ", "minutes": "分", + "multiselect_remove_role": "役割は変更のみを変更できます", "name_regex": "コンポーネント名の正規表現", "name_regex_desc": "コンポーネント名によって内部コンポーネントを識別する正規表現を指定します。", "namespace_regex": "コンポーネント名前空間の正規表現", @@ -193,9 +197,11 @@ "perform_identification": "識別を実行する", "perform_test": "テストを実行する", "permissions": "権限", + "permissions_updated": "権限が更新されました", "personal_access_token": "パーソナルアクセストークン", "portfolio_access_control": "ポートフォリオアクセス制御", "preview": "プレビュー", + "project": "プロジェクト", "project_access": "プロジェクトへのアクセス", "project_retention_enable": "非アクティブなプロジェクトの削除を有効にする", "publisher": "パブリッシャー", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "脆弱性", "reindex_vulnerable_software": "脆弱なソフトウェア", "remove_api_key": "remove_api_key", + "remove_permission": "許可を削除します", + "remove_role": "役割を削除します", + "remove_team_membership": "メンバーシップを削除します", "repositories": "リポジトリ", "repository_authentication": "認証が必要", "repository_created": "リポジトリが作成されました", @@ -224,6 +233,7 @@ "required_fullname": "フルネームは必須です", "required_oidc_group_name": "名前は必須です", "required_password": "パスワードが必要", + "required_role_name": "ロール名は必須です", "required_team_name": "チーム名は必須です", "required_username": "ユーザー名は必須です", "restore_default_template": "デフォルトのテンプレートを復元する", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "中 (デフォルト: 3)", "risk_score_weight_unassigned": "未割り当て (デフォルト: 5)", "risk_score_weighting_description": "各重大度の重み付けをカスタマイズして、リスク スコアをカスタマイズできます。", + "role": "役割", + "role_already_assigned": "ユーザーはすでにこの役割を割り当てています。", + "role_assigned": "割り当てられた役割", + "role_created": "ロールを作成しました", + "role_deleted": "ロールを削除しました", + "role_name": "ロール名", + "role_updated": "ロールが更新されました", + "roles": "ロール", "scope": "スコープ", "select_ecosystem": "エコシステムを選択", "select_ldap_group": "LDAPグループを選択", "select_oidc_group": "OpenID Connectグループを選択", "select_permission": "権限を選択", "select_project": "プロジェクトを選択", + "select_role": "役割を選択します", "select_team": "チームを選ぶ", "select_team_as_recipient": "受信者としてチームを選択", "snyk": "Snyk (ベータ版)", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 269c0a774..97bf7e503 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Zarządzanie dostępem", + "add_project": "Dodaj projekt", "alert_created": "Alert został utworzony", "alert_deleted": "Alert usunięty", "alert_log_successful_publish": "Zaloguj pomyślną publikację", @@ -64,6 +65,7 @@ "create_oidc_group": "Stworzyć grupę", "create_oidc_user": "Utwórz użytkownika OpenID Connect", "create_repository": "Utwórz repozytorium", + "create_role": "Utwórz rolę", "create_team": "Utwórz zespół", "create_template": "Utwórz szablon", "create_user": "Stwórz użytkownika", @@ -78,6 +80,7 @@ "delete_alert": "Usuń alert", "delete_oidc_group": "Usuń grupę", "delete_repository": "Usuń repozytorium", + "delete_role": "Usuń rolę", "delete_team": "Usuń zespół", "delete_template": "Usuń szablon", "delete_user": "Usuń użytkownika", @@ -164,6 +167,7 @@ "metrics": "Metryka", "mime_type": "Typ mima", "minutes": "Protokół", + "multiselect_remove_role": "Role można tylko zmienić", "name_regex": "Wyrażenie regularne nazwy komponentu", "name_regex_desc": "Określa wyrażenie regularne identyfikujące komponenty wewnętrzne na podstawie ich nazw.", "namespace_regex": "Wyrażenie regularne przestrzeni nazw komponentu", @@ -193,9 +197,11 @@ "perform_identification": "Wykonaj identyfikację", "perform_test": "Wykonaj test", "permissions": "Uprawnienia", + "permissions_updated": "Zaktualizowane uprawnienia", "personal_access_token": "Osobisty token dostępu", "portfolio_access_control": "Kontrola dostępu do portfela", "preview": "Zapowiedź", + "project": "Projekt", "project_access": "Dostęp do projektu", "project_retention_enable": "Włącz usuwanie nieaktywnego projektu", "publisher": "Wydawca", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Luki", "reindex_vulnerable_software": "Wrażliwe oprogramowanie", "remove_api_key": "remove_api_key", + "remove_permission": "Usuń pozwolenie", + "remove_role": "Usuń rolę", + "remove_team_membership": "Usuń członkostwo", "repositories": "Repozytoria", "repository_authentication": "Wymagane uwierzytelnienie", "repository_created": "Repozytorium zostało utworzone", @@ -224,6 +233,7 @@ "required_fullname": "Imię i nazwisko jest wymagane", "required_oidc_group_name": "imie jest wymagane", "required_password": "Wymagane jest hasło", + "required_role_name": "Nazwa roli jest wymagana", "required_team_name": "Nazwa zespołu jest wymagana", "required_username": "Wymagana jest nazwa użytkownika", "restore_default_template": "Przywróć domyślne szablony", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Średni (domyślnie: 3)", "risk_score_weight_unassigned": "Nieprzypisane (domyślnie: 5)", "risk_score_weighting_description": "Możesz dostosować wagę każdej wagi, aby dostosować ocenę ryzyka.", + "role": "Rola", + "role_already_assigned": "Użytkownik ma już przypisaną tę rolę.", + "role_assigned": "Przypisana rola", + "role_created": "Rola utworzona", + "role_deleted": "Rola usunięta", + "role_name": "Nazwa roli", + "role_updated": "Zaktualizowano rolę", + "roles": "Role", "scope": "Zakres", "select_ecosystem": "Wybierz Ekosystemy", "select_ldap_group": "Wybierz Grupę LDAP", "select_oidc_group": "Wybierz grupę OpenID Connect", "select_permission": "Wybierz uprawnienia", "select_project": "Wybierz Projekt", + "select_role": "Wybierz rolę", "select_team": "Wybierz drużynę", "select_team_as_recipient": "Wybierz zespół jako odbiorcę", "snyk": "Snyk (beta)", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 3c5be780f..7b062e94b 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Gerenciamento de acesso", + "add_project": "Adicionar projeto", "alert_created": "Alerta criado", "alert_deleted": "Alerta excluído", "alert_log_successful_publish": "Registrar publicação bem-sucedida", @@ -64,6 +65,7 @@ "create_oidc_group": "Criar grupo", "create_oidc_user": "Criar usuário OpenID Connect", "create_repository": "Criar repositório", + "create_role": "Criar função", "create_team": "Criar equipe", "create_template": "Criar modelo", "create_user": "Criar usuário", @@ -78,6 +80,7 @@ "delete_alert": "Excluir alerta", "delete_oidc_group": "Excluir grupo", "delete_repository": "Excluir repositório", + "delete_role": "Excluir função", "delete_team": "Excluir equipe", "delete_template": "Excluir modelo", "delete_user": "Deletar usuário", @@ -164,6 +167,7 @@ "metrics": "Métricas", "mime_type": "Tipo Mime", "minutes": "Minutos", + "multiselect_remove_role": "Os papéis só podem ser alterados", "name_regex": "Regex do nome do componente", "name_regex_desc": "Especifica uma expressão regular que identifica componentes internos pelo nome dos componentes.", "namespace_regex": "Regex do namespace do componente", @@ -193,9 +197,11 @@ "perform_identification": "Realizar identificação", "perform_test": "Realizar teste", "permissions": "Permissões", + "permissions_updated": "Permissões atualizadas", "personal_access_token": "Token de acesso pessoal", "portfolio_access_control": "Controle de acesso ao portfólio", "preview": "Visualização", + "project": "Projeto", "project_access": "Acesso ao projeto", "project_retention_enable": "Habilitar exclusão de projetos inativos", "publisher": "Editor", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Vulnerabilidades", "reindex_vulnerable_software": "Software vulnerável", "remove_api_key": "remove_api_key", + "remove_permission": "Remova a permissão", + "remove_role": "Remova o papel", + "remove_team_membership": "Remova a associação", "repositories": "Repositórios", "repository_authentication": "Autentificação requerida", "repository_created": "Repositório criado", @@ -224,6 +233,7 @@ "required_fullname": "O nome completo é obrigatório", "required_oidc_group_name": "O nome é obrigatório", "required_password": "Senha requerida", + "required_role_name": "O nome da função é obrigatório", "required_team_name": "O nome da equipe é obrigatório", "required_username": "Nome de usuário é requerido", "restore_default_template": "Restaurar modelos padrão", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Médio (padrão: 3)", "risk_score_weight_unassigned": "Não atribuído (padrão: 5)", "risk_score_weighting_description": "Você pode personalizar a ponderação de cada gravidade para personalizar a pontuação de risco.", + "role": "Papel", + "role_already_assigned": "O usuário já possui essa função atribuída.", + "role_assigned": "Função atribuída", + "role_created": "Função criada", + "role_deleted": "Função excluída", + "role_name": "Nome da função", + "role_updated": "Função atualizada", + "roles": "Funções", "scope": "Escopo", "select_ecosystem": "Selecione Ecossistemas", "select_ldap_group": "Selecione o grupo LDAP", "select_oidc_group": "Selecione o grupo OpenID Connect", "select_permission": "Selecione a permissão", "select_project": "Selecione o projeto", + "select_role": "Selecione função", "select_team": "Selecionar time", "select_team_as_recipient": "Selecione a equipe como destinatário", "snyk": "Snyk (beta)", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index ef8543f5a..bd1bbe471 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Gerir acessos", + "add_project": "Adicionar projeto", "alert_created": "Alerta criado", "alert_deleted": "Alerta excluído", "alert_log_successful_publish": "Registrar publicação bem-sucedida", @@ -64,6 +65,7 @@ "create_oidc_group": "Criar grupo", "create_oidc_user": "Criar utilizador OpenID Connect", "create_repository": "Criar repositório", + "create_role": "Criar função", "create_team": "Criar equipe", "create_template": "Criar modelo", "create_user": "Criar utilizador", @@ -78,6 +80,7 @@ "delete_alert": "Excluir alerta", "delete_oidc_group": "Excluir grupo", "delete_repository": "Excluir repositório", + "delete_role": "Excluir função", "delete_team": "Excluir equipe", "delete_template": "Excluir modelo", "delete_user": "Deletar utilizador", @@ -164,6 +167,7 @@ "metrics": "Métricas", "mime_type": "Tipo Mime", "minutes": "Minutos", + "multiselect_remove_role": "Os papéis só podem ser alterados", "name_regex": "Regex do nome do componente", "name_regex_desc": "Especifica uma expressão regular que identifica componentes internos pelo nome dos componentes.", "namespace_regex": "Regex do namespace do componente", @@ -193,9 +197,11 @@ "perform_identification": "Realizar identificação", "perform_test": "Realizar teste", "permissions": "Permissões", + "permissions_updated": "Permissões atualizadas", "personal_access_token": "Token de acesso pessoal", "portfolio_access_control": "Controle de acesso ao portfólio", "preview": "Visualização", + "project": "Projeto", "project_access": "Acesso ao projeto", "project_retention_enable": "Ativar exclusão de projetos inativos", "publisher": "Editor", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Vulnerabilidades", "reindex_vulnerable_software": "Software vulnerável", "remove_api_key": "remove_api_key", + "remove_permission": "Remova a permissão", + "remove_role": "Remova o papel", + "remove_team_membership": "Remova a associação", "repositories": "Repositórios", "repository_authentication": "Autentificação requerida", "repository_created": "Repositório criado", @@ -224,6 +233,7 @@ "required_fullname": "O nome completo é obrigatório", "required_oidc_group_name": "O nome é obrigatório", "required_password": "Palavra passe obrigatória", + "required_role_name": "O nome da função é obrigatório", "required_team_name": "O nome da equipe é obrigatório", "required_username": "Nome de utilizador é obrigatório", "restore_default_template": "Restaurar modelos padrão", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Médio (padrão: 3)", "risk_score_weight_unassigned": "Não atribuído (padrão: 5)", "risk_score_weighting_description": "Você pode personalizar a ponderação de cada gravidade para personalizar a pontuação de risco.", + "role": "Papel", + "role_already_assigned": "O usuário já possui essa função atribuída.", + "role_assigned": "Função atribuída", + "role_created": "Função criada", + "role_deleted": "Função excluída", + "role_name": "Nome da função", + "role_updated": "Função atualizada", + "roles": "Funções", "scope": "Escopo", "select_ecosystem": "Selecione Ecossistemas", "select_ldap_group": "Selecione o grupo LDAP", "select_oidc_group": "Selecione o grupo OpenID Connect", "select_permission": "Selecione a permissão", "select_project": "Selecione o projeto", + "select_role": "Selecione função", "select_team": "Selecionar time", "select_team_as_recipient": "Selecione a equipe como destinatário", "snyk": "Snyk (beta)", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 58535e873..ff482ec25 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Управление доступом", + "add_project": "Добавить проект", "alert_created": "Оповещение создано", "alert_deleted": "Оповещение удалено", "alert_log_successful_publish": "Успешная публикация журнала", @@ -64,6 +65,7 @@ "create_oidc_group": "Создать группу", "create_oidc_user": "Создать пользователя OpenID Connect", "create_repository": "Создать репозиторий", + "create_role": "Создать роль", "create_team": "Создать команду", "create_template": "Создать шаблон", "create_user": "Создать пользователя", @@ -78,6 +80,7 @@ "delete_alert": "Удалить оповещение", "delete_oidc_group": "Удалить группу", "delete_repository": "Удалить репозиторий", + "delete_role": "Удалить роль", "delete_team": "Удалить команду", "delete_template": "Удалить шаблон", "delete_user": "Удалить пользователя", @@ -164,6 +167,7 @@ "metrics": "Метрики", "mime_type": "Тип MIME", "minutes": "Минуты", + "multiselect_remove_role": "Роли могут быть изменены только", "name_regex": "Регулярное выражение для имени компонента", "name_regex_desc": "Указывает регулярное выражение, которое определяет внутренние компоненты по их именам.", "namespace_regex": "Регулярное выражение для пространства имен компонента", @@ -193,9 +197,11 @@ "perform_identification": "Выполнить идентификацию", "perform_test": "Выполнить тест", "permissions": "Разрешения", + "permissions_updated": "Разрешения обновлены", "personal_access_token": "Персональный токен доступа", "portfolio_access_control": "Контроль доступа к портфолио", "preview": "Предпросмотр", + "project": "Проект", "project_access": "Доступ к проекту", "project_retention_enable": "Включить удаление неактивного проекта", "publisher": "Издатель", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Уязвимости", "reindex_vulnerable_software": "Уязвимое ПО", "remove_api_key": "Удалить API-ключ", + "remove_permission": "Удалить разрешение", + "remove_role": "Удалить роль", + "remove_team_membership": "Удалить членство", "repositories": "Репозитории", "repository_authentication": "Требуется аутентификация", "repository_created": "Репозиторий создан", @@ -224,6 +233,7 @@ "required_fullname": "Полное имя обязательно", "required_oidc_group_name": "Имя обязательно", "required_password": "Пароль обязателен", + "required_role_name": "Имя роли обязательно", "required_team_name": "Имя команды обязательно", "required_username": "Имя пользователя обязательно", "restore_default_template": "Восстановить шаблоны по умолчанию", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Средний (по умолчанию: 3)", "risk_score_weight_unassigned": "Не назначено (по умолчанию: 5)", "risk_score_weighting_description": "Вы можете настроить вес каждой серьезности, чтобы настроить оценку риска.", + "role": "Роль", + "role_already_assigned": "У пользователя уже есть эта роль.", + "role_assigned": "Роль назначена", + "role_created": "Роль создана", + "role_deleted": "Роль удалена", + "role_name": "Имя роли", + "role_updated": "Роль обновлена", + "roles": "Роли", "scope": "Область", "select_ecosystem": "Выбрать экосистему", "select_ldap_group": "Выбрать группу LDAP", "select_oidc_group": "Выбрать группу OpenID Connect", "select_permission": "Выбрать разрешение", "select_project": "Выбрать проект", + "select_role": "Выберите роль", "select_team": "Выбрать команду", "select_team_as_recipient": "Выбрать команду в качестве получателя", "snyk": "Snyk (бета)", diff --git a/src/i18n/locales/uk-UA.json b/src/i18n/locales/uk-UA.json index 0d299c1d8..ba7c6b615 100644 --- a/src/i18n/locales/uk-UA.json +++ b/src/i18n/locales/uk-UA.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "Керування доступом", + "add_project": "Додайте проект", "alert_created": "Сповіщення створено", "alert_deleted": "Сповіщення видалено", "alert_log_successful_publish": "Журнал успішної публікації", @@ -64,6 +65,7 @@ "create_oidc_group": "Створити групу", "create_oidc_user": "Створіть користувача OpenID Connect", "create_repository": "Створити репозиторій", + "create_role": "Створити роль", "create_team": "Створити команду", "create_template": "Створити шаблон", "create_user": "Створити користувача", @@ -78,6 +80,7 @@ "delete_alert": "Видалити сповіщення", "delete_oidc_group": "Видалити групу", "delete_repository": "Видалити репозиторій", + "delete_role": "Видалити роль", "delete_team": "Видалити команду", "delete_template": "Видалити шаблон", "delete_user": "Видалити користувача", @@ -164,6 +167,7 @@ "metrics": "Метрики", "mime_type": "Тип пантоміми", "minutes": "хвилин", + "multiselect_remove_role": "Ролі можна лише змінити", "name_regex": "Регулярний вираз імені компонента", "name_regex_desc": "Визначає регулярний вираз, який визначає внутрішні компоненти за назвою компонентів.", "namespace_regex": "Регулярний вираз простору імен компонентів", @@ -193,9 +197,11 @@ "perform_identification": "Виконайте ідентифікацію", "perform_test": "Виконайте тест", "permissions": "Дозволи", + "permissions_updated": "Дозволи оновлено", "personal_access_token": "Персональний маркер доступу", "portfolio_access_control": "Контроль доступу до портфоліо", "preview": "Попередній перегляд", + "project": "Демонструвати", "project_access": "Доступ до проекту", "project_retention_enable": "Увімкнути видалення неактивного проекту", "publisher": "Видавець", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "Вразливі місця", "reindex_vulnerable_software": "Вразливе програмне забезпечення", "remove_api_key": "Видалити ключ API", + "remove_permission": "Видаліть дозвіл", + "remove_role": "Видалити роль", + "remove_team_membership": "Видалити членство", "repositories": "Репозиторії", "repository_authentication": "Потрібна автентифікація", "repository_created": "Репозиторій створено", @@ -224,6 +233,7 @@ "required_fullname": "Введіть повне ім'я", "required_oidc_group_name": "Необхідно вказати ім'я", "required_password": "Необхідно ввести пароль", + "required_role_name": "Необхідно вказати назву ролі", "required_team_name": "Необхідно вказати назву команди", "required_username": "Потрібно ввести ім'я користувача", "restore_default_template": "Відновити стандартні шаблони", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "Середній (за замовчуванням: 3)", "risk_score_weight_unassigned": "Не призначено (за замовчуванням: 5)", "risk_score_weighting_description": "Ви можете налаштувати зважування кожного рівня серйозності, щоб налаштувати оцінку ризику.", + "role": "Роль", + "role_already_assigned": "У користувача вже призначений ця роль.", + "role_assigned": "Роль призначена", + "role_created": "Роль створено", + "role_deleted": "Роль видалено", + "role_name": "Назва ролі", + "role_updated": "Роль оновлена", + "roles": "Ролі", "scope": "Область застосування", "select_ecosystem": "Виберіть Екосистеми", "select_ldap_group": "Виберіть групу LDAP", "select_oidc_group": "Виберіть OpenID Connect Group", "select_permission": "Виберіть дозвіл", "select_project": "Виберіть Проект", + "select_role": "Виберіть роль", "select_team": "Виберіть команду", "select_team_as_recipient": "Виберіть команду як одержувача", "snyk": "Сник (бета)", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index da6eb08ae..11108eee6 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -6,6 +6,7 @@ }, "admin": { "access_management": "用户和权限", + "add_project": "添加项目", "alert_created": "已创建告警", "alert_deleted": "已删除告警", "alert_log_successful_publish": "告警日志成功发送", @@ -64,6 +65,7 @@ "create_oidc_group": "创建 OIDC 组", "create_oidc_user": "创建 OpenID Connect 用户", "create_repository": "创建存储库", + "create_role": "创建角色", "create_team": "创建团队", "create_template": "创建模板", "create_user": "创建用户", @@ -78,6 +80,7 @@ "delete_alert": "删除告警", "delete_oidc_group": "删除 OIDC 组", "delete_repository": "删除存储库", + "delete_role": "删除角色", "delete_team": "删除团队", "delete_template": "删除模板", "delete_user": "删除用户", @@ -164,6 +167,7 @@ "metrics": "指标", "mime_type": "Mime 类型", "minutes": "分钟", + "multiselect_remove_role": "角色只能更改", "name_regex": "组件名称正则表达式", "name_regex_desc": "指定一个正则表达式,通过组件名称来识别内部组件。", "namespace_regex": "组件命名空间正则表达式", @@ -193,9 +197,11 @@ "perform_identification": "进行识别", "perform_test": "进行测试", "permissions": "权限", + "permissions_updated": "权限已更新", "personal_access_token": "个人访问令牌", "portfolio_access_control": "portfolio 访问控制", "preview": "预览", + "project": "项目", "project_access": "项目访问", "project_retention_enable": "启用非活动项目删除", "publisher": "发行商", @@ -214,6 +220,9 @@ "reindex_vulnerabilities": "重新生成漏洞索引", "reindex_vulnerable_software": "重新生成软件索引", "remove_api_key": "删除 API Key", + "remove_permission": "删除许可", + "remove_role": "删除角色", + "remove_team_membership": "删除会员资格", "repositories": "存储库", "repository_authentication": "存储库身份验证", "repository_created": "已创建存储库", @@ -224,6 +233,7 @@ "required_fullname": "必填:全名", "required_oidc_group_name": "必填:OIDC 组名", "required_password": "密码是必需的", + "required_role_name": "必填:角色名称", "required_team_name": "必填:团队名称", "required_username": "必填:用户名", "restore_default_template": "恢复默认模板", @@ -236,12 +246,21 @@ "risk_score_weight_medium": "中(默认值:3)", "risk_score_weight_unassigned": "未分配(默认值:5)", "risk_score_weighting_description": "您可以自定义每个严重性的权重来自定义风险评分。", + "role": "角色", + "role_already_assigned": "用户已经分配了此角色。", + "role_assigned": "角色分配", + "role_created": "角色已创建", + "role_deleted": "角色已删除", + "role_name": "角色名称", + "role_updated": "角色更新", + "roles": "角色", "scope": "范围", "select_ecosystem": "选择生态系统", "select_ldap_group": "选择 LDAP 组", "select_oidc_group": "选择 OpenID Connect 组", "select_permission": "选择权限", "select_project": "选择项目", + "select_role": "选择角色", "select_team": "选择团队", "select_team_as_recipient": "选择团队作为收件人", "snyk": "Snyk(测试版)", diff --git a/src/mixins/userManagementMixin.js b/src/mixins/userManagementMixin.js new file mode 100644 index 000000000..d1110e195 --- /dev/null +++ b/src/mixins/userManagementMixin.js @@ -0,0 +1,211 @@ +import EventBus from '../shared/eventbus'; + +/** + * A Vue.js mixin for managing user-related operations such as roles, permissions, and team memberships. + * Provides utility methods for interacting with APIs and handling user management tasks. + * + * @mixin + */ +export default { + created: function () { + this._userManagementMixin_init(); + }, + data: () => ({ _userManagementMixin_ready: false }), + methods: { + // -- public methods -- + + // Loads the user roles for a specific user. return data if targetField is null + loadUserProjects: async function (username) { + const endpoint = `${this.$api.BASE_URL}/${this.$api.URL_ROLE}/${username}/role`; + try { + const response = await this.axios.get(endpoint); + return response.data; + } catch (error) { + console.error(error); + } + }, + + // Loads the user roles for a specific user. return data if targetField is null + loadAvailableProjectRoles: async function () { + const endpoint = `${this.$api.BASE_URL}/${this.$api.URL_ROLE}`; + try { + const response = await this.axios.get(endpoint); + return response.data; + } catch (error) { + console.error(error); + } + }, + + // TODO: internal server error 500 + _deleteUser: async function (endpoint) { + this._userManagementMixin_checkReady(); + try { + await this.axios.delete(endpoint, { + data: { + // e.g { username: 'testuser' } + [this._identifierField]: this.row[this._identifierField], + }, + }); + this._successfulResponse_delete(); + } catch (error) { + this.handleError(error); + } + }, + + _updateTeamSelection: async function (selections) { + const endpoint = `${this.$api.BASE_URL}/${this.$api.URL_USER_MEMBERSHIP}`; + this._userManagementMixin_checkReady(); + const requestBody = { + [this._identifierField]: this.row[this._identifierField], + teams: selections.map((team) => team.uuid), + }; + try { + const response = await this.axios.put(endpoint, requestBody); + this._successfulResponse_update(response); + } catch (error) { + if (error.response?.status === 304) return; + this.handleError(error); + } + }, + + _removeTeamMembership: async function (teamUUID) { + const username = this.row[this._identifierField]; + const endpoint = `${this.$api.BASE_URL}/${this.$api.URL_USER}/${username}/membership`; + + this._userManagementMixin_checkReady(); + try { + const response = await this.axios.delete(endpoint, { + data: { uuid: teamUUID }, + }); + this._successfulResponse_update(response); + } catch (error) { + this.handleError(error); + } + }, + + // Updates the permissions for a user. (essentially adds/removes the user from the permission) + _updatePermissionSelection: async function (selections) { + const endpoint = `${this.$api.BASE_URL}/${this.$api.URL_USER_PERMISSION}`; + this._userManagementMixin_checkReady(); + const requestBody = { + [this._identifierField]: this.row[this._identifierField], + permissions: selections.map((selection) => selection.name), + }; + + try { + const response = await this.axios.put(endpoint, requestBody); + this._successfulResponse_update(response); + } catch (error) { + this.handleError(error); + } + }, + + // Removes a user from a permission. (essentially removes the user from the permission) + _removePermission: async function (permission) { + this._userManagementMixin_checkReady(); + const username = this.row[this._identifierField]; + const url = `${this.$api.BASE_URL}/${this.$api.URL_PERMISSION}/${permission.name}/user/${username}`; + try { + const response = await this.axios.delete(url); + this._successfulResponse_update(response); + } catch (error) { + this.handleError(error); + } + }, + + _handleProjectRole: async function (action, projectRole, callbacks = null) { + this._userManagementMixin_checkReady(); + const { role, project } = projectRole; + const endpoint = `${this.$api.BASE_URL}/${this.$api.URL_USER_ROLE}`; + const requestBody = { + [this._identifierField]: this.row[this._identifierField], + role, + project, + }; + + try { + let response; + let successMessage; + switch (action) { + case 'add': + case 'update': + response = await this.axios.put(endpoint, requestBody); + successMessage = + action === 'add' + ? this.$t('admin.role_assigned') + : this.$t('admin.role_updated'); + break; + case 'remove': + response = await this.axios.delete(endpoint, { data: requestBody }); + successMessage = this.$t('admin.role_deleted'); + break; + default: + throw new Error(`Invalid action: ${action}`); + } + + this.$toastr.s(successMessage); + callbacks?.success?.(response); + } catch (error) { + this.handleError(error); + callbacks?.error?.(error); + } + }, + + // -- utility methods -- + + handleError: function (error, toastMessageKey) { + const messageKey = toastMessageKey ?? 'condition.unsuccessful_action'; + console.error(error); + this.$toastr.w(this.$t(messageKey)); + }, + _successfulResponse_update: function (response) { + if (this.rowEvents && this.rowEvents.update) + EventBus.$emit(this.rowEvents.update, this.index, response.data); + this.$toastr.s(this.$t('message.updated')); + }, + + _successfulResponse_delete: function () { + if (this.rowEvents && this.rowEvents.delete) + EventBus.$emit(this.rowEvents.delete, this.index); + this.$toastr.s(this.$t('admin.user_deleted')); + }, + + _userManagementMixin_checkReady: function () { + if (!this._userManagementMixin_ready) { + throw new Error('userManagementMixin is not ready. Init failed'); + } + }, + + _userManagementMixin_init: function () { + if (!this._identifierField) { + this._identifierField = 'username'; + } + + if (this.umm_bypassInit === true) { + console.warn('userManagementMixin: bypassing init check'); + this._userManagementMixin_ready = true; + return; + } + + if (this.index == null || this.row == null) { + throw new Error( + "userManagementMixin requires 'index' and 'row' variables, which are typically provided by a detailFormatter function.", + ); + } + + const rowEventsReady = !!( + this.rowEvents && + this.rowEvents.update && + this.rowEvents.delete + ); + + if (!rowEventsReady) { + console.warn( + "userManagementMixin: 'rowEvents' object is either undefined or missing properties 'update' or 'delete'. Changes may not reflect properly until refresh.", + ); + } + + this._userManagementMixin_ready = true; + }, + }, +}; diff --git a/src/router/index.js b/src/router/index.js index 10f3eb656..20bf9e760 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -94,6 +94,7 @@ const OidcUsers = () => import('@/views/administration/accessmanagement/OidcUsers'); const OidcGroups = () => import('@/views/administration/accessmanagement/OidcGroups'); +const Roles = () => import('@/views/administration/accessmanagement/Roles'); const Teams = () => import('@/views/administration/accessmanagement/Teams'); const Permissions = () => import('@/views/administration/accessmanagement/Permissions'); @@ -1075,6 +1076,23 @@ function configRoutes() { ], }, }, + { + path: 'accessManagement/roles', + component: Roles, + meta: { + title: i18n.t('message.administration'), + i18n: 'message.administration', + sectionPath: '/admin', + sectionName: 'Admin', + permissions: [ + 'ACCESS_MANAGEMENT', + 'ACCESS_MANAGEMENT_CREATE', + 'ACCESS_MANAGEMENT_READ', + 'ACCESS_MANAGEMENT_UPDATE', + 'ACCESS_MANAGEMENT_DELETE', + ], + }, + }, { path: 'accessManagement/teams', component: Teams, diff --git a/src/shared/api.json b/src/shared/api.json index a38230cbf..061cf7aec 100644 --- a/src/shared/api.json +++ b/src/shared/api.json @@ -13,6 +13,7 @@ "URL_ABOUT": "api/version", "URL_ACL_MAPPING": "api/v1/acl/mapping", "URL_ACL_TEAM": "api/v1/acl/team", + "URL_ACL_USER": "api/v1/acl/user", "URL_ANALYSIS": "api/v1/analysis", "URL_BOM": "api/v1/bom", "URL_CALCULATOR_CVSS": "api/v1/calculator/cvss", @@ -42,15 +43,20 @@ "URL_POLICY_VIOLATION_ANALYSIS": "api/v1/violation/analysis", "URL_PROJECT": "api/v1/project", "URL_REPOSITORY": "api/v1/repository", + "URL_ROLE": "api/v1/role", "URL_SEARCH": "api/v1/search", "URL_SERVICE": "api/v1/service", "URL_TAG": "api/v1/tag", "URL_TEAM": "api/v1/team", + "URL_TEAM_PERMISSION": "api/v1/permission/team", "URL_USER": "api/v1/user", "URL_USER_LDAP": "api/v1/user/ldap", "URL_USER_MANAGED": "api/v1/user/managed", + "URL_USER_MEMBERSHIP": "api/v1/user/membership", "URL_USER_OIDC": "api/v1/user/oidc", "URL_USER_OIDC_LOGIN": "api/v1/user/oidc/login", + "URL_USER_PERMISSION": "api/v1/permission/user", + "URL_USER_ROLE": "api/v1/user/role", "URL_USER_SELF": "api/v1/user/self", "URL_VEX": "api/v1/vex", "URL_VULNERABILITY": "api/v1/vulnerability", diff --git a/src/views/administration/AdminMenu.vue b/src/views/administration/AdminMenu.vue index 599fb5674..cc65b1e59 100644 --- a/src/views/administration/AdminMenu.vue +++ b/src/views/administration/AdminMenu.vue @@ -377,6 +377,11 @@ export default { name: this.$t('admin.oidc_groups'), route: 'accessManagement/oidcGroups', }, + { + component: 'Roles', + name: this.$t('admin.roles'), + route: 'accessManagement/roles', + }, { component: 'Teams', name: this.$t('admin.teams'), diff --git a/src/views/administration/Administration.vue b/src/views/administration/Administration.vue index 04a6231f4..879ac8225 100644 --- a/src/views/administration/Administration.vue +++ b/src/views/administration/Administration.vue @@ -76,6 +76,7 @@ import OidcGroups from './accessmanagement/OidcGroups'; import OidcUsers from './accessmanagement/OidcUsers'; import Permissions from './accessmanagement/Permissions'; import PortfolioAccessControl from './accessmanagement/PortfolioAccessControl'; +import Roles from './accessmanagement/Roles'; import Teams from './accessmanagement/Teams'; export default { @@ -122,6 +123,7 @@ export default { ManagedUsers, OidcUsers, OidcGroups, + Roles, Teams, Permissions, PortfolioAccessControl, diff --git a/src/views/administration/accessmanagement/CreateLdapUserModal.vue b/src/views/administration/accessmanagement/CreateLdapUserModal.vue index 2d754c3f6..f1c229898 100644 --- a/src/views/administration/accessmanagement/CreateLdapUserModal.vue +++ b/src/views/administration/accessmanagement/CreateLdapUserModal.vue @@ -24,9 +24,13 @@ {{ $t('message.close') }} - {{ - $t('message.create') - }} + {{ $t('message.create') }} diff --git a/src/views/administration/accessmanagement/CreateManagedUserModal.vue b/src/views/administration/accessmanagement/CreateManagedUserModal.vue index 09028afda..8062f6b58 100644 --- a/src/views/administration/accessmanagement/CreateManagedUserModal.vue +++ b/src/views/administration/accessmanagement/CreateManagedUserModal.vue @@ -93,9 +93,13 @@ {{ $t('message.close') }} - {{ - $t('message.create') - }} + {{ $t('message.create') }} @@ -126,6 +130,17 @@ export default { }, }; }, + computed: { + createReady: function () { + return ( + this.username?.length > 0 && + this.fullname?.length > 0 && + this.email?.length > 0 && + this.password?.length > 0 && + this.confirmPassword?.length > 0 + ); + }, + }, methods: { verifyPasswordState: function () { return ( diff --git a/src/views/administration/accessmanagement/CreateOidcUserModal.vue b/src/views/administration/accessmanagement/CreateOidcUserModal.vue index e530f245f..d88ac0a96 100644 --- a/src/views/administration/accessmanagement/CreateOidcUserModal.vue +++ b/src/views/administration/accessmanagement/CreateOidcUserModal.vue @@ -24,9 +24,13 @@ {{ $t('message.close') }} - {{ - $t('message.create') - }} + {{ $t('message.create') }} diff --git a/src/views/administration/accessmanagement/CreateRoleModal.vue b/src/views/administration/accessmanagement/CreateRoleModal.vue new file mode 100644 index 000000000..a1b254096 --- /dev/null +++ b/src/views/administration/accessmanagement/CreateRoleModal.vue @@ -0,0 +1,115 @@ + + + diff --git a/src/views/administration/accessmanagement/LdapUsers.vue b/src/views/administration/accessmanagement/LdapUsers.vue deleted file mode 100644 index 62c919067..000000000 --- a/src/views/administration/accessmanagement/LdapUsers.vue +++ /dev/null @@ -1,278 +0,0 @@ - - - diff --git a/src/views/administration/accessmanagement/LdapUsers/UserDetails.vue b/src/views/administration/accessmanagement/LdapUsers/UserDetails.vue new file mode 100644 index 000000000..34914b967 --- /dev/null +++ b/src/views/administration/accessmanagement/LdapUsers/UserDetails.vue @@ -0,0 +1,172 @@ + + + diff --git a/src/views/administration/accessmanagement/LdapUsers/index.vue b/src/views/administration/accessmanagement/LdapUsers/index.vue new file mode 100644 index 000000000..76f31d5e6 --- /dev/null +++ b/src/views/administration/accessmanagement/LdapUsers/index.vue @@ -0,0 +1,134 @@ + + + diff --git a/src/views/administration/accessmanagement/ManagedUsers.vue b/src/views/administration/accessmanagement/ManagedUsers.vue deleted file mode 100644 index 4e793d910..000000000 --- a/src/views/administration/accessmanagement/ManagedUsers.vue +++ /dev/null @@ -1,361 +0,0 @@ - - - diff --git a/src/views/administration/accessmanagement/ManagedUsers/UserDetails.vue b/src/views/administration/accessmanagement/ManagedUsers/UserDetails.vue new file mode 100644 index 000000000..11cf6684a --- /dev/null +++ b/src/views/administration/accessmanagement/ManagedUsers/UserDetails.vue @@ -0,0 +1,278 @@ + + + diff --git a/src/views/administration/accessmanagement/ManagedUsers/index.vue b/src/views/administration/accessmanagement/ManagedUsers/index.vue new file mode 100644 index 000000000..b28d1c9f4 --- /dev/null +++ b/src/views/administration/accessmanagement/ManagedUsers/index.vue @@ -0,0 +1,141 @@ + + + diff --git a/src/views/administration/accessmanagement/OidcUsers.vue b/src/views/administration/accessmanagement/OidcUsers.vue deleted file mode 100644 index 7cd939d35..000000000 --- a/src/views/administration/accessmanagement/OidcUsers.vue +++ /dev/null @@ -1,278 +0,0 @@ - - - diff --git a/src/views/administration/accessmanagement/OidcUsers/UserDetails.vue b/src/views/administration/accessmanagement/OidcUsers/UserDetails.vue new file mode 100644 index 000000000..4a48f334e --- /dev/null +++ b/src/views/administration/accessmanagement/OidcUsers/UserDetails.vue @@ -0,0 +1,170 @@ + + diff --git a/src/views/administration/accessmanagement/OidcUsers/index.vue b/src/views/administration/accessmanagement/OidcUsers/index.vue new file mode 100644 index 000000000..804c4a867 --- /dev/null +++ b/src/views/administration/accessmanagement/OidcUsers/index.vue @@ -0,0 +1,135 @@ + + + diff --git a/src/views/administration/accessmanagement/Roles/RoleDetails.vue b/src/views/administration/accessmanagement/Roles/RoleDetails.vue new file mode 100644 index 000000000..15bbb0f19 --- /dev/null +++ b/src/views/administration/accessmanagement/Roles/RoleDetails.vue @@ -0,0 +1,146 @@ + + diff --git a/src/views/administration/accessmanagement/Roles/index.vue b/src/views/administration/accessmanagement/Roles/index.vue new file mode 100644 index 000000000..92cb91b76 --- /dev/null +++ b/src/views/administration/accessmanagement/Roles/index.vue @@ -0,0 +1,122 @@ + + + diff --git a/src/views/administration/accessmanagement/SelectLdapGroupModal.vue b/src/views/administration/accessmanagement/SelectLdapGroupModal.vue index 0bddd2f97..9ac278a5c 100644 --- a/src/views/administration/accessmanagement/SelectLdapGroupModal.vue +++ b/src/views/administration/accessmanagement/SelectLdapGroupModal.vue @@ -62,7 +62,7 @@ export default { showRefresh: true, pagination: true, silentSort: false, - sidePagination: 'server', + sidePagination: 'client', queryParamsType: 'pageSize', pageList: '[10, 25, 50, 100]', pageSize: 10, diff --git a/src/views/administration/accessmanagement/SelectOidcGroupModal.vue b/src/views/administration/accessmanagement/SelectOidcGroupModal.vue index aa51adde9..c681f453b 100644 --- a/src/views/administration/accessmanagement/SelectOidcGroupModal.vue +++ b/src/views/administration/accessmanagement/SelectOidcGroupModal.vue @@ -62,7 +62,7 @@ export default { showRefresh: true, pagination: true, silentSort: false, - sidePagination: 'server', + sidePagination: 'client', queryParamsType: 'pageSize', pageList: '[10, 25, 50, 100]', pageSize: 10, diff --git a/src/views/administration/accessmanagement/SelectPermissionModal.vue b/src/views/administration/accessmanagement/SelectPermissionModal.vue index af05258b3..ec9a216f0 100644 --- a/src/views/administration/accessmanagement/SelectPermissionModal.vue +++ b/src/views/administration/accessmanagement/SelectPermissionModal.vue @@ -3,7 +3,6 @@ id="selectPermissionModal" size="lg" hide-header-close - no-stacking :title="$t('admin.select_permission')" > {{ $t('message.select') }} @@ -29,33 +29,35 @@ diff --git a/src/views/administration/accessmanagement/SelectTeamModal.vue b/src/views/administration/accessmanagement/SelectTeamModal.vue index 8f55252a2..d6169f778 100644 --- a/src/views/administration/accessmanagement/SelectTeamModal.vue +++ b/src/views/administration/accessmanagement/SelectTeamModal.vue @@ -20,7 +20,8 @@ {{ $t('message.select') }} @@ -33,9 +34,16 @@ import permissionsMixin from '../../../mixins/permissionsMixin'; import common from '../../../shared/common'; export default { + props: { + currentTeams: { + type: Array, + default: () => [], + }, + }, mixins: [permissionsMixin], data() { return { + currentSelection: [], labelIcon: { dataOn: '\u2713', dataOff: '\u2715', @@ -50,7 +58,7 @@ export default { title: this.$t('admin.team_name'), field: 'name', sortable: true, - formatter(value, row, index) { + formatter(value) { return xssFilters.inHTMLData(common.valueWithDefault(value, '')); }, }, @@ -74,8 +82,54 @@ export default { return res; }, url: `${this.$api.BASE_URL}/${this.$api.URL_TEAM}`, + onLoadSuccess: () => { + const preSelected = this.currentTeams.map((team) => team.name); + this.$refs.table.checkBy({ + field: 'name', + values: preSelected, + }); + }, + onCheck: this.updateCurrentSelection, + onUncheck: this.updateCurrentSelection, + onCheckAll: this.updateCurrentSelection, + onUncheckAll: this.updateCurrentSelection, }, }; }, + computed: { + selectionHasChanged() { + if ( + this.currentSelection.length === 0 && + this.currentTeams.length === 0 + ) { + return true; + } + + if (this.currentSelection.length !== this.currentTeams.length) { + return false; + } + + const isEqual = this.currentSelection.every((sel) => + this.currentTeams.some((team) => team.name === sel.name), + ); + + return ( + isEqual && + this.currentTeams.every((team) => + this.currentSelection.some((sel) => sel.name === team.name), + ) + ); + }, + }, + methods: { + handleSelection: function () { + // this.$root.$emit('bv::hide::modal', this.$children[0].id); + this.$bvModal.hide('selectTeamModal'); + this.$emit('selection', this.currentSelection); + }, + updateCurrentSelection() { + this.currentSelection = this.$refs.table.getSelections(); + }, + }, }; diff --git a/src/views/administration/accessmanagement/Teams.vue b/src/views/administration/accessmanagement/Teams.vue deleted file mode 100644 index c5acc1341..000000000 --- a/src/views/administration/accessmanagement/Teams.vue +++ /dev/null @@ -1,566 +0,0 @@ - - - diff --git a/src/views/administration/accessmanagement/Teams/TeamDetails.vue b/src/views/administration/accessmanagement/Teams/TeamDetails.vue new file mode 100644 index 000000000..c030a5fb8 --- /dev/null +++ b/src/views/administration/accessmanagement/Teams/TeamDetails.vue @@ -0,0 +1,506 @@ + + + diff --git a/src/views/administration/accessmanagement/Teams/index.vue b/src/views/administration/accessmanagement/Teams/index.vue new file mode 100644 index 000000000..79bfd794b --- /dev/null +++ b/src/views/administration/accessmanagement/Teams/index.vue @@ -0,0 +1,139 @@ + + + diff --git a/src/views/components/UserRolesTable.vue b/src/views/components/UserRolesTable.vue new file mode 100644 index 000000000..e42cd1750 --- /dev/null +++ b/src/views/components/UserRolesTable.vue @@ -0,0 +1,350 @@ + + + + + + diff --git a/src/views/portfolio/projects/SelectProjectModal.vue b/src/views/portfolio/projects/SelectProjectModal.vue index 5aa8ae143..61d52e038 100644 --- a/src/views/portfolio/projects/SelectProjectModal.vue +++ b/src/views/portfolio/projects/SelectProjectModal.vue @@ -18,12 +18,9 @@ {{ $t('message.cancel') }} - {{ $t('message.select') }} + {{ + $t('message.select') + }} @@ -35,15 +32,25 @@ import common from '../../../shared/common'; export default { mixins: [permissionsMixin], + props: { + // Current projects should be a list of UUIDs since names can be duplicate + username: { type: String, default: null }, + }, methods: { apiUrl: function () { - let url = `${this.$api.BASE_URL}/${this.$api.URL_PROJECT}`; + let endpoint = ''; + if (this.username) { + endpoint = `${this.$api.BASE_URL}/${this.$api.URL_ACL_USER}/${this.username}`; + return endpoint; + } + + endpoint = `${this.$api.BASE_URL}/${this.$api.URL_PROJECT}`; if (this.showInactiveProjects === undefined) { - url += '?excludeInactive=true'; + endpoint += '?excludeInactive=true'; } else { - url += '?excludeInactive=' + !this.showInactiveProjects; + endpoint += '?excludeInactive=' + !this.showInactiveProjects; } - return url; + return endpoint; }, refreshTable: function () { this.$refs.table.refresh({ @@ -52,6 +59,10 @@ export default { silent: true, }); }, + handleSelection: function () { + this.$root.$emit('bv::hide::modal', this.$children[0].id); + this.$emit('selection', this.$refs.table.getSelections()); + }, }, watch: { showInactiveProjects() { @@ -75,7 +86,7 @@ export default { title: this.$t('message.project_name'), field: 'name', sortable: true, - formatter(value, row, index) { + formatter(value) { return xssFilters.inHTMLData(common.valueWithDefault(value, '')); }, }, @@ -83,14 +94,14 @@ export default { title: this.$t('message.version'), field: 'version', sortable: true, - formatter(value, row, index) { + formatter(value) { return xssFilters.inHTMLData(common.valueWithDefault(value, '')); }, }, { title: this.$t('message.active'), field: 'active', - formatter(value, row, index) { + formatter(value) { return value === true ? '' : ''; }, align: 'center', @@ -113,7 +124,8 @@ export default { refresh: 'fa-refresh', }, toolbar: '#projectsToolbar', - responseHandler: function (res, xhr) { + responseHandler: (res, xhr) => { + // console.log(this.currentProjects); res.total = xhr.getResponseHeader('X-Total-Count'); return res; },