backend: Allow Administrators to invite new users as admins.

Tweaked by tabbott to have the field before the invitation is
completed be called invite_as_admins, not invited_as_admins, for
readability.

Fixes #6834.
This commit is contained in:
Vishnu Ks
2017-10-15 22:04:47 +05:30
committed by Tim Abbott
parent 4b78f69a87
commit 8c68a167fe
7 changed files with 77 additions and 11 deletions

View File

@@ -3754,8 +3754,8 @@ class InvitationError(JsonableError):
self.errors = errors # type: List[Tuple[Text, str]]
self.sent_invitations = sent_invitations # type: bool
def do_invite_users(user_profile, invitee_emails, streams, body=None):
# type: (UserProfile, SizedTextIterable, Iterable[Stream], Optional[str]) -> None
def do_invite_users(user_profile, invitee_emails, streams, invite_as_admin=False, body=None):
# type: (UserProfile, SizedTextIterable, Iterable[Stream], Optional[bool], Optional[str]) -> None
validated_emails = [] # type: List[Text]
errors = [] # type: List[Tuple[Text, str]]
skipped = [] # type: List[Tuple[Text, str]]
@@ -3787,7 +3787,8 @@ def do_invite_users(user_profile, invitee_emails, streams, body=None):
# the PreregistrationUser objects and trigger the email invitations.
for email in validated_emails:
# The logged in user is the referrer.
prereg_user = PreregistrationUser(email=email, referred_by=user_profile)
prereg_user = PreregistrationUser(email=email, referred_by=user_profile,
invited_as_admin=invite_as_admin)
prereg_user.save()
stream_ids = [stream.id for stream in streams]