diff --git a/js/src/views/Group/GroupMembers.vue b/js/src/views/Group/GroupMembers.vue index f7c2e431a..4a7d886fd 100644 --- a/js/src/views/Group/GroupMembers.vue +++ b/js/src/views/Group/GroupMembers.vue @@ -142,19 +142,22 @@
{{ $t("Promote") }} {{ $t("Demote") }} {{ $t("Remove") }}
@@ -329,12 +332,24 @@ export default class GroupMembers extends Vue { }); } - promoteMember(memberId: string): Promise { - return this.updateMember(memberId, MemberRole.ADMINISTRATOR); + promoteMember(member: IMember): void { + if (!member.id) return; + if (member.role === MemberRole.MODERATOR) { + this.updateMember(member.id, MemberRole.ADMINISTRATOR); + } + if (member.role === MemberRole.MEMBER) { + this.updateMember(member.id, MemberRole.MODERATOR); + } } - demoteMember(memberId: string): Promise { - return this.updateMember(memberId, MemberRole.MEMBER); + demoteMember(member: IMember): void { + if (!member.id) return; + if (member.role === MemberRole.MODERATOR) { + this.updateMember(member.id, MemberRole.MEMBER); + } + if (member.role === MemberRole.ADMINISTRATOR) { + this.updateMember(member.id, MemberRole.MODERATOR); + } } async updateMember(memberId: string, role: MemberRole): Promise {