fix: Editor displayed as member in role menu

This commit is contained in:
Tom Moor
2024-04-10 23:06:30 -04:00
parent d883ba347b
commit 9c179fdd30
3 changed files with 34 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ import * as React from "react";
import { UserRole } from "@shared/types";
import { UserRoleHelper } from "@shared/utils/UserRoleHelper";
import stores from "~/stores";
import User from "~/models/User";
import Invite from "~/scenes/Invite";
import {
UserChangeRoleDialog,
@@ -27,23 +28,21 @@ export const inviteUser = createAction({
},
});
export const updateUserRoleActionFactory = (userId: string, role: UserRole) =>
export const updateUserRoleActionFactory = (user: User, role: UserRole) =>
createAction({
name: ({ t }) => {
const user = stores.users.get(userId);
return UserRoleHelper.isRoleHigher(role, user!.role)
? `${t("Promote to {{ role }}", { role })}…`
: `${t("Demote to {{ role }}", { role })}…`;
},
name: ({ t }) =>
UserRoleHelper.isRoleHigher(role, user!.role)
? `${t("Promote to {{ role }}", {
role: UserRoleHelper.displayName(role, t),
})}…`
: `${t("Demote to {{ role }}", {
role: UserRoleHelper.displayName(role, t),
})}…`,
analyticsName: "Update user role",
section: UserSection,
visible: ({ stores }) => {
const can = stores.policies.abilities(userId);
const user = stores.users.get(userId);
if (!user) {
return false;
}
const can = stores.policies.abilities(user.id);
return UserRoleHelper.isRoleHigher(role, user.role)
? can.promote
: UserRoleHelper.isRoleLower(role, user.role)
@@ -51,11 +50,6 @@ export const updateUserRoleActionFactory = (userId: string, role: UserRole) =>
: false;
},
perform: ({ t }) => {
const user = stores.users.get(userId);
if (!user) {
return;
}
stores.dialogs.openModal({
title: t("Update role"),
content: (