예제 #1
0
    class _RepoForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = False
        repo_name = All(v.UnicodeString(strip=True, min=1, not_empty=True),
                        v.SlugifyName())
        repo_group = All(v.CanWriteGroup(old_data),
                         v.OneOf(repo_groups, hideList=True))
        repo_type = v.OneOf(supported_backends,
                            required=False,
                            if_missing=old_data.get('repo_type'))
        repo_description = v.UnicodeString(strip=True, min=1, not_empty=False)
        repo_private = v.StringBoolean(if_missing=False)
        repo_landing_rev = v.OneOf(landing_revs, hideList=True)
        clone_uri = All(v.UnicodeString(strip=True, min=1, not_empty=False))

        repo_enable_statistics = v.StringBoolean(if_missing=False)
        repo_enable_downloads = v.StringBoolean(if_missing=False)
        repo_enable_locking = v.StringBoolean(if_missing=False)

        if edit:
            #this is repo owner
            user = All(v.UnicodeString(not_empty=True), v.ValidRepoUser())

        chained_validators = [
            v.ValidCloneUri(),
            v.ValidRepoName(edit, old_data)
        ]
예제 #2
0
    class _LoginForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True
        username = v.UnicodeString(
            strip=True,
            min=1,
            not_empty=True,
            messages={
                'empty': _(u'Please enter a login'),
                'tooShort': _(u'Enter a value %(min)i characters long or more')
            })

        password = v.UnicodeString(strip=False,
                                   min=3,
                                   not_empty=True,
                                   messages={
                                       'empty':
                                       _(u'Please enter a password'),
                                       'tooShort':
                                       _(u'Enter %(min)i characters or more')
                                   })

        remember = v.StringBoolean(if_missing=False)

        chained_validators = [v.ValidAuth()]
예제 #3
0
    class _UserForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True
        username = All(v.UnicodeString(strip=True, min=1, not_empty=True),
                       v.ValidUsername(edit, old_data))
        if edit:
            new_password = All(
                v.ValidPassword(),
                v.UnicodeString(strip=False, min=6, not_empty=False))
            password_confirmation = All(
                v.ValidPassword(),
                v.UnicodeString(strip=False, min=6, not_empty=False),
            )
            admin = v.StringBoolean(if_missing=False)
        else:
            password = All(v.ValidPassword(),
                           v.UnicodeString(strip=False, min=6, not_empty=True))
            password_confirmation = All(
                v.ValidPassword(),
                v.UnicodeString(strip=False, min=6, not_empty=False))

        password_change = v.StringBoolean(if_missing=False)
        create_repo_group = v.StringBoolean(if_missing=False)

        active = v.StringBoolean(if_missing=False)
        firstname = v.UnicodeString(strip=True, min=1, not_empty=False)
        lastname = v.UnicodeString(strip=True, min=1, not_empty=False)
        email = All(v.Email(not_empty=True), v.UniqSystemEmail(old_data))
        extern_name = v.UnicodeString(strip=True)
        extern_type = v.UnicodeString(strip=True)
        language = v.OneOf(available_languages,
                           hideList=False,
                           testValueList=True,
                           if_missing=None)
        chained_validators = [v.ValidPasswordsMatch()]
예제 #4
0
    class _RepoFieldForm(formencode.Schema):
        filter_extra_fields = True
        allow_extra_fields = True

        new_field_key = All(v.FieldKey(),
                            v.UnicodeString(strip=True, min=3, not_empty=True))
        new_field_value = v.UnicodeString(not_empty=False, if_missing='')
        new_field_type = v.OneOf(['str', 'unicode', 'list', 'tuple'],
                                 if_missing='str')
        new_field_label = v.UnicodeString(not_empty=False)
        new_field_desc = v.UnicodeString(not_empty=False)
예제 #5
0
    class _PasswordChangeForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True

        current_password = v.ValidOldPassword(username)(not_empty=True)
        new_password = All(v.ValidPassword(),
                           v.UnicodeString(strip=False, min=6))
        new_password_confirmation = All(v.ValidPassword(),
                                        v.UnicodeString(strip=False, min=6))

        chained_validators = [
            v.ValidPasswordsMatch('new_password', 'new_password_confirmation')
        ]
예제 #6
0
 class _RepoForkForm(formencode.Schema):
     allow_extra_fields = True
     filter_extra_fields = False
     repo_name = All(v.UnicodeString(strip=True, min=1, not_empty=True),
                     v.SlugifyName())
     repo_group = All(v.CanWriteGroup(), v.OneOf(repo_groups,
                                                 hideList=True))
     repo_type = All(v.ValidForkType(old_data), v.OneOf(supported_backends))
     description = v.UnicodeString(strip=True, min=1, not_empty=True)
     private = v.StringBoolean(if_missing=False)
     copy_permissions = v.StringBoolean(if_missing=False)
     fork_parent_id = v.UnicodeString()
     chained_validators = [v.ValidForkName(edit, old_data)]
     landing_rev = v.OneOf(landing_revs, hideList=True)
예제 #7
0
    class _RegisterForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True
        username = All(v.ValidUsername(edit, old_data),
                       v.UnicodeString(strip=True, min=1, not_empty=True))
        password = All(v.ValidPassword(),
                       v.UnicodeString(strip=False, min=6, not_empty=True))
        password_confirmation = All(
            v.ValidPassword(),
            v.UnicodeString(strip=False, min=6, not_empty=True))
        active = v.StringBoolean(if_missing=False)
        firstname = v.UnicodeString(strip=True, min=1, not_empty=False)
        lastname = v.UnicodeString(strip=True, min=1, not_empty=False)
        email = All(v.Email(not_empty=True), v.UniqSystemEmail(old_data))

        chained_validators = [v.ValidPasswordsMatch()]
예제 #8
0
    class _DefaultPermissionsForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True

        anonymous = v.StringBoolean(if_missing=False)
        default_register = v.OneOf(register_choices)
        default_register_message = v.UnicodeString()
        default_extern_activate = v.OneOf(extern_activate_choices)
예제 #9
0
 class _ApplicationUiSettingsForm(_BaseVcsSettingsForm):
     web_push_ssl = v.StringBoolean(if_missing=False)
     paths_root_path = All(
         v.ValidPath(), v.UnicodeString(strip=True, min=1, not_empty=True))
     extensions_hgsubversion = v.StringBoolean(if_missing=False)
     extensions_hggit = v.StringBoolean(if_missing=False)
     new_svn_branch = v.ValidSvnPattern(section='vcs_svn_branch')
     new_svn_tag = v.ValidSvnPattern(section='vcs_svn_tag')
예제 #10
0
    class _LabSettingsForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = False

        rhodecode_hg_use_rebase_for_merging = v.StringBoolean(if_missing=False)
        rhodecode_proxy_subversion_http_requests = v.StringBoolean(
            if_missing=False)
        rhodecode_subversion_http_server_url = v.UnicodeString(strip=True,
                                                               if_missing=None)
예제 #11
0
    class _ApplicationVisualisationForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = False
        rhodecode_show_public_icon = v.StringBoolean(if_missing=False)
        rhodecode_show_private_icon = v.StringBoolean(if_missing=False)
        rhodecode_stylify_metatags = v.StringBoolean(if_missing=False)

        rhodecode_repository_fields = v.StringBoolean(if_missing=False)
        rhodecode_lightweight_journal = v.StringBoolean(if_missing=False)
        rhodecode_dashboard_items = v.Int(min=5, not_empty=True)
        rhodecode_admin_grid_items = v.Int(min=5, not_empty=True)
        rhodecode_show_version = v.StringBoolean(if_missing=False)
        rhodecode_use_gravatar = v.StringBoolean(if_missing=False)
        rhodecode_markup_renderer = v.OneOf(['markdown', 'rst'])
        rhodecode_gravatar_url = v.UnicodeString(min=3)
        rhodecode_clone_uri_tmpl = v.UnicodeString(min=3)
        rhodecode_support_url = v.UnicodeString()
        rhodecode_show_revision_number = v.StringBoolean(if_missing=False)
        rhodecode_show_sha_length = v.Int(min=4, not_empty=True)
예제 #12
0
    class _ReposGroupForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = False

        group_name = All(v.UnicodeString(strip=True, min=1, not_empty=True),
                         v.SlugifyName())
        group_description = v.UnicodeString(strip=True, min=1, not_empty=False)
        if edit:
            #FIXME: do a special check that we cannot move a group to one of
            #it's children
            pass
        group_parent_id = All(
            v.CanCreateGroup(can_create_in_root),
            v.OneOf(available_groups,
                    hideList=False,
                    testValueList=True,
                    if_missing=None,
                    not_empty=True))
        enable_locking = v.StringBoolean(if_missing=False)
        chained_validators = [v.ValidReposGroup(edit, old_data)]
예제 #13
0
    class _PullRequestForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True

        user = v.UnicodeString(strip=True, required=True)
        org_repo = v.UnicodeString(strip=True, required=True)
        org_ref = v.UnicodeString(strip=True, required=True)
        other_repo = v.UnicodeString(strip=True, required=True)
        other_ref = v.UnicodeString(strip=True, required=True)
        revisions = All(  #v.NotReviewedRevisions(repo_id)(),
            v.UniqueList(not_empty=True))
        review_members = v.UniqueList(not_empty=True)

        pullrequest_title = v.UnicodeString(strip=True, required=True)
        pullrequest_desc = v.UnicodeString(strip=True, required=False)

        ancestor_rev = v.UnicodeString(strip=True, required=True)
        merge_rev = v.UnicodeString(strip=True, required=True)
예제 #14
0
    class _UserGroupForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True

        users_group_name = All(
            v.UnicodeString(strip=True, min=1, not_empty=True),
            v.ValidUserGroup(edit, old_data))
        user_group_description = v.UnicodeString(strip=True,
                                                 min=1,
                                                 not_empty=False)

        users_group_active = v.StringBoolean(if_missing=False)

        if edit:
            users_group_members = v.OneOf(available_members,
                                          hideList=False,
                                          testValueList=True,
                                          if_missing=None,
                                          not_empty=False)
            # this is user group owner
            user = All(v.UnicodeString(not_empty=True),
                       v.ValidRepoUser(allow_disabled))
예제 #15
0
    class _ApplicationUiSettingsForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = False
        web_push_ssl = v.StringBoolean(if_missing=False)
        paths_root_path = All(
            v.ValidPath(), v.UnicodeString(strip=True, min=1, not_empty=True))
        hooks_changegroup_update = v.StringBoolean(if_missing=False)
        hooks_changegroup_repo_size = v.StringBoolean(if_missing=False)
        hooks_changegroup_push_logger = v.StringBoolean(if_missing=False)
        hooks_outgoing_pull_logger = v.StringBoolean(if_missing=False)

        extensions_largefiles = v.StringBoolean(if_missing=False)
        extensions_hgsubversion = v.StringBoolean(if_missing=False)
        extensions_hggit = v.StringBoolean(if_missing=False)
예제 #16
0
    class _RepoGroupForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = False

        group_name = All(
            v.UnicodeString(strip=True, min=1, not_empty=True),
            v.SlugifyName(),
        )
        group_description = v.UnicodeString(strip=True, min=1, not_empty=False)
        group_copy_permissions = v.StringBoolean(if_missing=False)

        group_parent_id = v.OneOf(available_groups,
                                  hideList=False,
                                  testValueList=True,
                                  not_empty=True)
        enable_locking = v.StringBoolean(if_missing=False)
        chained_validators = [
            v.ValidRepoGroup(edit, old_data, can_create_in_root)
        ]

        if edit:
            # this is repo group owner
            user = All(v.UnicodeString(not_empty=True),
                       v.ValidRepoUser(allow_disabled))
예제 #17
0
    class _GistForm(formencode.Schema):

        filename = All(v.BasePath()(),
                       v.UnicodeString(strip=True, required=False))
        description = v.UnicodeString(required=False, if_missing='')
        lifetime = v.OneOf(lifetime_options)
        mimetype = v.UnicodeString(required=False, if_missing=None)
        content = v.UnicodeString(required=True, not_empty=True)
        public = v.UnicodeString(required=False, if_missing='')
        private = v.UnicodeString(required=False, if_missing='')
예제 #18
0
 class _LdapSettingsForm(formencode.Schema):
     allow_extra_fields = True
     filter_extra_fields = True
     #pre_validators = [LdapLibValidator]
     ldap_active = v.StringBoolean(if_missing=False)
     ldap_host = v.UnicodeString(strip=True, )
     ldap_port = v.Number(strip=True, )
     ldap_tls_kind = v.OneOf(tls_kind_choices)
     ldap_tls_reqcert = v.OneOf(tls_reqcert_choices)
     ldap_dn_user = v.UnicodeString(strip=True, )
     ldap_dn_pass = v.UnicodeString(strip=True, )
     ldap_base_dn = v.UnicodeString(strip=True, )
     ldap_filter = v.UnicodeString(strip=True, )
     ldap_search_scope = v.OneOf(search_scope_choices)
     ldap_attr_login = v.AttrLoginValidator()(not_empty=True)
     ldap_attr_firstname = v.UnicodeString(strip=True, )
     ldap_attr_lastname = v.UnicodeString(strip=True, )
     ldap_attr_email = v.UnicodeString(strip=True, )
예제 #19
0
    class _PullRequestForm(formencode.Schema):
        allow_extra_fields = True
        filter_extra_fields = True

        user = v.UnicodeString(strip=True, required=True)
        source_repo = v.UnicodeString(strip=True, required=True)
        source_ref = v.UnicodeString(strip=True, required=True)
        target_repo = v.UnicodeString(strip=True, required=True)
        target_ref = v.UnicodeString(strip=True, required=True)
        revisions = All(  #v.NotReviewedRevisions(repo_id)(),
            v.UniqueList()(not_empty=True))
        review_members = v.UniqueList(convert=int)(not_empty=True)

        pullrequest_title = v.UnicodeString(strip=True, required=True)
        pullrequest_desc = v.UnicodeString(strip=True, required=False)
예제 #20
0
 class _ApplicationSettingsForm(formencode.Schema):
     allow_extra_fields = True
     filter_extra_fields = False
     rhodecode_title = v.UnicodeString(strip=True, max=40, not_empty=False)
     rhodecode_realm = v.UnicodeString(strip=True, min=1, not_empty=True)
     rhodecode_pre_code = v.UnicodeString(strip=True,
                                          min=1,
                                          not_empty=False)
     rhodecode_post_code = v.UnicodeString(strip=True,
                                           min=1,
                                           not_empty=False)
     rhodecode_captcha_public_key = v.UnicodeString(strip=True,
                                                    min=1,
                                                    not_empty=False)
     rhodecode_captcha_private_key = v.UnicodeString(strip=True,
                                                     min=1,
                                                     not_empty=False)
예제 #21
0
 class _ApplicationSettingsForm(formencode.Schema):
     allow_extra_fields = True
     filter_extra_fields = False
     rhodecode_title = v.UnicodeString(strip=True, min=1, not_empty=True)
     rhodecode_realm = v.UnicodeString(strip=True, min=1, not_empty=True)
     rhodecode_ga_code = v.UnicodeString(strip=True, min=1, not_empty=False)