diff --git a/satellite/console/config.go b/satellite/console/config.go index e0b1625dd..7d00a3e62 100644 --- a/satellite/console/config.go +++ b/satellite/console/config.go @@ -26,6 +26,7 @@ type Config struct { UserBalanceForUpgrade int64 `help:"amount of base units of US micro dollars needed to upgrade user's tier status" default:"10000000"` PlacementEdgeURLOverrides PlacementEdgeURLOverrides `help:"placement-specific edge service URL overrides in the format {\"placementID\": {\"authService\": \"...\", \"publicLinksharing\": \"...\", \"internalLinksharing\": \"...\"}, \"placementID2\": ...}"` BlockExplorerURL string `help:"url of the transaction block explorer" default:"https://etherscan.io/"` + BillingFeaturesEnabled bool `help:"indicates if billing features should be enabled" default:"true"` UsageLimits UsageLimitsConfig Captcha CaptchaConfig Session SessionConfig diff --git a/satellite/console/consoleweb/server.go b/satellite/console/consoleweb/server.go index bd7b31476..d37218d71 100644 --- a/satellite/console/consoleweb/server.go +++ b/satellite/console/consoleweb/server.go @@ -111,7 +111,6 @@ type Config struct { UseVuetifyProject bool `help:"whether to use vuetify POC project" default:"false"` VuetifyHost string `help:"the subdomain the vuetify POC project should be hosted on" default:""` ObjectBrowserPaginationEnabled bool `help:"whether to use object browser pagination" default:"false"` - BillingFeaturesEnabled bool `help:"indicates if billing features should be enabled" default:"true"` OauthCodeExpiry time.Duration `help:"how long oauth authorization codes are issued for" default:"10m"` OauthAccessTokenExpiry time.Duration `help:"how long oauth access tokens are issued for" default:"24h"` diff --git a/satellite/console/service.go b/satellite/console/service.go index 22281543e..0c8395952 100644 --- a/satellite/console/service.go +++ b/satellite/console/service.go @@ -3775,7 +3775,7 @@ func (s *Service) inviteProjectMembers(ctx context.Context, sender *User, projec } projectID = isMember.project.ID - if !(s.config.FreeTierInvitesEnabled || sender.PaidTier) { + if s.config.BillingFeaturesEnabled && !(s.config.FreeTierInvitesEnabled || sender.PaidTier) { return nil, ErrNotPaidTier.New(paidTierInviteErrMsg) } diff --git a/web/satellite/src/components/modals/AddTeamMemberModal.vue b/web/satellite/src/components/modals/AddTeamMemberModal.vue index 0cdd36c92..27a934256 100644 --- a/web/satellite/src/components/modals/AddTeamMemberModal.vue +++ b/web/satellite/src/components/modals/AddTeamMemberModal.vue @@ -116,7 +116,8 @@ const formError = computed(() => { * Returns whether the user should upgrade to pro tier before inviting. */ const needsUpgrade = computed(() => { - return !(usersStore.state.user.paidTier || configStore.state.config.freeTierInvitesEnabled); + const config = configStore.state.config; + return config.billingFeaturesEnabled && !(usersStore.state.user.paidTier || config.freeTierInvitesEnabled); }); /** diff --git a/web/satellite/vuetify-poc/src/components/dialogs/AddTeamMemberDialog.vue b/web/satellite/vuetify-poc/src/components/dialogs/AddTeamMemberDialog.vue index a731c3278..5a5d8c065 100644 --- a/web/satellite/vuetify-poc/src/components/dialogs/AddTeamMemberDialog.vue +++ b/web/satellite/vuetify-poc/src/components/dialogs/AddTeamMemberDialog.vue @@ -166,7 +166,8 @@ const emailRules: ValidationRule[] = [ * Returns whether the user should upgrade to pro tier before inviting. */ const needsUpgrade = computed(() => { - return !(usersStore.state.user.paidTier || configStore.state.config.freeTierInvitesEnabled); + const config = configStore.state.config; + return config.billingFeaturesEnabled && !(usersStore.state.user.paidTier || config.freeTierInvitesEnabled); }); /**