Skip to content

Commit dd38d1f

Browse files
Feature/coordinators fix (#3245)
1 parent c1ca171 commit dd38d1f

File tree

3 files changed

+27
-7
lines changed

3 files changed

+27
-7
lines changed

auth-web/src/components/auth/account-settings/team-management/InvitationsDataTable.vue

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<template #[`item.action`]="{ item }">
3131
<!-- Resend Invitation -->
3232
<v-btn
33-
v-can:EDIT_USER.hide
33+
v-if="canApproveOrDeny()"
3434
icon
3535
class="mr-1"
3636
aria-label="Resend invitation"
@@ -43,7 +43,7 @@
4343

4444
<!-- Remove Invitation -->
4545
<v-btn
46-
v-can:EDIT_USER.hide
46+
v-if="canApproveOrDeny()"
4747
icon
4848
aria-label="Remove Invitation"
4949
title="Remove Invitation"
@@ -60,12 +60,15 @@
6060
import { Component, Emit, Vue } from 'vue-property-decorator'
6161
import CommonUtils from '@/util/common-util'
6262
import { Invitation } from '@/models/Invitation'
63+
import { Role } from '@/util/constants'
6364
import { mapState } from 'pinia'
6465
import { useOrgStore } from '@/stores/org'
66+
import { useUserStore } from '@/stores/user'
6567
6668
@Component({
6769
computed: {
68-
...mapState(useOrgStore, ['pendingOrgInvitations'])
70+
...mapState(useOrgStore, ['pendingOrgInvitations']),
71+
...mapState(useUserStore, ['currentUser'])
6972
}
7073
})
7174
export default class InvitationsDataTable extends Vue {
@@ -97,6 +100,10 @@ export default class InvitationsDataTable extends Vue {
97100
}
98101
]
99102
103+
private canApproveOrDeny (): boolean {
104+
return !this.currentUser.roles?.includes(Role.ContactCentreStaff)
105+
}
106+
100107
formatDate = CommonUtils.formatDisplayDate
101108
102109
getIndexedTag (tag, index): string {

auth-web/src/components/auth/account-settings/team-management/MemberDataTable.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@
151151
<!-- Remove User -->
152152
<v-btn
153153
v-show="canRemove(item)"
154-
v-can:EDIT_USER.hide
155154
icon
156155
aria-label="Remove Team Member"
157156
title="Remove Team Member"
@@ -436,6 +435,11 @@ export default class MemberDataTable extends Vue {
436435
}
437436
438437
private canRemove (memberToRemove: Member): boolean {
438+
// Contact Centre Staff can't remove anyone
439+
if (this.currentUser.roles?.includes(Role.ContactCentreStaff)) {
440+
return false
441+
}
442+
439443
// Can't remove yourself
440444
if (this.currentMembership.user?.username === memberToRemove.user.username) {
441445
return false

auth-web/src/components/auth/account-settings/team-management/PendingMemberDataTable.vue

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
</template>
2929
<template #[`item.action`]="{ item }">
3030
<v-btn
31-
v-can:EDIT_USER.hide
31+
v-if="canApproveOrDeny()"
3232
icon
3333
class="mr-1"
3434
aria-label="Approve user access to this account"
@@ -39,7 +39,7 @@
3939
<v-icon>mdi-check-circle-outline</v-icon>
4040
</v-btn>
4141
<v-btn
42-
v-can:EDIT_USER.hide
42+
v-if="canApproveOrDeny()"
4343
icon
4444
aria-label="Deny access to this account"
4545
title="Deny access to this account"
@@ -54,19 +54,24 @@
5454

5555
<script lang="ts">
5656
import { Component, Emit, Prop, Vue } from 'vue-property-decorator'
57+
import { KCUserProfile } from 'sbc-common-components/src/models/KCUserProfile'
5758
import { Member } from '@/models/Organization'
59+
import { Role } from '@/util/constants'
5860
import { mapState } from 'pinia'
5961
/* eslint-disable-next-line @typescript-eslint/no-unused-vars */
6062
import moment from 'moment'
6163
import { useOrgStore } from '@/stores/org'
64+
import { useUserStore } from '@/stores/user'
6265
6366
@Component({
6467
computed: {
65-
...mapState(useOrgStore, ['pendingOrgMembers'])
68+
...mapState(useOrgStore, ['pendingOrgMembers']),
69+
...mapState(useUserStore, ['currentUser'])
6670
}
6771
})
6872
export default class PendingMemberDataTable extends Vue {
6973
@Prop({ default: '' }) userNamefilterText: string
74+
protected readonly currentUser!: KCUserProfile
7075
readonly pendingOrgMembers!: Member[]
7176
readonly headerPendingMembers = [
7277
{
@@ -83,6 +88,10 @@ export default class PendingMemberDataTable extends Vue {
8388
}
8489
]
8590
91+
private canApproveOrDeny (): boolean {
92+
return !this.currentUser.roles?.includes(Role.ContactCentreStaff)
93+
}
94+
8695
getIndexedTag (tag, index): string {
8796
return `${tag}-${index}`
8897
}

0 commit comments

Comments
 (0)