class _LoginForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = True username = v.UnicodeString( strip=True, min=1, not_empty=True, messages={ 'empty': _('Please enter a login'), 'tooShort': _('Enter a value %(min)i characters long or more') }) password = v.UnicodeString(strip=False, min=3, not_empty=True, messages={ 'empty': _('Please enter a password'), 'tooShort': _('Enter %(min)i characters or more') }) remember = v.StringBoolean(if_missing=False) chained_validators = [v.ValidAuth()]
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_group_ids, hideList=True), v.Int(min=-1, not_empty=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) repo_copy_permissions = v.StringBoolean(if_missing=False) 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: owner = All(v.UnicodeString(not_empty=True), v.ValidRepoUser()) # Not a real field - just for reference for validation: # clone_uri_hidden = v.UnicodeString(if_missing='') chained_validators = [ v.ValidCloneUri(), v.ValidRepoName(edit, old_data) ]
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(), v.ValidRegex( msg=_('Name must not contain only digits'))(r'(?!^\d+$)^.+$')) group_description = v.UnicodeString(strip=True, min=1, not_empty=False) group_copy_permissions = v.StringBoolean(if_missing=False) if edit: #FIXME: do a special check that we cannot move a group to one of #its children pass parent_group_id = All( v.CanCreateGroup(can_create_in_root), v.OneOf(repo_group_ids, hideList=False, testValueList=True, if_missing=None, not_empty=True), v.Int(min=-1, not_empty=True)) enable_locking = v.StringBoolean(if_missing=False) chained_validators = [v.ValidRepoGroup(edit, old_data)]
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) chained_validators = [ v.ValidPasswordsMatch('new_password', 'password_confirmation') ] 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)) chained_validators = [ v.ValidPasswordsMatch('password', 'password_confirmation') ] 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, if_missing=None) extern_type = v.UnicodeString(strip=True, if_missing=None)
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)
class _ApplicationSettingsForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = False title = v.UnicodeString(strip=True, not_empty=False) realm = v.UnicodeString(strip=True, min=1, not_empty=True) ga_code = v.UnicodeString(strip=True, min=1, not_empty=False) captcha_public_key = v.UnicodeString(strip=True, min=1, not_empty=False) captcha_private_key = v.UnicodeString(strip=True, min=1, not_empty=False)
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') ]
class _PullRequestPostForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = True pullrequest_title = v.UnicodeString(strip=True, required=True) pullrequest_desc = v.UnicodeString(strip=True, required=False) org_review_members = v.Set() review_members = v.Set() updaterev = v.UnicodeString(strip=True, required=False, if_missing=None) owner = All(v.UnicodeString(strip=True, required=True), v.ValidRepoUser())
class _PasswordResetConfirmationForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = True email = v.UnicodeString(strip=True, not_empty=True) timestamp = v.Number(strip=True, not_empty=True) token = v.UnicodeString(strip=True, not_empty=True) password = All(v.ValidPassword(), v.UnicodeString(strip=False, min=6)) password_confirm = All(v.ValidPassword(), v.UnicodeString(strip=False, min=6)) chained_validators = [ v.ValidPasswordsMatch('password', 'password_confirm') ]
class _ApplicationVisualisationForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = False show_public_icon = v.StringBoolean(if_missing=False) show_private_icon = v.StringBoolean(if_missing=False) stylify_metatags = v.StringBoolean(if_missing=False) repository_fields = v.StringBoolean(if_missing=False) lightweight_journal = v.StringBoolean(if_missing=False) dashboard_items = v.Int(min=5, not_empty=True) admin_grid_items = v.Int(min=5, not_empty=True) show_version = v.StringBoolean(if_missing=False) use_gravatar = v.StringBoolean(if_missing=False) gravatar_url = v.UnicodeString(min=3) clone_uri_tmpl = v.UnicodeString(min=3)
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_group_ids, hideList=True), v.Int(min=-1, not_empty=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) update_after_clone = 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)
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)
class _ApplicationUiSettingsForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = 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) extensions_largefiles = v.StringBoolean(if_missing=False) extensions_hgsubversion = v.StringBoolean(if_missing=False) extensions_hggit = v.StringBoolean(if_missing=False)
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, )
class _PullRequestForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = 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) pullrequest_title = v.UnicodeString(strip=True, required=True) pullrequest_desc = v.UnicodeString(strip=True, required=False)
class _GistForm(formencode.Schema): allow_extra_fields = True filter_extra_fields = True filename = All(v.BasePath()(), v.UnicodeString(strip=True, required=False)) description = v.UnicodeString(required=False, if_missing=u'') 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=u'') private = v.UnicodeString(required=False, if_missing=u'')