gitea源码

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // Copyright 2014 The Gogs Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package forms
  4. import (
  5. "net/http"
  6. "code.gitea.io/gitea/modules/web/middleware"
  7. "code.gitea.io/gitea/services/context"
  8. "gitea.com/go-chi/binding"
  9. )
  10. // AuthenticationForm form for authentication
  11. type AuthenticationForm struct {
  12. ID int64
  13. Type int `binding:"Range(2,7)"`
  14. Name string `binding:"Required;MaxSize(30)"`
  15. TwoFactorPolicy string
  16. IsActive bool
  17. IsSyncEnabled bool
  18. // LDAP
  19. Host string
  20. Port int
  21. BindDN string
  22. BindPassword string
  23. UserBase string
  24. UserDN string
  25. AttributeUsername string
  26. AttributeName string
  27. AttributeSurname string
  28. AttributeMail string
  29. AttributeSSHPublicKey string
  30. AttributeAvatar string
  31. AttributesInBind bool
  32. UsePagedSearch bool
  33. SearchPageSize int
  34. Filter string
  35. AdminFilter string
  36. GroupsEnabled bool
  37. GroupDN string
  38. GroupFilter string
  39. GroupMemberUID string
  40. UserUID string
  41. RestrictedFilter string
  42. AllowDeactivateAll bool
  43. GroupTeamMap string `binding:"ValidGroupTeamMap"`
  44. GroupTeamMapRemoval bool
  45. // SMTP
  46. SMTPAuth string
  47. SMTPHost string
  48. SMTPPort int
  49. AllowedDomains string
  50. SecurityProtocol int `binding:"Range(0,2)"`
  51. TLS bool
  52. SkipVerify bool
  53. HeloHostname string
  54. DisableHelo bool
  55. ForceSMTPS bool
  56. // PAM
  57. PAMServiceName string
  58. PAMEmailDomain string
  59. // Oauth2 & OIDC
  60. Oauth2Provider string
  61. Oauth2Key string
  62. Oauth2Secret string
  63. OpenIDConnectAutoDiscoveryURL string
  64. Oauth2UseCustomURL bool
  65. Oauth2TokenURL string
  66. Oauth2AuthURL string
  67. Oauth2ProfileURL string
  68. Oauth2EmailURL string
  69. Oauth2IconURL string
  70. Oauth2Tenant string
  71. Oauth2Scopes string
  72. Oauth2RequiredClaimName string
  73. Oauth2RequiredClaimValue string
  74. Oauth2GroupClaimName string
  75. Oauth2AdminGroup string
  76. Oauth2RestrictedGroup string
  77. Oauth2GroupTeamMap string `binding:"ValidGroupTeamMap"`
  78. Oauth2GroupTeamMapRemoval bool
  79. Oauth2SSHPublicKeyClaimName string
  80. Oauth2FullNameClaimName string
  81. // SSPI
  82. SSPIAutoCreateUsers bool
  83. SSPIAutoActivateUsers bool
  84. SSPIStripDomainNames bool
  85. SSPISeparatorReplacement string `binding:"AlphaDashDot;MaxSize(5)"`
  86. SSPIDefaultLanguage string
  87. }
  88. // Validate validates fields
  89. func (f *AuthenticationForm) Validate(req *http.Request, errs binding.Errors) binding.Errors {
  90. ctx := context.GetValidateContext(req)
  91. return middleware.Validate(errs, ctx.Data, f, ctx.Locale)
  92. }