mirror of
https://gitlab.com/wgp/dougal/software.git
synced 2025-12-06 10:57:07 +00:00
Show organisation membership in user avatar
This commit is contained in:
@@ -51,7 +51,7 @@
|
|||||||
offset-y
|
offset-y
|
||||||
>
|
>
|
||||||
<template v-slot:activator="{on, attrs}">
|
<template v-slot:activator="{on, attrs}">
|
||||||
<v-avatar :color="user.colour || 'primary'" :title="`${user.name}\n${Object.keys(user.organisations).join(', ')}`" v-bind="attrs" v-on="on">
|
<v-avatar :color="user.colour || 'primary'" :title="title" v-bind="attrs" v-on="on">
|
||||||
<span class="white--text">{{user.name.slice(0, 5)}}</span>
|
<span class="white--text">{{user.name.slice(0, 5)}}</span>
|
||||||
</v-avatar>
|
</v-avatar>
|
||||||
</template>
|
</template>
|
||||||
@@ -66,8 +66,29 @@
|
|||||||
</v-list-item>
|
</v-list-item>
|
||||||
<v-list-item link to="/logout" v-else>
|
<v-list-item link to="/logout" v-else>
|
||||||
<v-list-item-icon><v-icon small>mdi-logout</v-icon></v-list-item-icon>
|
<v-list-item-icon><v-icon small>mdi-logout</v-icon></v-list-item-icon>
|
||||||
<v-list-item-title>Log out</v-list-item-title>
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>Log out</v-list-item-title>
|
||||||
|
</v-list-item-content>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
|
<v-divider></v-divider>
|
||||||
|
<template v-if="canManageUsers">
|
||||||
|
<v-list-item link to="/users">
|
||||||
|
<v-list-item-icon><v-icon small>mdi-account-multiple</v-icon></v-list-item-icon>
|
||||||
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>Manage users</v-list-item-title>
|
||||||
|
<v-list-item-subtitle>Add, edit and remove users</v-list-item-subtitle>
|
||||||
|
</v-list-item-content>
|
||||||
|
</v-list-item>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="user && !user.autologin">
|
||||||
|
<v-list-item link :to="`/users/${user.id}`">
|
||||||
|
<v-list-item-icon><v-icon small>mdi-account</v-icon></v-list-item-icon>
|
||||||
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>User profile</v-list-item-title>
|
||||||
|
<v-list-item-subtitle>Edit your user profile</v-list-item-subtitle>
|
||||||
|
</v-list-item-content>
|
||||||
|
</v-list-item>
|
||||||
|
</template>
|
||||||
</v-list>
|
</v-list>
|
||||||
|
|
||||||
</v-menu>
|
</v-menu>
|
||||||
@@ -102,6 +123,19 @@ export default {
|
|||||||
.pop()?.component;
|
.pop()?.component;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
title () {
|
||||||
|
return this.user.name + "\n" + [...this.user.organisations].map( ({name, operations}) => {
|
||||||
|
if (name == "*") name = "All organisations";
|
||||||
|
let str = name+": ";
|
||||||
|
str += [ "read", "write", "edit" ].map( op => operations[op] ? op : null ).filter( op => op ).join(", ");
|
||||||
|
return str;
|
||||||
|
}).join("\n")
|
||||||
|
},
|
||||||
|
|
||||||
|
canManageUsers () {
|
||||||
|
return this.user.organisations.accessToOperation("edit").length;
|
||||||
|
},
|
||||||
|
|
||||||
...mapGetters(['user', 'loading'])
|
...mapGetters(['user', 'loading'])
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user