mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 22:43:42 +00:00
realm: Restrict upload quota according to plan.
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user