Client: Added general logic for changing roles for rooms and types for accounts.

This commit is contained in:
Tatiana Lopaeva 2024-08-16 13:42:49 +03:00
parent 91b3212529
commit 31e91c3da5
2 changed files with 25 additions and 18 deletions

View File

@ -89,6 +89,7 @@ const InvitePanel = ({
maxCountManagersByQuota, maxCountManagersByQuota,
invitePaidUsersCount, invitePaidUsersCount,
setIsNewUserByCurrentUser, setIsNewUserByCurrentUser,
setInvitePaidUsersCount,
}) => { }) => {
const [invitePanelIsLoding, setInvitePanelIsLoading] = useState( const [invitePanelIsLoding, setInvitePanelIsLoading] = useState(
roomId !== -1, roomId !== -1,
@ -337,6 +338,7 @@ const InvitePanel = ({
setIsNewUserByCurrentUser(true); setIsNewUserByCurrentUser(true);
} }
setIsLoading(false); setIsLoading(false);
setInvitePaidUsersCount(0);
onClose(); onClose();
toastr.success(t("Common:UsersInvited")); toastr.success(t("Common:UsersInvited"));
@ -550,6 +552,7 @@ export default inject(
setInviteLanguage, setInviteLanguage,
invitePaidUsersCount, invitePaidUsersCount,
setIsNewUserByCurrentUser, setIsNewUserByCurrentUser,
setInvitePaidUsersCount,
} = dialogsStore; } = dialogsStore;
const { getFolderInfo, setRoomSecurity, getRoomSecurityInfo, folders } = const { getFolderInfo, setRoomSecurity, getRoomSecurityInfo, folders } =
@ -584,6 +587,7 @@ export default inject(
maxCountManagersByQuota, maxCountManagersByQuota,
invitePaidUsersCount, invitePaidUsersCount,
setIsNewUserByCurrentUser, setIsNewUserByCurrentUser,
setInvitePaidUsersCount,
}; };
}, },
)( )(

View File

@ -138,17 +138,25 @@ const InviteInput = ({
const uid = () => Math.random().toString(36).slice(-6); const uid = () => Math.random().toString(36).slice(-6);
let userAccess = selectedAccess; let userAccess = selectedAccess;
const isAccounts = roomId === -1;
const isPaidAccess = isAccounts
? isPaidUserAccess(userAccess)
: isPaidUserRole(userAccess);
if (addresses.length > 1) { if (addresses.length > 1) {
let isShowErrorToast = false; let isShowErrorToast = false;
const itemsArray = addresses.map((address) => { const itemsArray = addresses.map((address) => {
if (isPaidAccess) {
if (roomId === -1 && isPaidUserAccess(userAccess)) {
if (isPaidUserLimit) { if (isPaidUserLimit) {
const freeType = EmployeeType.Guest; const FreeUser = isAccounts
? EmployeeType.Guest
: getTopFreeRole(t, roomType)?.access;
userAccess = freeType; if (FreeUser) {
userAccess = FreeUser;
isShowErrorToast = true; isShowErrorToast = true;
}
} else { } else {
setInvitePaidUsersCount(); setInvitePaidUsersCount();
} }
@ -169,26 +177,21 @@ const InviteInput = ({
return itemsArray; return itemsArray;
} }
if (isPaidAccess) {
if (roomId === -1 && isPaidUserAccess(userAccess)) {
if (isPaidUserLimit) { if (isPaidUserLimit) {
const freeType = EmployeeType.Guest; const FreeUser = isAccounts
? EmployeeType.Guest
: getTopFreeRole(t, roomType)?.access;
userAccess = freeType; if (FreeUser) {
userAccess = FreeUser;
toastr.error(<PaidQuotaLimitError />); toastr.error(<PaidQuotaLimitError />);
}
} else { } else {
setInvitePaidUsersCount(); setInvitePaidUsersCount();
} }
} }
if (isPaidUserLimit && roomId !== -1 && isPaidUserRole(userAccess)) {
const freeRole = getTopFreeRole(t, roomType)?.access;
if (freeRole) {
userAccess = freeRole;
toastr.error(<PaidQuotaLimitError />);
}
}
return { return {
email: addresses[0].email, email: addresses[0].email,
id: uid(), id: uid(),