invites: Do not return multi-use invites to non-admin users.

This commit changes do_get_user_invites function to not return
multiuse invites to non-admin users. We should only return multiuse
invites to admins, as we only allow admins to create them.
This commit is contained in:
sahil839
2020-06-24 17:46:29 +05:30
committed by Tim Abbott
parent 8499b2c0dc
commit fe35f1e9bd
2 changed files with 7 additions and 1 deletions

View File

@@ -5235,6 +5235,10 @@ def do_get_user_invites(user_profile: UserProfile) -> List[Dict[str, Any]]:
invited_as=invitee.invited_as,
is_multiuse=False))
if not user_profile.is_realm_admin:
# We do not return multiuse invites to non-admin users.
return invites
lowest_datetime = timezone_now() - datetime.timedelta(days=settings.INVITATION_LINK_VALIDITY_DAYS)
multiuse_confirmation_objs = Confirmation.objects.filter(realm=user_profile.realm,
type=Confirmation.MULTIUSE_INVITE,

View File

@@ -1621,7 +1621,9 @@ class InvitationsTestCase(InviteUserBase):
prereg_user_other_realm = PreregistrationUser(
email="TestOne@zulip.com", referred_by=self.mit_user("sipbtest"))
prereg_user_other_realm.save()
self.assertEqual(len(do_get_user_invites(user_profile)), 4)
multiuse_invite = MultiuseInvite.objects.create(referred_by=user_profile, realm=user_profile.realm)
create_confirmation_link(multiuse_invite, Confirmation.MULTIUSE_INVITE)
self.assertEqual(len(do_get_user_invites(user_profile)), 5)
self.assertEqual(len(do_get_user_invites(hamlet)), 1)
self.assertEqual(len(do_get_user_invites(othello)), 1)