diff --git a/analytics/tests/test_views.py b/analytics/tests/test_views.py index 921e9e92e7..f64ed52ba1 100644 --- a/analytics/tests/test_views.py +++ b/analytics/tests/test_views.py @@ -14,7 +14,7 @@ from zerver.lib.actions import do_create_multiuse_invite_link, do_send_realm_rea from zerver.lib.test_classes import ZulipTestCase from zerver.lib.test_helpers import reset_emails_in_zulip_realm from zerver.lib.timestamp import ceiling_to_day, ceiling_to_hour, datetime_to_timestamp -from zerver.models import Client, MultiuseInvite, get_realm +from zerver.models import Client, MultiuseInvite, PreregistrationUser, get_realm class TestStatsEndpoint(ZulipTestCase): @@ -521,7 +521,8 @@ class TestSupportEndpoint(ZulipTestCase): stream_ids = [self.get_stream_id("Denmark")] invitee_emails = [self.nonreg_email("test1")] self.client_post("/json/invites", {"invitee_emails": invitee_emails, - "stream_ids": ujson.dumps(stream_ids), "invite_as": 1}) + "stream_ids": ujson.dumps(stream_ids), + "invite_as": PreregistrationUser.INVITE_AS['MEMBER']}) result = self.client_get("/activity/support", {"q": self.nonreg_email("test1")}) check_preregistration_user_query_result(result, self.nonreg_email("test1"), invite=True) check_zulip_realm_query_result(result) diff --git a/static/js/settings_invites.js b/static/js/settings_invites.js index 56af4ef9b5..3deb452bd7 100644 --- a/static/js/settings_invites.js +++ b/static/js/settings_invites.js @@ -1,4 +1,5 @@ const util = require("./util"); +const settings_config = require("./settings_config"); const render_admin_invites_list = require("../templates/admin_invites_list.hbs"); const render_settings_revoke_invite_modal = require("../templates/settings/revoke_invite_modal.hbs"); @@ -16,10 +17,10 @@ function failed_listing_invites(xhr) { } exports.invited_as_values = new Map([ - [1, i18n.t("Member")], - [2, i18n.t("Organization administrator")], - [3, i18n.t("Guest")], - [4, i18n.t("Organization owner")], + [100, i18n.t("Organization owner")], + [200, i18n.t("Organization administrator")], + [400, i18n.t("Member")], + [600, i18n.t("Guest")], ]); function add_invited_as_text(invites) { @@ -52,7 +53,8 @@ function populate_invites(invites_data) { modifier: function (item) { item.invited_absolute_time = timerender.absolute_time(item.invited * 1000); item.is_admin = page_params.is_admin; - item.disable_buttons = item.invited_as === 4 && !page_params.is_owner; + item.disable_buttons = item.invited_as === settings_config.user_role_values.owner.code + && !page_params.is_owner; return render_admin_invites_list({ invite: item }); }, filter: { diff --git a/zerver/models.py b/zerver/models.py index dbe3b076d4..3b36080e71 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -1370,10 +1370,10 @@ class PreregistrationUser(models.Model): # settings_invites.invited_as_values in # static/js/settings_invites.js INVITE_AS = dict( - MEMBER = 1, - REALM_ADMIN = 2, - GUEST_USER = 3, - REALM_OWNER = 4, + REALM_OWNER = 100, + REALM_ADMIN = 200, + MEMBER = 400, + GUEST_USER = 600, ) invited_as: int = models.PositiveSmallIntegerField(default=INVITE_AS['MEMBER']) diff --git a/zerver/tests/test_signup.py b/zerver/tests/test_signup.py index 4cfa87a31c..b2b8f10090 100644 --- a/zerver/tests/test_signup.py +++ b/zerver/tests/test_signup.py @@ -760,7 +760,7 @@ class InviteUserBase(ZulipTestCase): self.assertRegex(outbox[0].from_email, fr" <{self.TOKENIZED_NOREPLY_REGEX}>\Z") def invite(self, invitee_emails: str, stream_names: Sequence[str], body: str='', - invite_as: int=1) -> HttpResponse: + invite_as: int=PreregistrationUser.INVITE_AS['MEMBER']) -> HttpResponse: """ Invites the specified users to Zulip with the specified streams. @@ -989,7 +989,7 @@ class InviteUserTest(InviteUserBase): """ self.login('iago') invitee = self.nonreg_email('alice') - response = self.invite(invitee, ["Denmark"], invite_as=100) + response = self.invite(invitee, ["Denmark"], invite_as=10) self.assert_json_error(response, "Must be invited as an valid type of user") def test_successful_invite_user_as_guest_from_normal_account(self) -> None: