Skip to content

Commit 8409dd6

Browse files
committed
fix(settings): hide policies menu without delegated policies
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent 1966ffc commit 8409dd6

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

src/components/Settings/Settings.vue

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,24 @@ defineOptions({
6565
const isAdmin = getCurrentUser()?.isAdmin ?? false
6666
const config = loadState<{ can_manage_group_policies?: boolean }>('libresign', 'config', {})
6767
const effectivePoliciesState = loadState<EffectivePoliciesResponse>('libresign', 'effective_policies', { policies: {} })
68-
const hasEditablePolicies = Object.values(effectivePoliciesState.policies ?? {}).some((policy) => {
68+
const hasDelegatedEditablePolicies = Object.values(effectivePoliciesState.policies ?? {}).some((policy) => {
6969
if (!policy || typeof policy !== 'object') {
7070
return false
7171
}
72+
const policyState = policy as {
73+
editableByCurrentActor?: boolean
74+
groupCount?: number
75+
userCount?: number
76+
}
77+
const hasDelegatedRule = (policyState.groupCount ?? 0) > 0 || (policyState.userCount ?? 0) > 0
78+
if (!hasDelegatedRule) {
79+
return false
80+
}
7281
73-
return Boolean((policy as { editableByCurrentActor?: boolean }).editableByCurrentActor)
82+
return Boolean(policyState.editableByCurrentActor)
7483
})
7584
76-
const canManagePolicies = isAdmin || (Boolean(config.can_manage_group_policies) && hasEditablePolicies)
85+
const canManagePolicies = isAdmin || (Boolean(config.can_manage_group_policies) && hasDelegatedEditablePolicies)
7786
7887
function getAdminRoute() {
7988
return generateUrl('settings/admin/libresign')

0 commit comments

Comments
 (0)