@streamoid/settings 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +24 -2
- package/dist/index.d.ts +24 -2
- package/dist/index.js +22 -12
- package/dist/index.mjs +22 -12
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -876,7 +876,11 @@ interface SettingsApiAdapter {
|
|
|
876
876
|
invitationId?: string;
|
|
877
877
|
}) => Promise<void>;
|
|
878
878
|
resendInvite: (invitationId: string) => Promise<void>;
|
|
879
|
-
/**
|
|
879
|
+
/**
|
|
880
|
+
* @deprecated No longer called: `updateMemberRole` makes a member an admin by
|
|
881
|
+
* itself, and promoting first made that request fail. Kept so existing
|
|
882
|
+
* adapters still type-check.
|
|
883
|
+
*/
|
|
880
884
|
promoteAsAdmin?: (userIds: string[]) => Promise<void>;
|
|
881
885
|
/** CXO-only: fetch granular per-user details (services, scopes, etc.). */
|
|
882
886
|
getUserDetail?: (userId: string) => Promise<WorkspaceMember | null>;
|
|
@@ -1241,6 +1245,24 @@ declare function BillingContent({ embedded, showPlans: showPlansProp, onShowPlan
|
|
|
1241
1245
|
onShowPerUserLimitsChange?: (open: boolean) => void;
|
|
1242
1246
|
}): react__default.JSX.Element;
|
|
1243
1247
|
|
|
1248
|
+
/**
|
|
1249
|
+
* The one `updateMemberRole` request that saving a member sends, or `null`
|
|
1250
|
+
* when there is nothing to save.
|
|
1251
|
+
*
|
|
1252
|
+
* `change-user-role` makes a member an admin by itself (role, flags, and
|
|
1253
|
+
* dropping their app and store grants), so nothing is sent before it. Calling
|
|
1254
|
+
* `promoteAsAdmin` first made the user admin and then had this request refused
|
|
1255
|
+
* with 403 "Already present as admin.".
|
|
1256
|
+
*
|
|
1257
|
+
* An admin kept as admin has no other field to change (the modal hides the
|
|
1258
|
+
* permissions for an admin), so that save sends nothing.
|
|
1259
|
+
*/
|
|
1260
|
+
declare function memberRoleUpdate(current: {
|
|
1261
|
+
userId: string;
|
|
1262
|
+
role: UserPermissions["role"];
|
|
1263
|
+
}, permissions: UserPermissions, services: ServiceItem[]): ({
|
|
1264
|
+
userId: string;
|
|
1265
|
+
} & MemberPermissionsPayload) | null;
|
|
1244
1266
|
declare function TeamsContent({ embedded, onInviteOpen, onInviteOpenChange, workspaceName, workspaceImageUrl, organizationName, hiddenApps, }?: {
|
|
1245
1267
|
embedded?: boolean;
|
|
1246
1268
|
onInviteOpen?: boolean;
|
|
@@ -1757,4 +1779,4 @@ declare function SettingsAdaptersProvider({ adapters, children, }: {
|
|
|
1757
1779
|
*/
|
|
1758
1780
|
declare function useSettingsAdapters(): SettingsAdapters;
|
|
1759
1781
|
|
|
1760
|
-
export { APP_KEYS, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, ConfirmDeleteModal, ConfirmLeaveModal, type ConnectedApp, ConnectedAppsContent, type CreatedToken, type CreditCycleUnit, type CreditLimitValidation, type CustomCreditInfo, type CustomCreditResponse, DEFAULT_PERMISSIONS, DEFAULT_USER_LANGUAGE, ExportDateModal, InviteUpdateModal, type InvoicePdfResponse, type MemberCreditLimit, MemberCreditLimitModal, type MemberCreditLimitRow, type MemberCreditLimitSource, type MemberCreditLimitsResponse, MemberListFrame, type MemberListFrameProps, type MemberListTab, MemberListToolbar, type MemberListToolbarProps, type MemberPermissionsPayload, OrganizationContent, type OrganizationData, OrganizationIntegrationsContent, type OrganizationInvite, type OrganizationJoinRequest, type OrganizationJoinableWorkspace, type OrganizationMember, OrganizationMemberModal, type OrganizationMemberModalProps, OrganizationModal, type OrganizationView, type OrganizationWorkspaceItem, PerUserLimitsView, type Price, type PriceMetadata, type ProductsResponse, ProfileAvatar, ProfileTab, ReferralTab, SCOPE_LABELS, ScopeHeader, type ScopeHeaderProps, type ServiceItem, type SettingsAdapters, SettingsAdaptersProvider, type SettingsApiAdapter, type SettingsAuthAdapter, type SettingsAuthUser, SettingsContent, type SettingsContentProps, type SettingsImageUploadAdapter, type SettingsIntegrationsAdapter, type SettingsNavigationAdapter, type SettingsOrganizationAdapter, type SettingsOrganizationCurrent, type SettingsOrganizationListItem, type SettingsScope, type SettingsTab, type SettingsToastAdapter, SettingsTooltip, type SettingsTooltipPlacement, type SettingsTooltipProps, type SettingsWorkspaceAdapter, type SettingsWorkspaceCurrent, type SettingsWorkspaceListItem, SiconKey, type StoreItem, type SubscriptionPlan, type SubscriptionResponse, TAB_DESCRIPTIONS, TAB_LABELS, TAB_SCOPE, TAB_TO_URL, type TeamMember, TeamsContent, type TokenExpiry, TokensContent, URL_TO_TAB, USER_LANGUAGES, type UpdateSubscriptionPayload, type UpdateSubscriptionResponse, type UsageHistoryItem, type UsageHistoryResponse, type UserLanguage, type UserPermissions, WORKSPACE_LIST_PAGE_SIZE, type WorkspaceData, WorkspaceGeneralTab, type WorkspaceGeneralTabProps, type WorkspaceInvite, type WorkspaceListOrganization, WorkspaceListTab, type WorkspaceMember, WorkspaceModal, type WorkspaceOrganization, type WorkspaceOrganizationRequest, WorkspacePicker, type WorkspacePickerItem, type WorkspacePickerProps, WorkspaceTab, type WorkspaceUsageResponse, belowUsageReason, cleanCreditLimitInput, countLabel, creditCycleUnit, describeDefaultLimit, describeMemberLimit, formatCreditLimit, formatCredits, groupWorkspaceList, isLimitBelowUsage, joinMembersWithLimits, lastUsedLabel, limitBelowUsageUsed, limitSourceLabel, loadWorkspaceOrganization, minimumCreditLimit, resolveSettingsTabFromPath, roundCredits, useSettingsAdapters, useWorkspaceOrganization, userLanguageLabel, validateCreditLimitInput, validateDefaultCreditLimitInput };
|
|
1782
|
+
export { APP_KEYS, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, ConfirmDeleteModal, ConfirmLeaveModal, type ConnectedApp, ConnectedAppsContent, type CreatedToken, type CreditCycleUnit, type CreditLimitValidation, type CustomCreditInfo, type CustomCreditResponse, DEFAULT_PERMISSIONS, DEFAULT_USER_LANGUAGE, ExportDateModal, InviteUpdateModal, type InvoicePdfResponse, type MemberCreditLimit, MemberCreditLimitModal, type MemberCreditLimitRow, type MemberCreditLimitSource, type MemberCreditLimitsResponse, MemberListFrame, type MemberListFrameProps, type MemberListTab, MemberListToolbar, type MemberListToolbarProps, type MemberPermissionsPayload, OrganizationContent, type OrganizationData, OrganizationIntegrationsContent, type OrganizationInvite, type OrganizationJoinRequest, type OrganizationJoinableWorkspace, type OrganizationMember, OrganizationMemberModal, type OrganizationMemberModalProps, OrganizationModal, type OrganizationView, type OrganizationWorkspaceItem, PerUserLimitsView, type Price, type PriceMetadata, type ProductsResponse, ProfileAvatar, ProfileTab, ReferralTab, SCOPE_LABELS, ScopeHeader, type ScopeHeaderProps, type ServiceItem, type SettingsAdapters, SettingsAdaptersProvider, type SettingsApiAdapter, type SettingsAuthAdapter, type SettingsAuthUser, SettingsContent, type SettingsContentProps, type SettingsImageUploadAdapter, type SettingsIntegrationsAdapter, type SettingsNavigationAdapter, type SettingsOrganizationAdapter, type SettingsOrganizationCurrent, type SettingsOrganizationListItem, type SettingsScope, type SettingsTab, type SettingsToastAdapter, SettingsTooltip, type SettingsTooltipPlacement, type SettingsTooltipProps, type SettingsWorkspaceAdapter, type SettingsWorkspaceCurrent, type SettingsWorkspaceListItem, SiconKey, type StoreItem, type SubscriptionPlan, type SubscriptionResponse, TAB_DESCRIPTIONS, TAB_LABELS, TAB_SCOPE, TAB_TO_URL, type TeamMember, TeamsContent, type TokenExpiry, TokensContent, URL_TO_TAB, USER_LANGUAGES, type UpdateSubscriptionPayload, type UpdateSubscriptionResponse, type UsageHistoryItem, type UsageHistoryResponse, type UserLanguage, type UserPermissions, WORKSPACE_LIST_PAGE_SIZE, type WorkspaceData, WorkspaceGeneralTab, type WorkspaceGeneralTabProps, type WorkspaceInvite, type WorkspaceListOrganization, WorkspaceListTab, type WorkspaceMember, WorkspaceModal, type WorkspaceOrganization, type WorkspaceOrganizationRequest, WorkspacePicker, type WorkspacePickerItem, type WorkspacePickerProps, WorkspaceTab, type WorkspaceUsageResponse, belowUsageReason, cleanCreditLimitInput, countLabel, creditCycleUnit, describeDefaultLimit, describeMemberLimit, formatCreditLimit, formatCredits, groupWorkspaceList, isLimitBelowUsage, joinMembersWithLimits, lastUsedLabel, limitBelowUsageUsed, limitSourceLabel, loadWorkspaceOrganization, memberRoleUpdate, minimumCreditLimit, resolveSettingsTabFromPath, roundCredits, useSettingsAdapters, useWorkspaceOrganization, userLanguageLabel, validateCreditLimitInput, validateDefaultCreditLimitInput };
|
package/dist/index.d.ts
CHANGED
|
@@ -876,7 +876,11 @@ interface SettingsApiAdapter {
|
|
|
876
876
|
invitationId?: string;
|
|
877
877
|
}) => Promise<void>;
|
|
878
878
|
resendInvite: (invitationId: string) => Promise<void>;
|
|
879
|
-
/**
|
|
879
|
+
/**
|
|
880
|
+
* @deprecated No longer called: `updateMemberRole` makes a member an admin by
|
|
881
|
+
* itself, and promoting first made that request fail. Kept so existing
|
|
882
|
+
* adapters still type-check.
|
|
883
|
+
*/
|
|
880
884
|
promoteAsAdmin?: (userIds: string[]) => Promise<void>;
|
|
881
885
|
/** CXO-only: fetch granular per-user details (services, scopes, etc.). */
|
|
882
886
|
getUserDetail?: (userId: string) => Promise<WorkspaceMember | null>;
|
|
@@ -1241,6 +1245,24 @@ declare function BillingContent({ embedded, showPlans: showPlansProp, onShowPlan
|
|
|
1241
1245
|
onShowPerUserLimitsChange?: (open: boolean) => void;
|
|
1242
1246
|
}): react__default.JSX.Element;
|
|
1243
1247
|
|
|
1248
|
+
/**
|
|
1249
|
+
* The one `updateMemberRole` request that saving a member sends, or `null`
|
|
1250
|
+
* when there is nothing to save.
|
|
1251
|
+
*
|
|
1252
|
+
* `change-user-role` makes a member an admin by itself (role, flags, and
|
|
1253
|
+
* dropping their app and store grants), so nothing is sent before it. Calling
|
|
1254
|
+
* `promoteAsAdmin` first made the user admin and then had this request refused
|
|
1255
|
+
* with 403 "Already present as admin.".
|
|
1256
|
+
*
|
|
1257
|
+
* An admin kept as admin has no other field to change (the modal hides the
|
|
1258
|
+
* permissions for an admin), so that save sends nothing.
|
|
1259
|
+
*/
|
|
1260
|
+
declare function memberRoleUpdate(current: {
|
|
1261
|
+
userId: string;
|
|
1262
|
+
role: UserPermissions["role"];
|
|
1263
|
+
}, permissions: UserPermissions, services: ServiceItem[]): ({
|
|
1264
|
+
userId: string;
|
|
1265
|
+
} & MemberPermissionsPayload) | null;
|
|
1244
1266
|
declare function TeamsContent({ embedded, onInviteOpen, onInviteOpenChange, workspaceName, workspaceImageUrl, organizationName, hiddenApps, }?: {
|
|
1245
1267
|
embedded?: boolean;
|
|
1246
1268
|
onInviteOpen?: boolean;
|
|
@@ -1757,4 +1779,4 @@ declare function SettingsAdaptersProvider({ adapters, children, }: {
|
|
|
1757
1779
|
*/
|
|
1758
1780
|
declare function useSettingsAdapters(): SettingsAdapters;
|
|
1759
1781
|
|
|
1760
|
-
export { APP_KEYS, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, ConfirmDeleteModal, ConfirmLeaveModal, type ConnectedApp, ConnectedAppsContent, type CreatedToken, type CreditCycleUnit, type CreditLimitValidation, type CustomCreditInfo, type CustomCreditResponse, DEFAULT_PERMISSIONS, DEFAULT_USER_LANGUAGE, ExportDateModal, InviteUpdateModal, type InvoicePdfResponse, type MemberCreditLimit, MemberCreditLimitModal, type MemberCreditLimitRow, type MemberCreditLimitSource, type MemberCreditLimitsResponse, MemberListFrame, type MemberListFrameProps, type MemberListTab, MemberListToolbar, type MemberListToolbarProps, type MemberPermissionsPayload, OrganizationContent, type OrganizationData, OrganizationIntegrationsContent, type OrganizationInvite, type OrganizationJoinRequest, type OrganizationJoinableWorkspace, type OrganizationMember, OrganizationMemberModal, type OrganizationMemberModalProps, OrganizationModal, type OrganizationView, type OrganizationWorkspaceItem, PerUserLimitsView, type Price, type PriceMetadata, type ProductsResponse, ProfileAvatar, ProfileTab, ReferralTab, SCOPE_LABELS, ScopeHeader, type ScopeHeaderProps, type ServiceItem, type SettingsAdapters, SettingsAdaptersProvider, type SettingsApiAdapter, type SettingsAuthAdapter, type SettingsAuthUser, SettingsContent, type SettingsContentProps, type SettingsImageUploadAdapter, type SettingsIntegrationsAdapter, type SettingsNavigationAdapter, type SettingsOrganizationAdapter, type SettingsOrganizationCurrent, type SettingsOrganizationListItem, type SettingsScope, type SettingsTab, type SettingsToastAdapter, SettingsTooltip, type SettingsTooltipPlacement, type SettingsTooltipProps, type SettingsWorkspaceAdapter, type SettingsWorkspaceCurrent, type SettingsWorkspaceListItem, SiconKey, type StoreItem, type SubscriptionPlan, type SubscriptionResponse, TAB_DESCRIPTIONS, TAB_LABELS, TAB_SCOPE, TAB_TO_URL, type TeamMember, TeamsContent, type TokenExpiry, TokensContent, URL_TO_TAB, USER_LANGUAGES, type UpdateSubscriptionPayload, type UpdateSubscriptionResponse, type UsageHistoryItem, type UsageHistoryResponse, type UserLanguage, type UserPermissions, WORKSPACE_LIST_PAGE_SIZE, type WorkspaceData, WorkspaceGeneralTab, type WorkspaceGeneralTabProps, type WorkspaceInvite, type WorkspaceListOrganization, WorkspaceListTab, type WorkspaceMember, WorkspaceModal, type WorkspaceOrganization, type WorkspaceOrganizationRequest, WorkspacePicker, type WorkspacePickerItem, type WorkspacePickerProps, WorkspaceTab, type WorkspaceUsageResponse, belowUsageReason, cleanCreditLimitInput, countLabel, creditCycleUnit, describeDefaultLimit, describeMemberLimit, formatCreditLimit, formatCredits, groupWorkspaceList, isLimitBelowUsage, joinMembersWithLimits, lastUsedLabel, limitBelowUsageUsed, limitSourceLabel, loadWorkspaceOrganization, minimumCreditLimit, resolveSettingsTabFromPath, roundCredits, useSettingsAdapters, useWorkspaceOrganization, userLanguageLabel, validateCreditLimitInput, validateDefaultCreditLimitInput };
|
|
1782
|
+
export { APP_KEYS, type ApiToken, type AppKey, type AvailableCreditsResponse, BillingContent, type BillingEventPayload, type BillingProduct, type BillingSubscription, BuyCreditsModal, type BuyCreditsPayload, type BuyCreditsResponse, ConfirmDeleteModal, ConfirmLeaveModal, type ConnectedApp, ConnectedAppsContent, type CreatedToken, type CreditCycleUnit, type CreditLimitValidation, type CustomCreditInfo, type CustomCreditResponse, DEFAULT_PERMISSIONS, DEFAULT_USER_LANGUAGE, ExportDateModal, InviteUpdateModal, type InvoicePdfResponse, type MemberCreditLimit, MemberCreditLimitModal, type MemberCreditLimitRow, type MemberCreditLimitSource, type MemberCreditLimitsResponse, MemberListFrame, type MemberListFrameProps, type MemberListTab, MemberListToolbar, type MemberListToolbarProps, type MemberPermissionsPayload, OrganizationContent, type OrganizationData, OrganizationIntegrationsContent, type OrganizationInvite, type OrganizationJoinRequest, type OrganizationJoinableWorkspace, type OrganizationMember, OrganizationMemberModal, type OrganizationMemberModalProps, OrganizationModal, type OrganizationView, type OrganizationWorkspaceItem, PerUserLimitsView, type Price, type PriceMetadata, type ProductsResponse, ProfileAvatar, ProfileTab, ReferralTab, SCOPE_LABELS, ScopeHeader, type ScopeHeaderProps, type ServiceItem, type SettingsAdapters, SettingsAdaptersProvider, type SettingsApiAdapter, type SettingsAuthAdapter, type SettingsAuthUser, SettingsContent, type SettingsContentProps, type SettingsImageUploadAdapter, type SettingsIntegrationsAdapter, type SettingsNavigationAdapter, type SettingsOrganizationAdapter, type SettingsOrganizationCurrent, type SettingsOrganizationListItem, type SettingsScope, type SettingsTab, type SettingsToastAdapter, SettingsTooltip, type SettingsTooltipPlacement, type SettingsTooltipProps, type SettingsWorkspaceAdapter, type SettingsWorkspaceCurrent, type SettingsWorkspaceListItem, SiconKey, type StoreItem, type SubscriptionPlan, type SubscriptionResponse, TAB_DESCRIPTIONS, TAB_LABELS, TAB_SCOPE, TAB_TO_URL, type TeamMember, TeamsContent, type TokenExpiry, TokensContent, URL_TO_TAB, USER_LANGUAGES, type UpdateSubscriptionPayload, type UpdateSubscriptionResponse, type UsageHistoryItem, type UsageHistoryResponse, type UserLanguage, type UserPermissions, WORKSPACE_LIST_PAGE_SIZE, type WorkspaceData, WorkspaceGeneralTab, type WorkspaceGeneralTabProps, type WorkspaceInvite, type WorkspaceListOrganization, WorkspaceListTab, type WorkspaceMember, WorkspaceModal, type WorkspaceOrganization, type WorkspaceOrganizationRequest, WorkspacePicker, type WorkspacePickerItem, type WorkspacePickerProps, WorkspaceTab, type WorkspaceUsageResponse, belowUsageReason, cleanCreditLimitInput, countLabel, creditCycleUnit, describeDefaultLimit, describeMemberLimit, formatCreditLimit, formatCredits, groupWorkspaceList, isLimitBelowUsage, joinMembersWithLimits, lastUsedLabel, limitBelowUsageUsed, limitSourceLabel, loadWorkspaceOrganization, memberRoleUpdate, minimumCreditLimit, resolveSettingsTabFromPath, roundCredits, useSettingsAdapters, useWorkspaceOrganization, userLanguageLabel, validateCreditLimitInput, validateDefaultCreditLimitInput };
|
package/dist/index.js
CHANGED
|
@@ -76,6 +76,7 @@ __export(index_exports, {
|
|
|
76
76
|
limitBelowUsageUsed: () => limitBelowUsageUsed,
|
|
77
77
|
limitSourceLabel: () => limitSourceLabel,
|
|
78
78
|
loadWorkspaceOrganization: () => loadWorkspaceOrganization,
|
|
79
|
+
memberRoleUpdate: () => memberRoleUpdate,
|
|
79
80
|
minimumCreditLimit: () => minimumCreditLimit,
|
|
80
81
|
resolveSettingsTabFromPath: () => resolveSettingsTabFromPath,
|
|
81
82
|
roundCredits: () => roundCredits,
|
|
@@ -4435,6 +4436,17 @@ function permissionServiceIds(services, permissions) {
|
|
|
4435
4436
|
return false;
|
|
4436
4437
|
}).map((s) => s._id);
|
|
4437
4438
|
}
|
|
4439
|
+
function memberRoleUpdate(current, permissions, services) {
|
|
4440
|
+
if (current.role === "admin" && permissions.role === "admin") return null;
|
|
4441
|
+
return {
|
|
4442
|
+
userId: current.userId,
|
|
4443
|
+
role: permissions.role,
|
|
4444
|
+
creditAccess: permissions.canUseCredits,
|
|
4445
|
+
inviteAccess: permissions.canInviteUser,
|
|
4446
|
+
serviceIds: permissions.role === "admin" ? [] : permissionServiceIds(services, permissions),
|
|
4447
|
+
storeIds: permissions.catalogixStores || []
|
|
4448
|
+
};
|
|
4449
|
+
}
|
|
4438
4450
|
function uniqueNonEmpty(values) {
|
|
4439
4451
|
return Array.from(new Set(values.map((v) => v.trim()).filter(Boolean)));
|
|
4440
4452
|
}
|
|
@@ -5030,19 +5042,17 @@ function TeamsContent({
|
|
|
5030
5042
|
return;
|
|
5031
5043
|
}
|
|
5032
5044
|
}
|
|
5033
|
-
const
|
|
5045
|
+
const request = memberRoleUpdate(
|
|
5046
|
+
{ userId: modal.target.userId, role: modal.target.permissions.role },
|
|
5047
|
+
permissions,
|
|
5048
|
+
allServices
|
|
5049
|
+
);
|
|
5050
|
+
if (!request) {
|
|
5051
|
+
closeModal();
|
|
5052
|
+
return;
|
|
5053
|
+
}
|
|
5034
5054
|
try {
|
|
5035
|
-
|
|
5036
|
-
await api.promoteAsAdmin?.([modal.target.userId]);
|
|
5037
|
-
}
|
|
5038
|
-
await api.updateMemberRole({
|
|
5039
|
-
userId: modal.target.userId,
|
|
5040
|
-
role: permissions.role,
|
|
5041
|
-
creditAccess: permissions.canUseCredits,
|
|
5042
|
-
inviteAccess: permissions.canInviteUser,
|
|
5043
|
-
serviceIds,
|
|
5044
|
-
storeIds: permissions.catalogixStores || []
|
|
5045
|
-
});
|
|
5055
|
+
await api.updateMemberRole(request);
|
|
5046
5056
|
toast.success("User permissions updated");
|
|
5047
5057
|
} catch (err) {
|
|
5048
5058
|
const msg = errorMessage(err, { method: "POST" });
|
package/dist/index.mjs
CHANGED
|
@@ -4392,6 +4392,17 @@ function permissionServiceIds(services, permissions) {
|
|
|
4392
4392
|
return false;
|
|
4393
4393
|
}).map((s) => s._id);
|
|
4394
4394
|
}
|
|
4395
|
+
function memberRoleUpdate(current, permissions, services) {
|
|
4396
|
+
if (current.role === "admin" && permissions.role === "admin") return null;
|
|
4397
|
+
return {
|
|
4398
|
+
userId: current.userId,
|
|
4399
|
+
role: permissions.role,
|
|
4400
|
+
creditAccess: permissions.canUseCredits,
|
|
4401
|
+
inviteAccess: permissions.canInviteUser,
|
|
4402
|
+
serviceIds: permissions.role === "admin" ? [] : permissionServiceIds(services, permissions),
|
|
4403
|
+
storeIds: permissions.catalogixStores || []
|
|
4404
|
+
};
|
|
4405
|
+
}
|
|
4395
4406
|
function uniqueNonEmpty(values) {
|
|
4396
4407
|
return Array.from(new Set(values.map((v) => v.trim()).filter(Boolean)));
|
|
4397
4408
|
}
|
|
@@ -4987,19 +4998,17 @@ function TeamsContent({
|
|
|
4987
4998
|
return;
|
|
4988
4999
|
}
|
|
4989
5000
|
}
|
|
4990
|
-
const
|
|
5001
|
+
const request = memberRoleUpdate(
|
|
5002
|
+
{ userId: modal.target.userId, role: modal.target.permissions.role },
|
|
5003
|
+
permissions,
|
|
5004
|
+
allServices
|
|
5005
|
+
);
|
|
5006
|
+
if (!request) {
|
|
5007
|
+
closeModal();
|
|
5008
|
+
return;
|
|
5009
|
+
}
|
|
4991
5010
|
try {
|
|
4992
|
-
|
|
4993
|
-
await api.promoteAsAdmin?.([modal.target.userId]);
|
|
4994
|
-
}
|
|
4995
|
-
await api.updateMemberRole({
|
|
4996
|
-
userId: modal.target.userId,
|
|
4997
|
-
role: permissions.role,
|
|
4998
|
-
creditAccess: permissions.canUseCredits,
|
|
4999
|
-
inviteAccess: permissions.canInviteUser,
|
|
5000
|
-
serviceIds,
|
|
5001
|
-
storeIds: permissions.catalogixStores || []
|
|
5002
|
-
});
|
|
5011
|
+
await api.updateMemberRole(request);
|
|
5003
5012
|
toast.success("User permissions updated");
|
|
5004
5013
|
} catch (err) {
|
|
5005
5014
|
const msg = errorMessage(err, { method: "POST" });
|
|
@@ -14378,6 +14387,7 @@ export {
|
|
|
14378
14387
|
limitBelowUsageUsed,
|
|
14379
14388
|
limitSourceLabel,
|
|
14380
14389
|
loadWorkspaceOrganization,
|
|
14390
|
+
memberRoleUpdate,
|
|
14381
14391
|
minimumCreditLimit,
|
|
14382
14392
|
resolveSettingsTabFromPath,
|
|
14383
14393
|
roundCredits,
|