예제 #1
0
파일: forms.py 프로젝트: zippyy/zulip
def check_subdomain_available(subdomain: str) -> None:
    error_strings = {
        'too short':
        _("Subdomain needs to have length 3 or greater."),
        'extremal dash':
        _("Subdomain cannot start or end with a '-'."),
        'bad character':
        _("Subdomain can only have lowercase letters, numbers, and '-'s."),
        'unavailable':
        _("Subdomain unavailable. Please choose a different one.")
    }

    if subdomain == Realm.SUBDOMAIN_FOR_ROOT_DOMAIN:
        if is_root_domain_available():
            return
        raise ValidationError(error_strings['unavailable'])
    if subdomain[0] == '-' or subdomain[-1] == '-':
        raise ValidationError(error_strings['extremal dash'])
    if not re.match('^[a-z0-9-]*$', subdomain):
        raise ValidationError(error_strings['bad character'])
    if len(subdomain) < 3:
        raise ValidationError(error_strings['too short'])
    if is_reserved_subdomain(subdomain) or \
       get_realm(subdomain) is not None:
        raise ValidationError(error_strings['unavailable'])
예제 #2
0
파일: forms.py 프로젝트: Jianchun1/zulip
 def clean_realm_subdomain(self):
     # type: () -> str
     if settings.REALMS_HAVE_SUBDOMAINS:
         error_strings = {
             'too short': _("Subdomain needs to have length 3 or greater."),
             'extremal dash': _("Subdomain cannot start or end with a '-'."),
             'bad character': _("Subdomain can only have lowercase letters, numbers, and '-'s."),
             'unavailable': _("Subdomain unavailable. Please choose a different one.")}
     else:
         error_strings = {
             'too short': _("Short name needs at least 3 characters."),
             'extremal dash': _("Short name cannot start or end with a '-'."),
             'bad character': _("Short name can only have lowercase letters, numbers, and '-'s."),
             'unavailable': _("Short name unavailable. Please choose a different one.")}
     subdomain = self.cleaned_data['realm_subdomain']
     if not subdomain:
         return ''
     if len(subdomain) < 3:
         raise ValidationError(error_strings['too short'])
     if subdomain[0] == '-' or subdomain[-1] == '-':
         raise ValidationError(error_strings['extremal dash'])
     if not re.match('^[a-z0-9-]*$', subdomain):
         raise ValidationError(error_strings['bad character'])
     if is_reserved_subdomain(subdomain) or \
        get_realm_by_string_id(subdomain) is not None:
         raise ValidationError(error_strings['unavailable'])
     return subdomain
예제 #3
0
파일: forms.py 프로젝트: jollysonali/zulip
    def clean_realm_subdomain(self):
        # type: () -> str
        error_strings = {
            'too short':
            _("Subdomain needs to have length 3 or greater."),
            'extremal dash':
            _("Subdomain cannot start or end with a '-'."),
            'bad character':
            _("Subdomain can only have lowercase letters, numbers, and '-'s."),
            'unavailable':
            _("Subdomain unavailable. Please choose a different one.")
        }

        subdomain = self.cleaned_data['realm_subdomain']
        if not subdomain:
            return ''
        if len(subdomain) < 3:
            raise ValidationError(error_strings['too short'])
        if subdomain[0] == '-' or subdomain[-1] == '-':
            raise ValidationError(error_strings['extremal dash'])
        if not re.match('^[a-z0-9-]*$', subdomain):
            raise ValidationError(error_strings['bad character'])
        if is_reserved_subdomain(subdomain) or \
           get_realm(subdomain) is not None:
            raise ValidationError(error_strings['unavailable'])
        return subdomain
예제 #4
0
파일: forms.py 프로젝트: DavadDi/zulip
def check_subdomain_available(subdomain: str,
                              allow_reserved_subdomain: bool = False) -> None:
    error_strings = {
        "too short":
        _("Subdomain needs to have length 3 or greater."),
        "extremal dash":
        _("Subdomain cannot start or end with a '-'."),
        "bad character":
        _("Subdomain can only have lowercase letters, numbers, and '-'s."),
        "unavailable":
        _("Subdomain unavailable. Please choose a different one."),
    }

    if subdomain == Realm.SUBDOMAIN_FOR_ROOT_DOMAIN:
        if is_root_domain_available():
            return
        raise ValidationError(error_strings["unavailable"])
    if subdomain[0] == "-" or subdomain[-1] == "-":
        raise ValidationError(error_strings["extremal dash"])
    if not re.match("^[a-z0-9-]*$", subdomain):
        raise ValidationError(error_strings["bad character"])
    if len(subdomain) < 3:
        raise ValidationError(error_strings["too short"])
    if Realm.objects.filter(string_id=subdomain).exists():
        raise ValidationError(error_strings["unavailable"])
    if is_reserved_subdomain(subdomain) and not allow_reserved_subdomain:
        raise ValidationError(error_strings["unavailable"])
예제 #5
0
파일: forms.py 프로젝트: joydeep1701/zulip
def check_subdomain_available(subdomain: str) -> None:
    error_strings = {
        'too short': _("Subdomain needs to have length 3 or greater."),
        'extremal dash': _("Subdomain cannot start or end with a '-'."),
        'bad character': _("Subdomain can only have lowercase letters, numbers, and '-'s."),
        'unavailable': _("Subdomain unavailable. Please choose a different one.")}

    if subdomain == Realm.SUBDOMAIN_FOR_ROOT_DOMAIN:
        if is_root_domain_available():
            return
        raise ValidationError(error_strings['unavailable'])
    if len(subdomain) < 3:
        raise ValidationError(error_strings['too short'])
    if subdomain[0] == '-' or subdomain[-1] == '-':
        raise ValidationError(error_strings['extremal dash'])
    if not re.match('^[a-z0-9-]*$', subdomain):
        raise ValidationError(error_strings['bad character'])
    if is_reserved_subdomain(subdomain) or \
       get_realm(subdomain) is not None:
        raise ValidationError(error_strings['unavailable'])