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)
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)
def resend_pending_invitations(): from corehq.apps.users.models import DomainInvitation days_to_resend = (15, 29) days_to_expire = 30 domains = Domain.get_all() for domain in domains: invitations = DomainInvitation.by_domain(domain.name) for invitation in invitations: days = (datetime.now() - invitation.invited_on).days if days in days_to_resend: invitation.send_activation_email(days_to_expire - days)
def resend_pending_invitations(): from corehq.apps.users.models import DomainInvitation days_to_resend = (15, 29) days_to_expire = 30 domains = Domain.get_all() for domain in domains: invitations = DomainInvitation.by_domain(domain.name) for invitation in invitations: days = (datetime.now() - invitation.invited_on).days if days in days_to_resend: invitation.send_activation_email(days_to_expire - days)
def invite_web_user_form(self): role_choices = UserRole.role_choices(self.domain) if self.request.method == 'POST': current_users = [user.username for user in WebUser.by_domain(self.domain)] pending_invites = [di.email for di in DomainInvitation.by_domain(self.domain)] return AdminInvitesUserForm( self.request.POST, excluded_emails=current_users + pending_invites, role_choices=role_choices, domain=self.domain ) return AdminInvitesUserForm(role_choices=role_choices, domain=self.domain)
def invite_web_user_form(self): role_choices = UserRole.role_choices(self.domain) if self.request.method == 'POST': current_users = [user.username for user in WebUser.by_domain(self.domain)] pending_invites = [di.email for di in DomainInvitation.by_domain(self.domain)] return AdminInvitesUserForm( self.request.POST, excluded_emails=current_users + pending_invites, role_choices=role_choices, domain=self.domain ) return AdminInvitesUserForm(role_choices=role_choices, domain=self.domain)
def invite_web_user_form(self): role_choices = UserRole.role_choices(self.domain) loc = None if 'location_id' in self.request.GET: from corehq.apps.locations.models import SQLLocation loc = SQLLocation.objects.get(location_id=self.request.GET.get('location_id')) if self.request.method == 'POST': current_users = [user.username for user in WebUser.by_domain(self.domain)] pending_invites = [di.email for di in DomainInvitation.by_domain(self.domain)] return AdminInvitesUserForm( self.request.POST, excluded_emails=current_users + pending_invites, role_choices=role_choices, domain=self.domain ) return AdminInvitesUserForm(role_choices=role_choices, domain=self.domain, location=loc)
def invite_web_user_form(self): role_choices = UserRole.role_choices(self.domain) loc = None domain_request = DomainRequest.objects.get(id=self.request_id) if self.request_id else None initial = {"email": domain_request.email if domain_request else None} if "location_id" in self.request.GET: from corehq.apps.locations.models import SQLLocation loc = SQLLocation.objects.get(location_id=self.request.GET.get("location_id")) if self.request.method == "POST": current_users = [user.username for user in WebUser.by_domain(self.domain)] pending_invites = [di.email for di in DomainInvitation.by_domain(self.domain)] return AdminInvitesUserForm( self.request.POST, excluded_emails=current_users + pending_invites, role_choices=role_choices, domain=self.domain, ) return AdminInvitesUserForm(initial=initial, role_choices=role_choices, domain=self.domain, location=loc)
def web_users(request, domain, template="users/web_users.html"): context = _users_context(request, domain) user_roles = [AdminUserRole(domain=domain)] user_roles.extend(sorted(UserRole.by_domain(domain), key=lambda role: role.name if role.name else u'\uFFFF')) role_labels = {} for r in user_roles: key = 'user-role:%s' % r.get_id if r.get_id else r.get_qualified_id() role_labels[key] = r.name invitations = DomainInvitation.by_domain(domain) for invitation in invitations: invitation.role_label = role_labels.get(invitation.role, "") context.update({ 'user_roles': user_roles, 'default_role': UserRole.get_default(), 'report_list': get_possible_reports(domain), 'invitations': invitations }) return render(request, template, context)
def web_users(request, domain, template="users/web_users.html"): context = _users_context(request, domain) user_roles = [AdminUserRole(domain=domain)] user_roles.extend(sorted(UserRole.by_domain(domain), key=lambda role: role.name if role.name else u'\uFFFF')) role_labels = {} for r in user_roles: key = 'user-role:%s' % r.get_id if r.get_id else r.get_qualified_id() role_labels[key] = r.name invitations = DomainInvitation.by_domain(domain) for invitation in invitations: invitation.role_label = role_labels.get(invitation.role, "") context.update({ 'user_roles': user_roles, 'default_role': UserRole.get_default(), 'report_list': get_possible_reports(domain), 'invitations': invitations }) return render(request, template, context)
def invite_web_user_form(self): role_choices = UserRole.role_choices(self.domain) loc = None if 'location_id' in self.request.GET: from corehq.apps.locations.models import SQLLocation loc = SQLLocation.objects.get( location_id=self.request.GET.get('location_id')) if self.request.method == 'POST': current_users = [ user.username for user in WebUser.by_domain(self.domain) ] pending_invites = [ di.email for di in DomainInvitation.by_domain(self.domain) ] return AdminInvitesUserForm(self.request.POST, excluded_emails=current_users + pending_invites, role_choices=role_choices, domain=self.domain) return AdminInvitesUserForm(role_choices=role_choices, domain=self.domain, location=loc)
def invitations(self): invitations = DomainInvitation.by_domain(self.domain) for invitation in invitations: invitation.role_label = self.role_labels.get(invitation.role, "") return invitations
def invitations(self): invitations = DomainInvitation.by_domain(self.domain) for invitation in invitations: invitation.role_label = self.role_labels.get(invitation.role, "") return invitations