コード例 #1
0
def invite_web_user(request, domain, template="users/invite_web_user.html"):
    role_choices = UserRole.role_choices(domain)
    if request.method == "POST":
        current_users = [user.username for user in WebUser.by_domain(domain)]
        pending_invites = [di.email for di in DomainInvitation.by_domain(domain)]
        form = AdminInvitesUserForm(request.POST,
            excluded_emails= current_users + pending_invites,
            role_choices=role_choices
        )
        if form.is_valid():
            data = form.cleaned_data
            # create invitation record
            data["invited_by"] = request.couch_user.user_id
            data["invited_on"] = datetime.utcnow()
            data["domain"] = domain
            invite = DomainInvitation(**data)
            invite.save()
            invite.send_activation_email()
            messages.success(request, "Invitation sent to %s" % invite.email)
            return HttpResponseRedirect(reverse("web_users", args=[domain]))
    else:
        form = AdminInvitesUserForm(role_choices=role_choices)
    context = _users_context(request, domain)
    context.update(
        registration_form=form
    )
    return render(request, template, context)
コード例 #2
0
 def post(self, request, *args, **kwargs):
     if self.invite_web_user_form.is_valid():
         data = self.invite_web_user_form.cleaned_data
         # create invitation record
         data["invited_by"] = request.couch_user.user_id
         data["invited_on"] = datetime.utcnow()
         data["domain"] = self.domain
         invite = DomainInvitation(**data)
         invite.save()
         invite.send_activation_email()
         messages.success(request, "Invitation sent to %s" % invite.email)
         return HttpResponseRedirect(reverse(ListWebUsersView.urlname, args=[self.domain]))
     return self.get(request, *args, **kwargs)