mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 04:53:36 +00:00
invite: Add option to invite user as guest.
This completes our basic guest user feature. Fixes: #10818.
This commit is contained in:
committed by
Tim Abbott
parent
42c262b807
commit
efb9128aaa
@@ -21,6 +21,7 @@
|
||||
<select id="invite_as">
|
||||
<option name="invite_as" value="{{ invite_as.MEMBER }}">{{ _('Members') }}</option>
|
||||
<option name="invite_as" value="{{ invite_as.REALM_ADMIN }}">{{ _('Organization administrators') }}</option>
|
||||
<option name="invite_as" value="{{ invite_as.GUEST_USER }}">{{ _('Guest users') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -727,6 +727,7 @@ class InviteUserTest(InviteUserBase):
|
||||
self.submit_reg_form_for_user(invitee, "password")
|
||||
invitee_profile = self.nonreg_user('alice')
|
||||
self.assertTrue(invitee_profile.is_realm_admin)
|
||||
self.assertFalse(invitee_profile.is_guest)
|
||||
|
||||
def test_invite_user_as_admin_from_normal_account(self) -> None:
|
||||
"""
|
||||
@@ -749,6 +750,30 @@ class InviteUserTest(InviteUserBase):
|
||||
response = self.invite(invitee, ["Denmark"], invite_as=100)
|
||||
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:
|
||||
self.login(self.example_email('hamlet'))
|
||||
invitee = self.nonreg_email('alice')
|
||||
self.assert_json_success(self.invite(invitee, ["Denmark"],
|
||||
invite_as=PreregistrationUser.INVITE_AS['GUEST_USER']))
|
||||
self.assertTrue(find_key_by_email(invitee))
|
||||
|
||||
self.submit_reg_form_for_user(invitee, "password")
|
||||
invitee_profile = self.nonreg_user('alice')
|
||||
self.assertFalse(invitee_profile.is_realm_admin)
|
||||
self.assertTrue(invitee_profile.is_guest)
|
||||
|
||||
def test_successful_invite_user_as_guest_from_admin_account(self) -> None:
|
||||
self.login(self.example_email('iago'))
|
||||
invitee = self.nonreg_email('alice')
|
||||
self.assert_json_success(self.invite(invitee, ["Denmark"],
|
||||
invite_as=PreregistrationUser.INVITE_AS['GUEST_USER']))
|
||||
self.assertTrue(find_key_by_email(invitee))
|
||||
|
||||
self.submit_reg_form_for_user(invitee, "password")
|
||||
invitee_profile = self.nonreg_user('alice')
|
||||
self.assertFalse(invitee_profile.is_realm_admin)
|
||||
self.assertTrue(invitee_profile.is_guest)
|
||||
|
||||
def test_successful_invite_user_with_name(self) -> None:
|
||||
"""
|
||||
A call to /json/invites with valid parameters causes an invitation
|
||||
|
||||
@@ -81,6 +81,7 @@ def accounts_register(request: HttpRequest) -> HttpResponse:
|
||||
realm_creation = prereg_user.realm_creation
|
||||
password_required = prereg_user.password_required
|
||||
is_realm_admin = prereg_user.invited_as == PreregistrationUser.INVITE_AS['REALM_ADMIN'] or realm_creation
|
||||
is_guest = prereg_user.invited_as == PreregistrationUser.INVITE_AS['GUEST_USER']
|
||||
|
||||
try:
|
||||
validators.validate_email(email)
|
||||
@@ -280,7 +281,9 @@ def accounts_register(request: HttpRequest) -> HttpResponse:
|
||||
# make it respect invited_as_admin / is_realm_admin.
|
||||
else:
|
||||
user_profile = do_create_user(email, password, realm, full_name, short_name,
|
||||
prereg_user=prereg_user, is_realm_admin=is_realm_admin,
|
||||
prereg_user=prereg_user,
|
||||
is_realm_admin=is_realm_admin,
|
||||
is_guest=is_guest,
|
||||
tos_version=settings.TOS_VERSION,
|
||||
timezone=timezone,
|
||||
newsletter_data={"IP": request.META['REMOTE_ADDR']},
|
||||
|
||||
Reference in New Issue
Block a user