Пример #1
0
    def check_username_availability(self, data):
        email = data['email'].strip()
        duplicate = CouchUser.get_by_username(email)
        is_existing = User.objects.filter(
            username__iexact=email).count() > 0 or duplicate

        message = None
        restricted_by_domain = None
        if is_existing:
            message = _("There is already a user with this email.")
        else:
            domain = email[email.find("@") + 1:]
            for account in BillingAccount.get_enterprise_restricted_signup_accounts(
            ):
                if domain in account.enterprise_restricted_signup_domains:
                    restricted_by_domain = domain
                    message = account.restrict_signup_message
                    regex = r'(\b[a-zA-Z0-9_.+%-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+\b)'
                    subject = _("CommCareHQ account request")
                    message = re.sub(
                        regex,
                        "<a href='mailto:\\1?subject={}'>\\1</a>".format(
                            subject), message)
                    break
        return {
            'isValid': message is None,
            'restrictedByDomain': restricted_by_domain,
            'message': message,
        }
Пример #2
0
    def check_username_availability(self, data):
        email = data['email'].strip()
        duplicate = CouchUser.get_by_username(email)
        is_existing = User.objects.filter(
            username__iexact=email).count() > 0 or duplicate

        message = None
        restricted_by_domain = None
        if is_existing:
            message = _("There is already a user with this email.")
        else:
            domain = email[email.find("@") + 1:]
            for account in BillingAccount.get_enterprise_restricted_signup_accounts(
            ):
                if domain in account.enterprise_restricted_signup_domains:
                    restricted_by_domain = domain
                    message = account.restrict_signup_message
                    regex = r'(\b[a-zA-Z0-9_.+%-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+\b)'
                    subject = _("CommCareHQ account request")
                    message = re.sub(
                        regex,
                        "<a href='mailto:\\1?subject={}'>\\1</a>".format(
                            subject), message)
                    break

        response = {
            'isValid': message is None,
            'restrictedByDomain': restricted_by_domain,
            'message': message,
        }
        if settings.ENFORCE_SSO_LOGIN and response['isValid']:
            idp = IdentityProvider.get_required_identity_provider(email)
            if idp:
                response.update({
                    'isSso':
                    True,
                    'ssoMessage':
                    _("This email is managed by {}. You will be asked to login "
                      "with Single Sign-On after the next step.").format(
                          idp.name),
                })
        return response
Пример #3
0
    def check_username_availability(self, data):
        email = data['email'].strip()
        duplicate = CouchUser.get_by_username(email)
        is_existing = User.objects.filter(username__iexact=email).count() > 0 or duplicate

        message = None
        restricted_by_domain = None
        if is_existing:
            message = _("There is already a user with this email.")
        else:
            domain = email[email.find("@") + 1:]
            for account in BillingAccount.get_enterprise_restricted_signup_accounts():
                if domain in account.enterprise_restricted_signup_domains:
                    restricted_by_domain = domain
                    message = account.restrict_signup_message
                    regex = r'(\b[a-zA-Z0-9_.+%-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+\b)'
                    subject = _("CommCareHQ account request")
                    message = re.sub(regex, "<a href='mailto:\\1?subject={}'>\\1</a>".format(subject), message)
                    break
        return {
            'isValid': message is None,
            'restrictedByDomain': restricted_by_domain,
            'message': message,
        }