From fc0105785b4670c433d9d97aee6df62eec762b56 Mon Sep 17 00:00:00 2001 From: Rodribm10 <160369324+Rodribm10@users.noreply.github.com> Date: Wed, 10 Jun 2026 13:45:20 -0300 Subject: [PATCH] feat: allow FAQ management via knowledge-base role Allow Captain FAQ management through the existing knowledge_base_manage custom role while keeping plain agents read-only for FAQ actions. --- .../captain/assistant/ResponseCard.vue | 6 ++- .../emptyStates/ResponsePageEmptyState.vue | 4 +- .../switcher/AssistantSwitcher.vue | 19 ++++++---- .../dashboard/captain/captain.routes.js | 14 +++++-- .../dashboard/captain/responses/Index.vue | 17 +++++++-- .../dashboard/captain/responses/Pending.vue | 17 ++++++++- .../captain/assistant_response_policy.rb | 6 +-- .../assistant_responses_controller_spec.rb | 38 +++++++++++++++---- .../captain/bulk_actions_controller_spec.rb | 19 ++++------ 9 files changed, 96 insertions(+), 44 deletions(-) diff --git a/app/javascript/dashboard/components-next/captain/assistant/ResponseCard.vue b/app/javascript/dashboard/components-next/captain/assistant/ResponseCard.vue index 97227c35d..edd5fd125 100644 --- a/app/javascript/dashboard/components-next/captain/assistant/ResponseCard.vue +++ b/app/javascript/dashboard/components-next/captain/assistant/ResponseCard.vue @@ -10,6 +10,7 @@ import Button from 'dashboard/components-next/button/Button.vue'; import Checkbox from 'dashboard/components-next/checkbox/Checkbox.vue'; import Policy from 'dashboard/components/policy.vue'; import Icon from 'dashboard/components-next/icon/Icon.vue'; +import { PORTAL_PERMISSIONS } from 'dashboard/constants/permissions'; const props = defineProps({ id: { @@ -71,6 +72,7 @@ const emit = defineEmits(['action', 'navigate', 'select', 'hover']); const { t } = useI18n(); const [showActionsDropdown, toggleDropdown] = useToggle(); +const responseManagePermissions = ['administrator', PORTAL_PERMISSIONS]; const modelValue = computed({ get: () => props.isSelected, @@ -142,7 +144,7 @@ const handleDocumentableClick = () => {