diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 47c2792d5c..a4c7d92d92 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -3305,16 +3305,19 @@ def do_change_plan_type(realm: Realm, plan_type: int) -> None: if plan_type == Realm.STANDARD: realm.max_invites = Realm.INVITES_STANDARD_REALM_DAILY_MAX realm.message_visibility_limit = None + realm.upload_quota_gb = Realm.UPLOAD_QUOTA_STANDARD elif plan_type == Realm.STANDARD_FREE: realm.max_invites = Realm.INVITES_STANDARD_REALM_DAILY_MAX realm.message_visibility_limit = None + realm.upload_quota_gb = Realm.UPLOAD_QUOTA_STANDARD elif plan_type == Realm.LIMITED: realm.max_invites = settings.INVITES_DEFAULT_REALM_DAILY_MAX realm.message_visibility_limit = Realm.MESSAGE_VISIBILITY_LIMITED + realm.upload_quota_gb = Realm.UPLOAD_QUOTA_LIMITED update_first_visible_message_id(realm) - realm.save(update_fields=['_max_invites', 'message_visibility_limit']) + realm.save(update_fields=['_max_invites', 'message_visibility_limit', 'upload_quota_gb']) def do_change_default_sending_stream(user_profile: UserProfile, stream: Optional[Stream], log: bool=True) -> None: diff --git a/zerver/models.py b/zerver/models.py index 85f9fa212e..a54a1b230a 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -255,6 +255,8 @@ class Realm(models.Model): bot_creation_policy = models.PositiveSmallIntegerField(default=BOT_CREATION_EVERYONE) # type: int # See upload_quota_bytes; don't interpret upload_quota_gb directly. + UPLOAD_QUOTA_LIMITED = 5 + UPLOAD_QUOTA_STANDARD = 50 upload_quota_gb = models.IntegerField(null=True) # type: Optional[int] video_chat_provider = models.CharField(default=u"Jitsi", max_length=MAX_VIDEO_CHAT_PROVIDER_LENGTH) diff --git a/zerver/tests/test_realm.py b/zerver/tests/test_realm.py index 158035cede..967fd00916 100644 --- a/zerver/tests/test_realm.py +++ b/zerver/tests/test_realm.py @@ -482,32 +482,38 @@ class RealmTest(ZulipTestCase): self.assertEqual(do_create_realm('hosted', 'hosted').plan_type, Realm.LIMITED) self.assertEqual(get_realm("hosted").max_invites, settings.INVITES_DEFAULT_REALM_DAILY_MAX) self.assertEqual(get_realm("hosted").message_visibility_limit, Realm.MESSAGE_VISIBILITY_LIMITED) + self.assertEqual(get_realm("hosted").upload_quota_gb, Realm.UPLOAD_QUOTA_LIMITED) with self.settings(BILLING_ENABLED=False): self.assertEqual(do_create_realm('onpremise', 'onpremise').plan_type, Realm.SELF_HOSTED) self.assertEqual(get_realm('onpremise').max_invites, settings.INVITES_DEFAULT_REALM_DAILY_MAX) self.assertEqual(get_realm('onpremise').message_visibility_limit, None) + self.assertEqual(get_realm("onpremise").upload_quota_gb, None) def test_change_plan_type(self) -> None: realm = get_realm('zulip') self.assertEqual(realm.plan_type, Realm.SELF_HOSTED) self.assertEqual(realm.max_invites, settings.INVITES_DEFAULT_REALM_DAILY_MAX) self.assertEqual(realm.message_visibility_limit, None) + self.assertEqual(realm.upload_quota_gb, None) do_change_plan_type(realm, Realm.STANDARD) realm = get_realm('zulip') self.assertEqual(realm.max_invites, Realm.INVITES_STANDARD_REALM_DAILY_MAX) self.assertEqual(realm.message_visibility_limit, None) + self.assertEqual(realm.upload_quota_gb, Realm.UPLOAD_QUOTA_STANDARD) do_change_plan_type(realm, Realm.LIMITED) realm = get_realm('zulip') self.assertEqual(realm.max_invites, settings.INVITES_DEFAULT_REALM_DAILY_MAX) self.assertEqual(realm.message_visibility_limit, Realm.MESSAGE_VISIBILITY_LIMITED) + self.assertEqual(realm.upload_quota_gb, Realm.UPLOAD_QUOTA_LIMITED) do_change_plan_type(realm, Realm.STANDARD_FREE) realm = get_realm('zulip') self.assertEqual(realm.max_invites, Realm.INVITES_STANDARD_REALM_DAILY_MAX) self.assertEqual(realm.message_visibility_limit, None) + self.assertEqual(realm.upload_quota_gb, Realm.UPLOAD_QUOTA_STANDARD) class RealmAPITest(ZulipTestCase):