Skip to content

Commit

Permalink
fix(wallet): update approval rules permission locales; add permission…
Browse files Browse the repository at this point in the history
… check for tabs (#514)
  • Loading branch information
olaszakos authored Feb 26, 2025
1 parent b3b9d43 commit 5febd58
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 64 deletions.
51 changes: 31 additions & 20 deletions apps/wallet/src/components/policies/ApprovalRulesTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ import {
import { useStationStore } from '~/stores/station.store';
import { Privilege } from '~/types/auth.types';
import { ExtractOk } from '~/types/helper.types';
import { hasRequiredPrivilege } from '~/utils/auth.utils';
import { throttle, variantIs } from '~/utils/helper.utils';
const station = useStationStore();
Expand All @@ -118,6 +119,10 @@ const triggerSearch = throttle(() => (forceReload.value = true), 500);
const allPolicies = ref<RequestPolicy[] | null>(null);
const mounted = ref(false);
const canLoadLinkedPolicies = computed(() => {
return hasRequiredPrivilege({ anyOf: [Privilege.ListRequestPolicies] });
});
const headers = computed(() => {
return [
{ title: i18n.t('terms.name'), key: 'name', sortable: false },
Expand All @@ -126,11 +131,15 @@ const headers = computed(() => {
? []
: [
{ title: i18n.t('terms.rule'), key: 'rule', sortable: false },
{
title: i18n.t('pages.approval_rules.linked_policies'),
key: 'linked_policies',
sortable: false,
},
...(canLoadLinkedPolicies.value
? [
{
title: i18n.t('pages.approval_rules.linked_policies'),
key: 'linked_policies',
sortable: false,
},
]
: []),
]),
{ title: '', key: 'actions', sortable: false },
];
Expand Down Expand Up @@ -198,23 +207,25 @@ onMounted(async () => {
componentUnmounted = true;
});
let offset = 0;
let result: ExtractOk<ListRequestPoliciesResult>;
do {
result = await station.service.listRequestPolicies({
limit: 100,
offset: offset,
});
fetchedPolicies.push(...result.policies);
if (result.next_offset.length === 0 || componentUnmounted) {
break;
}
if (canLoadLinkedPolicies.value) {
let offset = 0;
let result: ExtractOk<ListRequestPoliciesResult>;
do {
result = await station.service.listRequestPolicies({
limit: 100,
offset: offset,
});
fetchedPolicies.push(...result.policies);
if (result.next_offset.length === 0 || componentUnmounted) {
break;
}
offset = Number(result.next_offset);
} while (result.total > fetchedPolicies.length);
offset = Number(result.next_offset);
} while (result.total > fetchedPolicies.length);
if (!componentUnmounted) {
allPolicies.value = fetchedPolicies;
if (!componentUnmounted) {
allPolicies.value = fetchedPolicies;
}
}
});
Expand Down
24 changes: 12 additions & 12 deletions apps/wallet/src/locales/en.locale.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1218,9 +1218,9 @@ export default {
permission_update_description:
'Grants full control over wallet permissions, including adding, updating, and removing permissions.',

requestpolicy_list: 'View Request Policies Page',
requestpolicy_list: 'View Request Policies Tab',
requestpolicy_list_description:
'Grants access to the request policies page, showing only policies the user can view.',
'Grants access to the request policies tab, showing only policies the user can view.',
requestpolicy_read_any: 'View All Request Policies',
requestpolicy_read_any_description:
'Allows viewing of all request policies and their details.',
Expand All @@ -1239,18 +1239,18 @@ export default {
request_read_any_description:
'Enables viewing of all requests, including those submitted by other users.',

namedrule_list: 'View Approval Policies Page',
namedrule_list: 'View Approval Rules Tab',
namedrule_list_description:
'Grants access to the approval policies page, showing only policies the user can view.',
namedrule_read_any: 'View All Approval Policies',
namedrule_read_any_description: 'Allows viewing of all approval policies and their details.',
'Grants access to the approval rules tab, showing only rules the user can view.',
namedrule_read_any: 'View All Approval Rules',
namedrule_read_any_description: 'Allows viewing of all approval rules and their details.',

namedrule_create: 'Add New Approval Policies',
namedrule_create_description: 'Enables adding new approval policies to the wallet.',
namedrule_update_any: 'Edit Approval Policies',
namedrule_update_any_description: 'Grants permission to modify approval policies.',
namedrule_delete_any: 'Delete Approval Policies',
namedrule_delete_any_description: 'Allows deleting approval policies.',
namedrule_create: 'Add New Approval Rules',
namedrule_create_description: 'Enables adding new approval rules to the wallet.',
namedrule_update_any: 'Edit Approval Rules',
namedrule_update_any_description: 'Grants permission to modify approval rules.',
namedrule_delete_any: 'Delete Approval Rules',
namedrule_delete_any_description: 'Allows deleting approval rules.',
},
},
request_policies: {
Expand Down
24 changes: 12 additions & 12 deletions apps/wallet/src/locales/fr.locale.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1238,9 +1238,9 @@ export default {
permission_update_description:
'Permet de modifier les autorisations pour les ressources et les actions spécifiées.',

requestpolicy_list: 'Voir la Page des Politiques de Demande',
requestpolicy_list: "Voir l'Onglet des Politiques de Demande",
requestpolicy_list_description:
"Permet d'accéder à la page des politiques de demande, mais affiche uniquement les politiques que l'utilisateur est autorisé à voir.",
"Permet d'accéder à l'onglet des politiques de demande, en affichant uniquement les politiques que l'utilisateur est autorisé à voir.",
requestpolicy_read_any: 'Voir Toutes les Politiques de Demande',
requestpolicy_read_any_description:
"Permet d'afficher toutes les politiques de demande et leurs détails.",
Expand All @@ -1260,19 +1260,19 @@ export default {
request_read_any_description:
"Permet d'afficher toutes les demandes, y compris celles soumises par d'autres utilisateurs.",

namedrule_list: 'Voir la Page des Politiques d approbation',
namedrule_list: "Voir l'Onglet des Règles d'Approbation",
namedrule_list_description:
"Permet d'accéder à la page des politiques d'approbation, en affichant uniquement les politiques que l'utilisateur est autorisé à voir.",
namedrule_read_any: 'Voir Toutes les Politiques d approbation',
"Permet d'accéder à l'onglet des règles d'approbation, en affichant uniquement les règles que l'utilisateur est autorisé à voir.",
namedrule_read_any: "Voir Toutes les Règles d'Approbation",
namedrule_read_any_description:
"Permet d'afficher toutes les politiques d'approbation et leurs détails.",
namedrule_create: 'Ajouter de Nouvelles Politiques d approbation',
"Permet d'afficher toutes les règles d'approbation et leurs détails.",
namedrule_create: "Ajouter de Nouvelles Règles d'Approbation",
namedrule_create_description:
"Permet d'ajouter de nouvelles politiques d'approbation au portefeuille.",
namedrule_update_any: 'Modifier les Politiques d approbation',
namedrule_update_any_description: 'Permet de modifier les politiques d approbation.',
namedrule_delete_any: 'Supprimer les Politiques d approbation',
namedrule_delete_any_description: 'Permet de supprimer les politiques d approbation.',
"Permet d'ajouter de nouvelles règles d'approbation au portefeuille.",
namedrule_update_any: "Modifier les Règles d'Approbation",
namedrule_update_any_description: "Permet de modifier les règles d'approbation.",
namedrule_delete_any: "Supprimer les Règles d'Approbation",
namedrule_delete_any_description: "Permet de supprimer les règles d'approbation.",
},
},
request_policies: {
Expand Down
24 changes: 12 additions & 12 deletions apps/wallet/src/locales/pt.locale.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1233,9 +1233,9 @@ export default {
permission_update_description:
'Concede controle total sobre as permissões da carteira, incluindo adicionar, atualizar e remover permissões.',

requestpolicy_list: 'Ver Página de Políticas de Solicitação',
requestpolicy_list: 'Ver Aba de Políticas de Solicitação',
requestpolicy_list_description:
'Permite acessar a página de políticas de solicitação, exibindo apenas as políticas que o usuário pode visualizar.',
'Permite acessar a aba de políticas de solicitação, exibindo apenas as políticas que o usuário pode visualizar.',
requestpolicy_read_any: 'Ver Todas as Políticas de Solicitação',
requestpolicy_read_any_description:
'Permite visualizar todas as políticas de solicitação e seus detalhes.',
Expand All @@ -1255,19 +1255,19 @@ export default {
request_read_any_description:
'Permite visualizar todas as solicitações, incluindo aquelas enviadas por outros usuários.',

namedrule_list: 'Ver Página de Políticas de Aprovação',
namedrule_list: 'Ver Aba de Regras de Aprovação',
namedrule_list_description:
'Permite acessar a página de políticas de aprovação, exibindo apenas as políticas que o usuário pode visualizar.',
namedrule_read_any: 'Ver Todas as Políticas de Aprovação',
'Permite acessar a aba de regras de aprovação, exibindo apenas as regras que o usuário pode visualizar.',
namedrule_read_any: 'Ver Todas as Regras de Aprovação',
namedrule_read_any_description:
'Permite visualizar todas as políticas de aprovação e seus detalhes.',
'Permite visualizar todas as regras de aprovação e seus detalhes.',

namedrule_create: 'Adicionar Novas Políticas de Aprovação',
namedrule_create_description: 'Permite adicionar novas políticas de aprovação à carteira.',
namedrule_update_any: 'Editar Políticas de Aprovação',
namedrule_update_any_description: 'Permite modificar as políticas de aprovação.',
namedrule_delete_any: 'Excluir Políticas de Aprovação',
namedrule_delete_any_description: 'Permite excluir políticas de aprovação.',
namedrule_create: 'Adicionar Novas Regras de Aprovação',
namedrule_create_description: 'Permite adicionar novas regras de aprovação à carteira.',
namedrule_update_any: 'Editar Regras de Aprovação',
namedrule_update_any_description: 'Permite modificar regras de aprovação.',
namedrule_delete_any: 'Excluir Regras de Aprovação',
namedrule_delete_any_description: 'Permite excluir regras de aprovação.',
},
},
request_policies: {
Expand Down
20 changes: 13 additions & 7 deletions apps/wallet/src/pages/ApprovalRulesPage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
hide-not-found
/>
</AuthCheck>
<component :is="tabs.find(t => t.name === tab)?.component" />
<component :is="tabs.find(t => t.name === tab)?.component" v-if="tab" />
</PageBody>
</template>
</PageLayout>
Expand All @@ -60,18 +60,24 @@ import ApprovalRulesTab from '~/components/policies/ApprovalRulesTab.vue';
import { Routes } from '~/configs/routes.config';
import { RequestDomains } from '~/types/station.types';
import RecentRequests from '~/components/requests/RecentRequests.vue';
import { ref } from 'vue';
import { type Component, ref } from 'vue';
import { hasRequiredPrivilege } from '~/utils/auth.utils';
const props = withDefaults(defineProps<PageProps>(), { title: undefined, breadcrumbs: () => [] });
enum Tabs {
RequestPolicies = 'request_policies',
ApprovalRules = 'approval_rules',
}
const tabs = [
{ name: Tabs.ApprovalRules, component: ApprovalRulesTab },
{ name: Tabs.RequestPolicies, component: RequestPoliciesTab },
];
const tabs: { name: Tabs; component: Component }[] = [];
const tab = ref<Tabs>(Tabs.ApprovalRules);
if (hasRequiredPrivilege({ anyOf: [Privilege.ListNamedRules] })) {
tabs.push({ name: Tabs.ApprovalRules, component: ApprovalRulesTab });
}
if (hasRequiredPrivilege({ anyOf: [Privilege.ListRequestPolicies] })) {
tabs.push({ name: Tabs.RequestPolicies, component: RequestPoliciesTab });
}
const tab = ref<Tabs | undefined>(tabs[0]?.name);
</script>
2 changes: 1 addition & 1 deletion scripts/utils.sh
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ function install_icx_asset() {
if ! command -v icx-asset >/dev/null 2>&1; then
echo "icx-asset not found, installing..."

cargo install icx-asset --version 0.21.0
cargo install --locked icx-asset --version 0.21.0

echo "icx-asset installed successfully."

Expand Down

0 comments on commit 5febd58

Please sign in to comment.