Load role permissions when opening the Edit Role dialog #17

Merged
padreug merged 2 commits from fix/edit-role-permissions-loading into main 2026-05-17 12:56:07 +00:00
Showing only changes of commit 55f8249f2c - Show all commits

Load role permissions when opening the Edit Role dialog

The dialog reads from rolePermissionsForView / roleUsersForView, but
editRole(role) only ever populated the form fields and showed the
dialog — those arrays were left at whatever state the rest of the page
had set them to. Result: opening Edit Role for a role with existing
permissions showed "No permissions assigned to this role yet", and the
list only "appeared" because adding a permission triggered a refresh.

Mirror viewRole's pattern: clear both arrays, GET /admin/roles/{id},
populate from the response, then show the dialog after $nextTick.

Closes #14
Padreug 2026-05-17 13:52:36 +02:00

View file

@ -709,7 +709,7 @@ window.app = Vue.createApp({
} }
}, },
editRole(role) { async editRole(role) {
this.editingRole = true this.editingRole = true
this.selectedRole = role this.selectedRole = role
this.roleForm = { this.roleForm = {
@ -717,6 +717,28 @@ window.app = Vue.createApp({
description: role.description || '', description: role.description || '',
is_default: role.is_default || false is_default: role.is_default || false
} }
this.rolePermissionsForView = []
this.roleUsersForView = []
try {
const response = await LNbits.api.request(
'GET',
`/libra/api/v1/admin/roles/${role.id}`,
this.g.user.wallets[0].adminkey
)
this.rolePermissionsForView = [...(response.data.permissions || [])]
this.roleUsersForView = [...(response.data.users || [])]
} catch (error) {
console.error('Failed to load role details:', error)
this.$q.notify({
type: 'negative',
message: 'Failed to load role permissions',
caption: error.message || 'Unknown error',
timeout: 5000
})
}
await this.$nextTick()
this.showCreateRoleDialog = true this.showCreateRoleDialog = true
}, },