Skip to content

Commit 0bc0560

Browse files
committed
feat: Update access control UI to include (searchable) usernames
1 parent 24f176a commit 0bc0560

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

web/src/components/projects/AccessControl.vue

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,15 @@ const editMode = computed(
2424
() => projectStore.permissions[props.project.id] === "owner",
2525
);
2626
27+
function userSearch(value, queryText, item) {
28+
const lowercaseValues = Object.entries(item.raw).filter(
29+
([key]) => ['first_name', 'last_name', 'username'].includes(key)
30+
).map(
31+
([, value]) => value.toLowerCase()
32+
)
33+
return lowercaseValues.some((v) => v.includes(queryText.toLowerCase()))
34+
}
35+
2736
function savePermissions() {
2837
if (!editMode.value || props.project.owner.id === undefined) return;
2938
let owner: number = props.project.owner.id;
@@ -203,6 +212,8 @@ onMounted(() => {
203212
:clearable="userSelectDialogMode === 'add'"
204213
:chips="userSelectDialogMode === 'add'"
205214
:closable-chips="userSelectDialogMode === 'add'"
215+
item-title="username"
216+
:custom-filter="userSearch"
206217
@update:model-value="
207218
(v: User | User[]) => {
208219
if (Array.isArray(v)) selectedUsers = v;

web/src/components/projects/UserProfile.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const initials = computed(() => {
2121
</script>
2222

2323
<template>
24-
<v-list-item v-if="props.user">
24+
<v-list-item v-if="props.user" :subtitle="props.user.username">
2525
<template #title>
2626
<span style="text-transform: capitalize">{{ nameLabel }}</span>
2727
</template>

0 commit comments

Comments
 (0)