Highlight user's current user assignement on access modal [SCI-10518]

This commit is contained in:
sboursen-scinote 2024-03-25 12:10:57 +01:00
parent b8a69f2d18
commit 578309499c

View file

@ -59,7 +59,7 @@
<MenuDropdown
v-if="!userAssignment.attributes.last_owner && params.object.urls.update_access"
class="ml-auto"
:listItems="rolesFromatted"
:listItems="rolesFromatted(userAssignment)"
:btnText="userAssignment.attributes.user_role.name"
:position="'right'"
:caret="true"
@ -114,36 +114,6 @@ export default {
GeneralDropdown
},
computed: {
rolesFromatted() {
let roles = [];
if (!this.params.object.top_level_assignable) {
roles.push({
emit: 'setRole',
text: this.i18n.t('access_permissions.reset'),
params: 'reset'
});
}
roles = roles.concat(this.roles.map((role, index) => (
{
dividerBefore: !this.params.object.top_level_assignable && index === 0,
emit: 'setRole',
text: role[1],
params: role[0]
}
)));
if (this.params.object.top_level_assignable) {
roles.push({
dividerBefore: true,
emit: 'removeRole',
text: this.i18n.t('access_permissions.remove_access')
});
}
return roles;
},
manuallyAssignedUsers() {
return this.assignedUsers.filter((user) => (
user.attributes?.assigned === 'manually'
@ -170,6 +140,37 @@ export default {
this.$emit('usersReloaded');
});
},
rolesFromatted(userAssignment = null) {
let roles = [];
if (!this.params.object.top_level_assignable) {
roles.push({
emit: 'setRole',
text: this.i18n.t('access_permissions.reset'),
params: 'reset'
});
}
roles = roles.concat(this.roles.map((role, index) => (
{
dividerBefore: !this.params.object.top_level_assignable && index === 0,
emit: 'setRole',
text: role[1],
params: role[0],
active: (userAssignment?.attributes?.user_role?.id === role[0])
}
)));
if (this.params.object.top_level_assignable) {
roles.push({
dividerBefore: true,
emit: 'removeRole',
text: this.i18n.t('access_permissions.remove_access')
});
}
return roles;
},
getRoles() {
axios.get(this.params.roles_path)
.then((response) => {