mirror of
https://gitlab.com/bramw/baserow.git
synced 2024-11-22 07:42:36 +00:00
93 lines
2.3 KiB
Vue
93 lines
2.3 KiB
Vue
<template>
|
|
<div class="inline-block">
|
|
<a
|
|
ref="button_user_source_users"
|
|
class="header__filter-link"
|
|
@click="
|
|
$refs['user_source_users_context'].toggle(
|
|
$refs['button_user_source_users'],
|
|
'bottom',
|
|
'left',
|
|
4
|
|
)
|
|
"
|
|
>
|
|
<i class="header__filter-icon iconoir-user"></i>
|
|
<span class="header__filter-name">
|
|
{{
|
|
$t('userSelector.viewAs', {
|
|
user: isAuthenticated
|
|
? loggedUser.username
|
|
: $t('userSelector.anonymous'),
|
|
})
|
|
}}
|
|
{{ userRole }}
|
|
</span>
|
|
</a>
|
|
<UserSourceUsersContext ref="user_source_users_context" />
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapActions } from 'vuex'
|
|
|
|
import UserSourceUsersContext from '@baserow/modules/builder/components/page/UserSourceUsersContext'
|
|
import { DEFAULT_USER_ROLE_PREFIX } from '@baserow/modules/builder/constants'
|
|
|
|
export default {
|
|
components: { UserSourceUsersContext },
|
|
inject: ['builder'],
|
|
props: {},
|
|
computed: {
|
|
isAuthenticated() {
|
|
return this.$store.getters['userSourceUser/isAuthenticated'](this.builder)
|
|
},
|
|
loggedUser() {
|
|
return this.$store.getters['userSourceUser/getUser'](this.builder)
|
|
},
|
|
userSource() {
|
|
return this.$store.getters['userSource/getUserSourceByUId'](
|
|
this.builder,
|
|
this.loggedUser.user_source_uid
|
|
)
|
|
},
|
|
userRole() {
|
|
if (!this.isAuthenticated) {
|
|
return ''
|
|
}
|
|
|
|
if (
|
|
this.userSource &&
|
|
this.loggedUser.role.startsWith(DEFAULT_USER_ROLE_PREFIX)
|
|
) {
|
|
return (
|
|
'- ' +
|
|
this.$t('userSelector.member', {
|
|
prefix: this.userSource.name,
|
|
})
|
|
)
|
|
} else if (!this.loggedUser.role.trim().length) {
|
|
return `- ${this.$t('visibilityForm.noRole')}`
|
|
} else {
|
|
return `- ${this.loggedUser.role}`
|
|
}
|
|
},
|
|
},
|
|
watch: {
|
|
/**
|
|
* When the User Source is deleted, log off the currently selected user.
|
|
*/
|
|
userSource(newValue, oldValue) {
|
|
if (!newValue && this.isAuthenticated) {
|
|
this.actionLogoff({ application: this.builder })
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
...mapActions({
|
|
actionLogoff: 'userSourceUser/logoff',
|
|
}),
|
|
},
|
|
}
|
|
</script>
|