fix: show role options based on logged in user's role
This commit is contained in:
parent
2a2c832e0b
commit
12213de478
@ -28,11 +28,7 @@
|
|||||||
class="mt-4"
|
class="mt-4"
|
||||||
v-model="role"
|
v-model="role"
|
||||||
:label="__('Invite as')"
|
:label="__('Invite as')"
|
||||||
:options="[
|
:options="roleOptions"
|
||||||
{ label: __('Sales User'), value: 'Sales User' },
|
|
||||||
{ label: __('Manager'), value: 'Sales Manager' },
|
|
||||||
{ label: __('Admin'), value: 'System Manager' },
|
|
||||||
]"
|
|
||||||
:description="description"
|
:description="description"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -92,6 +88,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import MultiSelectEmailInput from '@/components/Controls/MultiSelectEmailInput.vue'
|
import MultiSelectEmailInput from '@/components/Controls/MultiSelectEmailInput.vue'
|
||||||
import { validateEmail, convertArrayToString } from '@/utils'
|
import { validateEmail, convertArrayToString } from '@/utils'
|
||||||
|
import { usersStore } from '@/stores/users'
|
||||||
import {
|
import {
|
||||||
createListResource,
|
createListResource,
|
||||||
createResource,
|
createResource,
|
||||||
@ -102,6 +99,7 @@ import { useOnboarding } from 'frappe-ui/frappe'
|
|||||||
import { ref, computed } from 'vue'
|
import { ref, computed } from 'vue'
|
||||||
|
|
||||||
const { updateOnboardingStep } = useOnboarding('frappecrm')
|
const { updateOnboardingStep } = useOnboarding('frappecrm')
|
||||||
|
const { isAdmin, isManager } = usersStore()
|
||||||
|
|
||||||
const invitees = ref([])
|
const invitees = ref([])
|
||||||
const role = ref('Sales User')
|
const role = ref('Sales User')
|
||||||
@ -112,12 +110,20 @@ const description = computed(() => {
|
|||||||
'System Manager':
|
'System Manager':
|
||||||
'Can manage all aspects of the CRM, including user management, customizations and settings.',
|
'Can manage all aspects of the CRM, including user management, customizations and settings.',
|
||||||
'Sales Manager':
|
'Sales Manager':
|
||||||
'Can manage and invite new agents, and create public & private views (reports).',
|
'Can manage and invite new users, and create public & private views (reports).',
|
||||||
'Sales User':
|
'Sales User':
|
||||||
'Can work with leads and deals and create private views (reports).',
|
'Can work with leads and deals and create private views (reports).',
|
||||||
}[role.value]
|
}[role.value]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const roleOptions = computed(() => {
|
||||||
|
return [
|
||||||
|
{ value: 'Sales User', label: __('Sales User') },
|
||||||
|
...(isManager() ? [{ value: 'Sales Manager', label: __('Manager') }] : []),
|
||||||
|
...(isAdmin() ? [{ value: 'System Manager', label: __('Admin') }] : []),
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
const roleMap = {
|
const roleMap = {
|
||||||
'Sales User': __('Sales User'),
|
'Sales User': __('Sales User'),
|
||||||
'Sales Manager': __('Manager'),
|
'Sales Manager': __('Manager'),
|
||||||
@ -134,7 +140,7 @@ const inviteByEmail = createResource({
|
|||||||
},
|
},
|
||||||
onSuccess(data) {
|
onSuccess(data) {
|
||||||
if (data?.existing_invites?.length) {
|
if (data?.existing_invites?.length) {
|
||||||
error.value = __('Agent with email {0} already exists', [
|
error.value = __('User with email {0} already exists', [
|
||||||
data.existing_invites.join(', '),
|
data.existing_invites.join(', '),
|
||||||
])
|
])
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -49,6 +49,10 @@ export const usersStore = defineStore('crm-users', () => {
|
|||||||
return usersByName[email]
|
return usersByName[email]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isAdmin(email) {
|
||||||
|
return getUser(email).is_admin
|
||||||
|
}
|
||||||
|
|
||||||
function isManager(email) {
|
function isManager(email) {
|
||||||
return getUser(email).is_manager
|
return getUser(email).is_manager
|
||||||
}
|
}
|
||||||
@ -68,6 +72,7 @@ export const usersStore = defineStore('crm-users', () => {
|
|||||||
return {
|
return {
|
||||||
users,
|
users,
|
||||||
getUser,
|
getUser,
|
||||||
|
isAdmin,
|
||||||
isManager,
|
isManager,
|
||||||
isAgent,
|
isAgent,
|
||||||
getUserRole,
|
getUserRole,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user