diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/auth/auth.go | 130 | ||||
-rw-r--r-- | modules/auth/org.go | 55 | ||||
-rw-r--r-- | modules/context/context.go | 7 | ||||
-rw-r--r-- | modules/form/admin.go (renamed from modules/auth/admin.go) | 13 | ||||
-rw-r--r-- | modules/form/auth.go (renamed from modules/auth/auth_form.go) | 6 | ||||
-rw-r--r-- | modules/form/form.go | 135 | ||||
-rw-r--r-- | modules/form/org.go | 41 | ||||
-rw-r--r-- | modules/form/repo.go (renamed from modules/auth/repo_form.go) | 112 | ||||
-rw-r--r-- | modules/form/user.go (renamed from modules/auth/user_form.go) | 44 |
9 files changed, 267 insertions, 276 deletions
diff --git a/modules/auth/auth.go b/modules/auth/auth.go index d270cc05..2e96ec1a 100644 --- a/modules/auth/auth.go +++ b/modules/auth/auth.go @@ -5,12 +5,9 @@ package auth import ( - "reflect" "strings" "time" - "github.com/Unknwon/com" - "github.com/go-macaron/binding" "github.com/go-macaron/session" gouuid "github.com/satori/go.uuid" log "gopkg.in/clog.v1" @@ -147,130 +144,3 @@ func SignedInUser(ctx *macaron.Context, sess session.Store) (*models.User, bool) } return u, false } - -type Form interface { - binding.Validator -} - -func init() { - binding.SetNameMapper(com.ToSnakeCase) -} - -// AssignForm assign form values back to the template data. -func AssignForm(form interface{}, data map[string]interface{}) { - typ := reflect.TypeOf(form) - val := reflect.ValueOf(form) - - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - val = val.Elem() - } - - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - - fieldName := field.Tag.Get("form") - // Allow ignored fields in the struct - if fieldName == "-" { - continue - } else if len(fieldName) == 0 { - fieldName = com.ToSnakeCase(field.Name) - } - - data[fieldName] = val.Field(i).Interface() - } -} - -func getRuleBody(field reflect.StructField, prefix string) string { - for _, rule := range strings.Split(field.Tag.Get("binding"), ";") { - if strings.HasPrefix(rule, prefix) { - return rule[len(prefix) : len(rule)-1] - } - } - return "" -} - -func GetSize(field reflect.StructField) string { - return getRuleBody(field, "Size(") -} - -func GetMinSize(field reflect.StructField) string { - return getRuleBody(field, "MinSize(") -} - -func GetMaxSize(field reflect.StructField) string { - return getRuleBody(field, "MaxSize(") -} - -func GetInclude(field reflect.StructField) string { - return getRuleBody(field, "Include(") -} - -// FIXME: struct contains a struct -func validateStruct(obj interface{}) binding.Errors { - - return nil -} - -func validate(errs binding.Errors, data map[string]interface{}, f Form, l macaron.Locale) binding.Errors { - if errs.Len() == 0 { - return errs - } - - data["HasError"] = true - AssignForm(f, data) - - typ := reflect.TypeOf(f) - val := reflect.ValueOf(f) - - if typ.Kind() == reflect.Ptr { - typ = typ.Elem() - val = val.Elem() - } - - for i := 0; i < typ.NumField(); i++ { - field := typ.Field(i) - - fieldName := field.Tag.Get("form") - // Allow ignored fields in the struct - if fieldName == "-" { - continue - } - - if errs[0].FieldNames[0] == field.Name { - data["Err_"+field.Name] = true - - trName := field.Tag.Get("locale") - if len(trName) == 0 { - trName = l.Tr("form." + field.Name) - } else { - trName = l.Tr(trName) - } - - switch errs[0].Classification { - case binding.ERR_REQUIRED: - data["ErrorMsg"] = trName + l.Tr("form.require_error") - case binding.ERR_ALPHA_DASH: - data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_error") - case binding.ERR_ALPHA_DASH_DOT: - data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_dot_error") - case binding.ERR_SIZE: - data["ErrorMsg"] = trName + l.Tr("form.size_error", GetSize(field)) - case binding.ERR_MIN_SIZE: - data["ErrorMsg"] = trName + l.Tr("form.min_size_error", GetMinSize(field)) - case binding.ERR_MAX_SIZE: - data["ErrorMsg"] = trName + l.Tr("form.max_size_error", GetMaxSize(field)) - case binding.ERR_EMAIL: - data["ErrorMsg"] = trName + l.Tr("form.email_error") - case binding.ERR_URL: - data["ErrorMsg"] = trName + l.Tr("form.url_error") - case binding.ERR_INCLUDE: - data["ErrorMsg"] = trName + l.Tr("form.include_error", GetInclude(field)) - default: - data["ErrorMsg"] = l.Tr("form.unknown_error") + " " + errs[0].Classification - } - return errs - } - } - return errs -} diff --git a/modules/auth/org.go b/modules/auth/org.go deleted file mode 100644 index 53ef6245..00000000 --- a/modules/auth/org.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2014 The Gogs Authors. All rights reserved. -// Use of this source code is governed by a MIT-style -// license that can be found in the LICENSE file. - -package auth - -import ( - "github.com/go-macaron/binding" - "gopkg.in/macaron.v1" -) - -// ________ .__ __ .__ -// \_____ \_______ _________ ____ |__|____________ _/ |_|__| ____ ____ -// / | \_ __ \/ ___\__ \ / \| \___ /\__ \\ __\ |/ _ \ / \ -// / | \ | \/ /_/ > __ \| | \ |/ / / __ \| | | ( <_> ) | \ -// \_______ /__| \___ (____ /___| /__/_____ \(____ /__| |__|\____/|___| / -// \/ /_____/ \/ \/ \/ \/ \/ - -type CreateOrgForm struct { - OrgName string `binding:"Required;AlphaDashDot;MaxSize(35)" locale:"org.org_name_holder"` -} - -func (f *CreateOrgForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { - return validate(errs, ctx.Data, f, ctx.Locale) -} - -type UpdateOrgSettingForm struct { - Name string `binding:"Required;AlphaDashDot;MaxSize(35)" locale:"org.org_name_holder"` - FullName string `binding:"MaxSize(100)"` - Description string `binding:"MaxSize(255)"` - Website string `binding:"Url;MaxSize(100)"` - Location string `binding:"MaxSize(50)"` - MaxRepoCreation int -} - -func (f *UpdateOrgSettingForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { - return validate(errs, ctx.Data, f, ctx.Locale) -} - -// ___________ -// \__ ___/___ _____ _____ -// | |_/ __ \\__ \ / \ -// | |\ ___/ / __ \| Y Y \ -// |____| \___ >____ /__|_| / -// \/ \/ \/ - -type CreateTeamForm struct { - TeamName string `binding:"Required;AlphaDashDot;MaxSize(30)"` - Description string `binding:"MaxSize(255)"` - Permission string -} - -func (f *CreateTeamForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { - return validate(errs, ctx.Data, f, ctx.Locale) -} diff --git a/modules/context/context.go b/modules/context/context.go index f6f2756a..e3cc6f6b 100644 --- a/modules/context/context.go +++ b/modules/context/context.go @@ -22,6 +22,7 @@ import ( "github.com/gogits/gogs/models" "github.com/gogits/gogs/modules/auth" "github.com/gogits/gogs/modules/base" + "github.com/gogits/gogs/modules/form" "github.com/gogits/gogs/modules/setting" ) @@ -78,9 +79,9 @@ func (ctx *Context) HTML(status int, name base.TplName) { } // RenderWithErr used for page has form validation but need to prompt error to users. -func (ctx *Context) RenderWithErr(msg string, tpl base.TplName, form interface{}) { - if form != nil { - auth.AssignForm(form, ctx.Data) +func (ctx *Context) RenderWithErr(msg string, tpl base.TplName, f interface{}) { + if f != nil { + form.Assign(f, ctx.Data) } ctx.Flash.ErrorMsg = msg ctx.Data["Flash"] = ctx.Flash diff --git a/modules/auth/admin.go b/modules/form/admin.go index 58d1a027..c51d62ca 100644 --- a/modules/auth/admin.go +++ b/modules/form/admin.go @@ -2,15 +2,14 @@ // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. -package auth +package form import ( - "gopkg.in/macaron.v1" - "github.com/go-macaron/binding" + "gopkg.in/macaron.v1" ) -type AdminCrateUserForm struct { +type AdminCrateUser struct { LoginType string `binding:"Required"` LoginName string UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"` @@ -19,11 +18,11 @@ type AdminCrateUserForm struct { SendNotify bool } -func (f *AdminCrateUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *AdminCrateUser) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type AdminEditUserForm struct { +type AdminEditUser struct { LoginType string `binding:"Required"` LoginName string FullName string `binding:"MaxSize(100)"` @@ -39,6 +38,6 @@ type AdminEditUserForm struct { ProhibitLogin bool } -func (f *AdminEditUserForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *AdminEditUser) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } diff --git a/modules/auth/auth_form.go b/modules/form/auth.go index 9454d856..10dccd00 100644 --- a/modules/auth/auth_form.go +++ b/modules/form/auth.go @@ -2,14 +2,14 @@ // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. -package auth +package form import ( "github.com/go-macaron/binding" "gopkg.in/macaron.v1" ) -type AuthenticationForm struct { +type Authentication struct { ID int64 Type int `binding:"Range(2,5)"` Name string `binding:"Required;MaxSize(30)"` @@ -37,6 +37,6 @@ type AuthenticationForm struct { PAMServiceName string } -func (f *AuthenticationForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *Authentication) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } diff --git a/modules/form/form.go b/modules/form/form.go new file mode 100644 index 00000000..1e6fec9e --- /dev/null +++ b/modules/form/form.go @@ -0,0 +1,135 @@ +// Copyright 2017 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package form + +import ( + "reflect" + "strings" + + "github.com/Unknwon/com" + "github.com/go-macaron/binding" + "gopkg.in/macaron.v1" +) + +func init() { + binding.SetNameMapper(com.ToSnakeCase) +} + +type Form interface { + binding.Validator +} + +// Assign assign form values back to the template data. +func Assign(form interface{}, data map[string]interface{}) { + typ := reflect.TypeOf(form) + val := reflect.ValueOf(form) + + if typ.Kind() == reflect.Ptr { + typ = typ.Elem() + val = val.Elem() + } + + for i := 0; i < typ.NumField(); i++ { + field := typ.Field(i) + + fieldName := field.Tag.Get("form") + // Allow ignored fields in the struct + if fieldName == "-" { + continue + } else if len(fieldName) == 0 { + fieldName = com.ToSnakeCase(field.Name) + } + + data[fieldName] = val.Field(i).Interface() + } +} + +func getRuleBody(field reflect.StructField, prefix string) string { + for _, rule := range strings.Split(field.Tag.Get("binding"), ";") { + if strings.HasPrefix(rule, prefix) { + return rule[len(prefix) : len(rule)-1] + } + } + return "" +} + +func getSize(field reflect.StructField) string { + return getRuleBody(field, "Size(") +} + +func getMinSize(field reflect.StructField) string { + return getRuleBody(field, "MinSize(") +} + +func getMaxSize(field reflect.StructField) string { + return getRuleBody(field, "MaxSize(") +} + +func getInclude(field reflect.StructField) string { + return getRuleBody(field, "Include(") +} + +func validate(errs binding.Errors, data map[string]interface{}, f Form, l macaron.Locale) binding.Errors { + if errs.Len() == 0 { + return errs + } + + data["HasError"] = true + Assign(f, data) + + typ := reflect.TypeOf(f) + val := reflect.ValueOf(f) + + if typ.Kind() == reflect.Ptr { + typ = typ.Elem() + val = val.Elem() + } + + for i := 0; i < typ.NumField(); i++ { + field := typ.Field(i) + + fieldName := field.Tag.Get("form") + // Allow ignored fields in the struct + if fieldName == "-" { + continue + } + + if errs[0].FieldNames[0] == field.Name { + data["Err_"+field.Name] = true + + trName := field.Tag.Get("locale") + if len(trName) == 0 { + trName = l.Tr("form." + field.Name) + } else { + trName = l.Tr(trName) + } + + switch errs[0].Classification { + case binding.ERR_REQUIRED: + data["ErrorMsg"] = trName + l.Tr("form.require_error") + case binding.ERR_ALPHA_DASH: + data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_error") + case binding.ERR_ALPHA_DASH_DOT: + data["ErrorMsg"] = trName + l.Tr("form.alpha_dash_dot_error") + case binding.ERR_SIZE: + data["ErrorMsg"] = trName + l.Tr("form.size_error", getSize(field)) + case binding.ERR_MIN_SIZE: + data["ErrorMsg"] = trName + l.Tr("form.min_size_error", getMinSize(field)) + case binding.ERR_MAX_SIZE: + data["ErrorMsg"] = trName + l.Tr("form.max_size_error", getMaxSize(field)) + case binding.ERR_EMAIL: + data["ErrorMsg"] = trName + l.Tr("form.email_error") + case binding.ERR_URL: + data["ErrorMsg"] = trName + l.Tr("form.url_error") + case binding.ERR_INCLUDE: + data["ErrorMsg"] = trName + l.Tr("form.include_error", getInclude(field)) + default: + data["ErrorMsg"] = l.Tr("form.unknown_error") + " " + errs[0].Classification + } + return errs + } + } + return errs +} diff --git a/modules/form/org.go b/modules/form/org.go new file mode 100644 index 00000000..5c268c83 --- /dev/null +++ b/modules/form/org.go @@ -0,0 +1,41 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package form + +import ( + "github.com/go-macaron/binding" + "gopkg.in/macaron.v1" +) + +type CreateOrg struct { + OrgName string `binding:"Required;AlphaDashDot;MaxSize(35)" locale:"org.org_name_holder"` +} + +func (f *CreateOrg) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { + return validate(errs, ctx.Data, f, ctx.Locale) +} + +type UpdateOrgSetting struct { + Name string `binding:"Required;AlphaDashDot;MaxSize(35)" locale:"org.org_name_holder"` + FullName string `binding:"MaxSize(100)"` + Description string `binding:"MaxSize(255)"` + Website string `binding:"Url;MaxSize(100)"` + Location string `binding:"MaxSize(50)"` + MaxRepoCreation int +} + +func (f *UpdateOrgSetting) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { + return validate(errs, ctx.Data, f, ctx.Locale) +} + +type CreateTeam struct { + TeamName string `binding:"Required;AlphaDashDot;MaxSize(30)"` + Description string `binding:"MaxSize(255)"` + Permission string +} + +func (f *CreateTeam) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { + return validate(errs, ctx.Data, f, ctx.Locale) +} diff --git a/modules/auth/repo_form.go b/modules/form/repo.go index 77bd4770..0aadde96 100644 --- a/modules/auth/repo_form.go +++ b/modules/form/repo.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. -package auth +package form import ( "net/url" @@ -22,7 +22,7 @@ import ( // |____|_ /_______ / |____| \_______ /_______ /|___| |____| \_______ /____|_ // ______| // \/ \/ \/ \/ \/ \/ \/ -type CreateRepoForm struct { +type CreateRepo struct { Uid int64 `binding:"Required"` RepoName string `binding:"Required;AlphaDashDot;MaxSize(100)"` Private bool @@ -33,11 +33,11 @@ type CreateRepoForm struct { Readme string } -func (f *CreateRepoForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *CreateRepo) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type MigrateRepoForm struct { +type MigrateRepo struct { CloneAddr string `json:"clone_addr" binding:"Required"` AuthUsername string `json:"auth_username"` AuthPassword string `json:"auth_password"` @@ -48,7 +48,7 @@ type MigrateRepoForm struct { Description string `json:"description" binding:"MaxSize(255)"` } -func (f *MigrateRepoForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *MigrateRepo) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -56,7 +56,7 @@ func (f *MigrateRepoForm) Validate(ctx *macaron.Context, errs binding.Errors) bi // and returns composed URL with needed username and password. // It also checks if given user has permission when remote address // is actually a local path. -func (f MigrateRepoForm) ParseRemoteAddr(user *models.User) (string, error) { +func (f MigrateRepo) ParseRemoteAddr(user *models.User) (string, error) { remoteAddr := strings.TrimSpace(f.CloneAddr) // Remote address can be HTTP/HTTPS/Git URL or local path. @@ -80,7 +80,7 @@ func (f MigrateRepoForm) ParseRemoteAddr(user *models.User) (string, error) { return remoteAddr, nil } -type RepoSettingForm struct { +type RepoSetting struct { RepoName string `binding:"Required;AlphaDashDot;MaxSize(100)"` Description string `binding:"MaxSize(255)"` Website string `binding:"Url;MaxSize(100)"` @@ -102,7 +102,7 @@ type RepoSettingForm struct { EnablePulls bool } -func (f *RepoSettingForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *RepoSetting) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -113,7 +113,7 @@ func (f *RepoSettingForm) Validate(ctx *macaron.Context, errs binding.Errors) bi // |______ / |__| (____ /___| /\___ >___| / // \/ \/ \/ \/ \/ -type ProtectBranchForm struct { +type ProtectBranch struct { Protected bool RequirePullRequest bool EnableWhitelist bool @@ -121,7 +121,7 @@ type ProtectBranchForm struct { WhitelistTeams string } -func (f *ProtectBranchForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *ProtectBranch) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -132,7 +132,7 @@ func (f *ProtectBranchForm) Validate(ctx *macaron.Context, errs binding.Errors) // \__/\ / \___ >___ /___| /___| /\____/|__|_ \ // \/ \/ \/ \/ \/ \/ -type WebhookForm struct { +type Webhook struct { Events string Create bool Push bool @@ -140,51 +140,51 @@ type WebhookForm struct { Active bool } -func (f WebhookForm) PushOnly() bool { +func (f Webhook) PushOnly() bool { return f.Events == "push_only" } -func (f WebhookForm) SendEverything() bool { +func (f Webhook) SendEverything() bool { return f.Events == "send_everything" } -func (f WebhookForm) ChooseEvents() bool { +func (f Webhook) ChooseEvents() bool { return f.Events == "choose_events" } -type NewWebhookForm struct { +type NewWebhook struct { PayloadURL string `binding:"Required;Url"` ContentType int `binding:"Required"` Secret string - WebhookForm + Webhook } -func (f *NewWebhookForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *NewWebhook) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type NewSlackHookForm struct { +type NewSlackHook struct { PayloadURL string `binding:"Required;Url"` Channel string `binding:"Required"` Username string IconURL string Color string - WebhookForm + Webhook } -func (f *NewSlackHookForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *NewSlackHook) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type NewDiscordHookForm struct { +type NewDiscordHook struct { PayloadURL string `binding:"Required;Url"` Username string IconURL string Color string - WebhookForm + Webhook } -func (f *NewDiscordHookForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *NewDiscordHook) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -195,7 +195,7 @@ func (f *NewDiscordHookForm) Validate(ctx *macaron.Context, errs binding.Errors) // |___/____ >____ >____/ \___ > // \/ \/ \/ -type CreateIssueForm struct { +type CreateIssue struct { Title string `binding:"Required;MaxSize(255)"` LabelIDs string `form:"label_ids"` MilestoneID int64 @@ -204,17 +204,17 @@ type CreateIssueForm struct { Files []string } -func (f *CreateIssueForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *CreateIssue) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type CreateCommentForm struct { +type CreateComment struct { Content string Status string `binding:"OmitEmpty;In(reopen,close)"` Files []string } -func (f *CreateCommentForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *CreateComment) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -225,13 +225,13 @@ func (f *CreateCommentForm) Validate(ctx *macaron.Context, errs binding.Errors) // \____|__ /__|____/\___ >____ > |__| \____/|___| /\___ > // \/ \/ \/ \/ \/ -type CreateMilestoneForm struct { +type CreateMilestone struct { Title string `binding:"Required;MaxSize(50)"` Content string Deadline string } -func (f *CreateMilestoneForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *CreateMilestone) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -242,21 +242,21 @@ func (f *CreateMilestoneForm) Validate(ctx *macaron.Context, errs binding.Errors // |_______ (____ /___ /\___ >____/ // \/ \/ \/ \/ -type CreateLabelForm struct { +type CreateLabel struct { ID int64 Title string `binding:"Required;MaxSize(50)" locale:"repo.issues.label_name"` Color string `binding:"Required;Size(7)" locale:"repo.issues.label_color"` } -func (f *CreateLabelForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *CreateLabel) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type InitializeLabelsForm struct { +type InitializeLabels struct { TemplateName string `binding:"Required"` } -func (f *InitializeLabelsForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *InitializeLabels) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -267,7 +267,7 @@ func (f *InitializeLabelsForm) Validate(ctx *macaron.Context, errs binding.Error // |____|_ /\___ >____/\___ >____ /____ >\___ > // \/ \/ \/ \/ \/ \/ -type NewReleaseForm struct { +type NewRelease struct { TagName string `binding:"Required"` Target string `form:"tag_target" binding:"Required"` Title string `binding:"Required"` @@ -276,18 +276,18 @@ type NewReleaseForm struct { Prerelease bool } -func (f *NewReleaseForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *NewRelease) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type EditReleaseForm struct { - Title string `form:"title" binding:"Required"` - Content string `form:"content"` - Draft string `form:"draft"` - Prerelease bool `form:"prerelease"` +type EditRelease struct { + Title string `binding:"Required"` + Content string + Draft string + Prerelease bool } -func (f *EditReleaseForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *EditRelease) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -298,7 +298,7 @@ func (f *EditReleaseForm) Validate(ctx *macaron.Context, errs binding.Errors) bi // \__/\ / |__|__|_ \__| // \/ \/ -type NewWikiForm struct { +type NewWiki struct { OldTitle string Title string `binding:"Required"` Content string `binding:"Required"` @@ -306,7 +306,7 @@ type NewWikiForm struct { } // FIXME: use code generation to generate this method. -func (f *NewWikiForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *NewWiki) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -317,7 +317,7 @@ func (f *NewWikiForm) Validate(ctx *macaron.Context, errs binding.Errors) bindin // /_______ /\____ | |__||__| // \/ \/ -type EditRepoFileForm struct { +type EditRepoFile struct { TreePath string `binding:"Required;MaxSize(500)"` Content string `binding:"Required"` CommitSummary string `binding:"MaxSize(100)` @@ -327,19 +327,19 @@ type EditRepoFileForm struct { LastCommit string } -func (f *EditRepoFileForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *EditRepoFile) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -func (f *EditRepoFileForm) IsNewBrnach() bool { +func (f *EditRepoFile) IsNewBrnach() bool { return f.CommitChoice == "commit-to-new-branch" } -type EditPreviewDiffForm struct { +type EditPreviewDiff struct { Content string } -func (f *EditPreviewDiffForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *EditPreviewDiff) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -351,7 +351,7 @@ func (f *EditPreviewDiffForm) Validate(ctx *macaron.Context, errs binding.Errors // |__| \/ \/ // -type UploadRepoFileForm struct { +type UploadRepoFile struct { TreePath string `binding:MaxSize(500)"` CommitSummary string `binding:"MaxSize(100)` CommitMessage string @@ -360,19 +360,19 @@ type UploadRepoFileForm struct { Files []string } -func (f *UploadRepoFileForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *UploadRepoFile) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -func (f *UploadRepoFileForm) IsNewBrnach() bool { +func (f *UploadRepoFile) IsNewBrnach() bool { return f.CommitChoice == "commit-to-new-branch" } -type RemoveUploadFileForm struct { +type RemoveUploadFile struct { File string `binding:"Required;MaxSize(50)"` } -func (f *RemoveUploadFileForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *RemoveUploadFile) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -383,17 +383,17 @@ func (f *RemoveUploadFileForm) Validate(ctx *macaron.Context, errs binding.Error // /_______ /\___ >____/\___ >__| \___ > // \/ \/ \/ \/ -type DeleteRepoFileForm struct { +type DeleteRepoFile struct { CommitSummary string `binding:"MaxSize(100)` CommitMessage string CommitChoice string `binding:"Required;MaxSize(50)"` NewBranchName string `binding:"AlphaDashDot;MaxSize(100)"` } -func (f *DeleteRepoFileForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *DeleteRepoFile) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -func (f *DeleteRepoFileForm) IsNewBrnach() bool { +func (f *DeleteRepoFile) IsNewBrnach() bool { return f.CommitChoice == "commit-to-new-branch" } diff --git a/modules/auth/user_form.go b/modules/form/user.go index fd39a311..c7d7a3d6 100644 --- a/modules/auth/user_form.go +++ b/modules/form/user.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. -package auth +package form import ( "mime/multipart" @@ -11,7 +11,7 @@ import ( "gopkg.in/macaron.v1" ) -type InstallForm struct { +type Install struct { DbType string `binding:"Required"` DbHost string DbUser string @@ -50,7 +50,7 @@ type InstallForm struct { AdminEmail string `binding:"OmitEmpty;MinSize(3);MaxSize(254);Include(@)" locale:"install.admin_email"` } -func (f *InstallForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *Install) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -61,24 +61,24 @@ func (f *InstallForm) Validate(ctx *macaron.Context, errs binding.Errors) bindin // \____|__ /______/ |____| \___|_ / // \/ \/ -type RegisterForm struct { +type Register struct { UserName string `binding:"Required;AlphaDashDot;MaxSize(35)"` Email string `binding:"Required;Email;MaxSize(254)"` Password string `binding:"Required;MaxSize(255)"` Retype string } -func (f *RegisterForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *Register) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type SignInForm struct { +type SignIn struct { UserName string `binding:"Required;MaxSize(254)"` Password string `binding:"Required;MaxSize(255)"` Remember bool } -func (f *SignInForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *SignIn) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -89,7 +89,7 @@ func (f *SignInForm) Validate(ctx *macaron.Context, errs binding.Errors) binding // /_______ //_______ / |____| |____| |___\____|__ /\______ /_______ / // \/ \/ \/ \/ \/ -type UpdateProfileForm struct { +type UpdateProfile struct { Name string `binding:"OmitEmpty;MaxSize(35)"` FullName string `binding:"MaxSize(100)"` Email string `binding:"Required;Email;MaxSize(254)"` @@ -97,7 +97,7 @@ type UpdateProfileForm struct { Location string `binding:"MaxSize(50)"` } -func (f *UpdateProfileForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *UpdateProfile) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } @@ -106,48 +106,48 @@ const ( AVATAR_BYMAIL string = "bymail" ) -type AvatarForm struct { +type Avatar struct { Source string Avatar *multipart.FileHeader Gravatar string `binding:"OmitEmpty;Email;MaxSize(254)"` Federavatar bool } -func (f *AvatarForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *Avatar) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type AddEmailForm struct { +type AddEmail struct { Email string `binding:"Required;Email;MaxSize(254)"` } -func (f *AddEmailForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *AddEmail) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type ChangePasswordForm struct { - OldPassword string `form:"old_password" binding:"Required;MinSize(1);MaxSize(255)"` - Password string `form:"password" binding:"Required;MaxSize(255)"` - Retype string `form:"retype"` +type ChangePassword struct { + OldPassword string `binding:"Required;MinSize(1);MaxSize(255)"` + Password string `binding:"Required;MaxSize(255)"` + Retype string } -func (f *ChangePasswordForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *ChangePassword) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type AddSSHKeyForm struct { +type AddSSHKey struct { Title string `binding:"Required;MaxSize(50)"` Content string `binding:"Required"` } -func (f *AddSSHKeyForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *AddSSHKey) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } -type NewAccessTokenForm struct { +type NewAccessToken struct { Name string `binding:"Required"` } -func (f *NewAccessTokenForm) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { +func (f *NewAccessToken) Validate(ctx *macaron.Context, errs binding.Errors) binding.Errors { return validate(errs, ctx.Data, f, ctx.Locale) } |