#1070 Clearer error message for illegal characters

This commit is contained in:
Unknwon committed 2015-03-26 17:11:47 -04:00
1 parent d76f11c6f1
commit 698b9e2acc
15 files changed
+275 -167

No files matched your search

+10 -4
View File
@@ -157,9 +157,6 @@ org_name_been_taken = Organization name has been already taken.
team_name_been_taken = Team name has been already taken. team_name_been_taken = Team name has been already taken.
email_been_used = E-mail address has been already used. email_been_used = E-mail address has been already used.
ssh_key_been_used = Public key name or content has been used. ssh_key_been_used = Public key name or content has been used.
illegal_username = Your username contains illegal characters.
illegal_repo_name = Repository name contains illegal characters.
illegal_org_name = Organization name contains illegal characters.
illegal_team_name = Team name contains illegal characters. illegal_team_name = Team name contains illegal characters.
username_password_incorrect = Username or password is not correct. username_password_incorrect = Username or password is not correct.
enterred_invalid_repo_name = Please make sure that the repository name you entered is correct. enterred_invalid_repo_name = Please make sure that the repository name you entered is correct.
@@ -190,6 +187,9 @@ followers = Followers
starred = Starred starred = Starred
following = Following following = Following
form.name_reserved = Username '%s' is reserved.
form.name_pattern_not_allowed = Username pattern '%s' is not allowed.
[settings] [settings]
profile = Profile profile = Profile
password = Password password = Password
@@ -290,6 +290,9 @@ create_repo = Create Repository
default_branch = Default Branch default_branch = Default Branch
mirror_interval = Mirror Interval (hour) mirror_interval = Mirror Interval (hour)
form.name_reserved = Repository name '%s' is reserved.
form.name_pattern_not_allowed = Repository name pattern '%s' is not allowed.
need_auth = Need Authorization need_auth = Need Authorization
migrate_type = Migration Type migrate_type = Migration Type
migrate_type_helper = This repository will be a <span class="label label-blue label-radius">mirror</span> migrate_type_helper = This repository will be a <span class="label label-blue label-radius">mirror</span>
@@ -440,6 +443,9 @@ team_name_helper = You'll use this name to mention this team in conversations.
team_desc_helper = What is this team all about? team_desc_helper = What is this team all about?
team_permission_desc = What permission level should this team have? team_permission_desc = What permission level should this team have?
form.name_reserved = Organization name '%s' is reserved.
form.name_pattern_not_allowed = Organization name pattern '%s' is not allowed.
settings = Settings settings = Settings
settings.options = Options settings.options = Options
settings.full_name = Full Name settings.full_name = Full Name
@@ -449,7 +455,7 @@ settings.update_settings = Update Settings
settings.change_orgname = Organization Name Changed settings.change_orgname = Organization Name Changed
settings.change_orgname_desc = Organization name has been changed. This will affect how links relate to the organization. Do you want to continue? settings.change_orgname_desc = Organization name has been changed. This will affect how links relate to the organization. Do you want to continue?
settings.update_setting_success = Organization settings were successfully updated. settings.update_setting_success = Organization settings were successfully updated.
settings.delete = Delete Organization settings.delete = Delete Organization
settings.delete_account = Delete This Organization settings.delete_account = Delete This Organization
settings.delete_prompt = The organization will be permanently removed, and this <strong>CANNOT</strong> be undone! settings.delete_prompt = The organization will be permanently removed, and this <strong>CANNOT</strong> be undone!
settings.confirm_delete_account = Confirm Deletion settings.confirm_delete_account = Confirm Deletion
+52
View File
@@ -8,6 +8,32 @@ import (
"fmt" "fmt"
) )
type ErrNameReserved struct {
Name string
}
func IsErrNameReserved(err error) bool {
_, ok := err.(ErrNameReserved)
return ok
}
func (err ErrNameReserved) Error() string {
return fmt.Sprintf("name is reserved: [name: %s]", err.Name)
}
type ErrNamePatternNotAllowed struct {
Pattern string
}
func IsErrNamePatternNotAllowed(err error) bool {
_, ok := err.(ErrNamePatternNotAllowed)
return ok
}
func (err ErrNamePatternNotAllowed) Error() string {
return fmt.Sprintf("name pattern is not allowed: [pattern: %s]", err.Pattern)
}
// ____ ___ // ____ ___
// | | \______ ___________ // | | \______ ___________
// | | / ___// __ \_ __ \ // | | / ___// __ \_ __ \
@@ -15,6 +41,32 @@ import (
// |______//____ >\___ >__| // |______//____ >\___ >__|
// \/ \/ // \/ \/
type ErrUserAlreadyExist struct {
Name string
}
func IsErrUserAlreadyExist(err error) bool {
_, ok := err.(ErrUserAlreadyExist)
return ok
}
func (err ErrUserAlreadyExist) Error() string {
return fmt.Sprintf("user already exists: [name: %s]", err.Name)
}
type ErrEmailAlreadyUsed struct {
Email string
}
func IsErrEmailAlreadyUsed(err error) bool {
_, ok := err.(ErrEmailAlreadyUsed)
return ok
}
func (err ErrEmailAlreadyUsed) Error() string {
return fmt.Sprintf("e-mail has been used: [email: %s]", err.Email)
}
type ErrUserOwnRepos struct { type ErrUserOwnRepos struct {
UID int64 UID int64
} }
+19 -19
View File
@@ -105,23 +105,23 @@ func IsOrgEmailUsed(email string) (bool, error) {
} }
// CreateOrganization creates record of a new organization. // CreateOrganization creates record of a new organization.
func CreateOrganization(org, owner *User) (*User, error) { func CreateOrganization(org, owner *User) (err error) {
if !IsLegalName(org.Name) { if err = IsUsableName(org.Name); err != nil {
return nil, ErrUserNameIllegal return err
} }
isExist, err := IsUserExist(0, org.Name) isExist, err := IsUserExist(0, org.Name)
if err != nil { if err != nil {
return nil, err return err
} else if isExist { } else if isExist {
return nil, ErrUserAlreadyExist return ErrUserAlreadyExist{org.Name}
} }
isExist, err = IsOrgEmailUsed(org.Email) isExist, err = IsOrgEmailUsed(org.Email)
if err != nil { if err != nil {
return nil, err return err
} else if isExist { } else if isExist {
return nil, ErrEmailAlreadyUsed return ErrEmailAlreadyUsed{org.Email}
} }
org.LowerName = strings.ToLower(org.Name) org.LowerName = strings.ToLower(org.Name)
@@ -135,11 +135,11 @@ func CreateOrganization(org, owner *User) (*User, error) {
sess := x.NewSession() sess := x.NewSession()
defer sessionRelease(sess) defer sessionRelease(sess)
if err = sess.Begin(); err != nil { if err = sess.Begin(); err != nil {
return nil, err return err
} }
if _, err = sess.Insert(org); err != nil { if _, err = sess.Insert(org); err != nil {
return nil, err return fmt.Errorf("insert organization: %v", err)
} }
// Create default owner team. // Create default owner team.
@@ -151,7 +151,7 @@ func CreateOrganization(org, owner *User) (*User, error) {
NumMembers: 1, NumMembers: 1,
} }
if _, err = sess.Insert(t); err != nil { if _, err = sess.Insert(t); err != nil {
return nil, err return fmt.Errorf("insert owner team: %v", err)
} }
// Add initial creator to organization and owner team. // Add initial creator to organization and owner team.
@@ -162,7 +162,7 @@ func CreateOrganization(org, owner *User) (*User, error) {
NumTeams: 1, NumTeams: 1,
} }
if _, err = sess.Insert(ou); err != nil { if _, err = sess.Insert(ou); err != nil {
return nil, err return fmt.Errorf("insert org-user relation: %v", err)
} }
tu := &TeamUser{ tu := &TeamUser{
@@ -171,14 +171,14 @@ func CreateOrganization(org, owner *User) (*User, error) {
TeamID: t.ID, TeamID: t.ID,
} }
if _, err = sess.Insert(tu); err != nil { if _, err = sess.Insert(tu); err != nil {
return nil, err return fmt.Errorf("insert team-user relation: %v", err)
} }
if err = os.MkdirAll(UserPath(org.Name), os.ModePerm); err != nil { if err = os.MkdirAll(UserPath(org.Name), os.ModePerm); err != nil {
return nil, err return fmt.Errorf("create directory: %v", err)
} }
return org, sess.Commit() return sess.Commit()
} }
// GetOrgByName returns organization by given name. // GetOrgByName returns organization by given name.
@@ -594,9 +594,9 @@ func (t *Team) RemoveRepository(repoID int64) error {
// NewTeam creates a record of new team. // NewTeam creates a record of new team.
// It's caller's responsibility to assign organization ID. // It's caller's responsibility to assign organization ID.
func NewTeam(t *Team) error { func NewTeam(t *Team) (err error) {
if !IsLegalName(t.Name) { if err = IsUsableName(t.Name); err != nil {
return ErrTeamNameIllegal return err
} }
has, err := x.Id(t.OrgID).Get(new(User)) has, err := x.Id(t.OrgID).Get(new(User))
@@ -670,8 +670,8 @@ func GetTeamById(teamId int64) (*Team, error) {
// UpdateTeam updates information of team. // UpdateTeam updates information of team.
func UpdateTeam(t *Team, authChanged bool) (err error) { func UpdateTeam(t *Team, authChanged bool) (err error) {
if !IsLegalName(t.Name) { if err = IsUsableName(t.Name); err != nil {
return ErrTeamNameIllegal return err
} }
if len(t.Description) > 255 { if len(t.Description) > 255 {
+43 -26
View File
@@ -37,7 +37,6 @@ const (
var ( var (
ErrRepoAlreadyExist = errors.New("Repository already exist") ErrRepoAlreadyExist = errors.New("Repository already exist")
ErrRepoFileNotExist = errors.New("Repository file does not exist") ErrRepoFileNotExist = errors.New("Repository file does not exist")
ErrRepoNameIllegal = errors.New("Repository name contains illegal characters")
ErrRepoFileNotLoaded = errors.New("Repository file not loaded") ErrRepoFileNotLoaded = errors.New("Repository file not loaded")
ErrMirrorNotExist = errors.New("Mirror does not exist") ErrMirrorNotExist = errors.New("Mirror does not exist")
ErrInvalidReference = errors.New("Invalid reference specified") ErrInvalidReference = errors.New("Invalid reference specified")
@@ -223,12 +222,12 @@ func (repo *Repository) DescriptionHtml() template.HTML {
} }
// IsRepositoryExist returns true if the repository with given name under user has already existed. // IsRepositoryExist returns true if the repository with given name under user has already existed.
func IsRepositoryExist(u *User, repoName string) bool { func IsRepositoryExist(u *User, repoName string) (bool, error) {
has, _ := x.Get(&Repository{ has, err := x.Get(&Repository{
OwnerId: u.Id, OwnerId: u.Id,
LowerName: strings.ToLower(repoName), LowerName: strings.ToLower(repoName),
}) })
return has && com.IsDir(RepoPath(u.Name, repoName)) return has && com.IsDir(RepoPath(u.Name, repoName)), err
} }
// CloneLink represents different types of clone URLs of repository. // CloneLink represents different types of clone URLs of repository.
@@ -253,24 +252,27 @@ func (repo *Repository) CloneLink() (cl CloneLink, err error) {
} }
var ( var (
illegalEquals = []string{"debug", "raw", "install", "api", "avatar", "user", "org", "help", "stars", "issues", "pulls", "commits", "repo", "template", "admin", "new"} reservedNames = []string{"debug", "raw", "install", "api", "avatar", "user", "org", "help", "stars", "issues", "pulls", "commits", "repo", "template", "admin", "new"}
illegalSuffixs = []string{".git", ".keys"} reservedPatterns = []string{"*.git", "*.keys"}
) )
// IsLegalName returns false if name contains illegal characters. // IsUsableName checks if name is reserved or pattern of name is not allowed.
func IsLegalName(repoName string) bool { func IsUsableName(name string) error {
repoName = strings.ToLower(repoName) name = strings.ToLower(name)
for _, char := range illegalEquals { for i := range reservedNames {
if repoName == char { if name == reservedNames[i] {
return false return ErrNameReserved{name}
} }
} }
for _, char := range illegalSuffixs {
if strings.HasSuffix(repoName, char) { for _, pat := range reservedPatterns {
return false if pat[0] == '*' && strings.HasSuffix(name, pat[1:]) ||
(pat[len(pat)-1] == '*' && strings.HasPrefix(name, pat[:len(pat)-1])) {
return ErrNamePatternNotAllowed{pat}
} }
} }
return true
return nil
} }
// Mirror represents a mirror information of repository. // Mirror represents a mirror information of repository.
@@ -504,11 +506,14 @@ func initRepository(e Engine, repoPath string, u *User, repo *Repository, initRe
// CreateRepository creates a repository for given user or organization. // CreateRepository creates a repository for given user or organization.
func CreateRepository(u *User, name, desc, lang, license string, isPrivate, isMirror, initReadme bool) (_ *Repository, err error) { func CreateRepository(u *User, name, desc, lang, license string, isPrivate, isMirror, initReadme bool) (_ *Repository, err error) {
if !IsLegalName(name) { if err = IsUsableName(name); err != nil {
return nil, ErrRepoNameIllegal return nil, err
} }
if IsRepositoryExist(u, name) { has, err := IsRepositoryExist(u, name)
if err != nil {
return nil, fmt.Errorf("IsRepositoryExist: %v", err)
} else if has {
return nil, ErrRepoAlreadyExist return nil, ErrRepoAlreadyExist
} }
@@ -619,7 +624,10 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
} }
// Check if new owner has repository with same name. // Check if new owner has repository with same name.
if IsRepositoryExist(newOwner, repo.Name) { has, err := IsRepositoryExist(newOwner, repo.Name)
if err != nil {
return fmt.Errorf("IsRepositoryExist: %v", err)
} else if has {
return ErrRepoAlreadyExist return ErrRepoAlreadyExist
} }
@@ -727,16 +735,22 @@ func TransferOwnership(u *User, newOwnerName string, repo *Repository) error {
} }
// ChangeRepositoryName changes all corresponding setting from old repository name to new one. // ChangeRepositoryName changes all corresponding setting from old repository name to new one.
func ChangeRepositoryName(userName, oldRepoName, newRepoName string) (err error) { func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error) {
userName = strings.ToLower(userName)
oldRepoName = strings.ToLower(oldRepoName) oldRepoName = strings.ToLower(oldRepoName)
newRepoName = strings.ToLower(newRepoName) newRepoName = strings.ToLower(newRepoName)
if !IsLegalName(newRepoName) { if err = IsUsableName(newRepoName); err != nil {
return ErrRepoNameIllegal return err
}
has, err := IsRepositoryExist(u, newRepoName)
if err != nil {
return fmt.Errorf("IsRepositoryExist: %v", err)
} else if has {
return ErrRepoAlreadyExist
} }
// Change repository directory name. // Change repository directory name.
return os.Rename(RepoPath(userName, oldRepoName), RepoPath(userName, newRepoName)) return os.Rename(RepoPath(u.LowerName, oldRepoName), RepoPath(u.LowerName, newRepoName))
} }
func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err error) { func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err error) {
@@ -1340,7 +1354,10 @@ func IsStaring(uid, repoId int64) bool {
// \/ \/ // \/ \/
func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Repository, err error) { func ForkRepository(u *User, oldRepo *Repository, name, desc string) (_ *Repository, err error) {
if IsRepositoryExist(u, name) { has, err := IsRepositoryExist(u, name)
if err != nil {
return nil, fmt.Errorf("IsRepositoryExist: %v", err)
} else if has {
return nil, ErrRepoAlreadyExist return nil, ErrRepoAlreadyExist
} }
+16 -11
View File
@@ -36,10 +36,8 @@ const (
) )
var ( var (
ErrUserAlreadyExist = errors.New("User already exist")
ErrUserNotExist = errors.New("User does not exist") ErrUserNotExist = errors.New("User does not exist")
ErrUserNotKeyOwner = errors.New("User does not the owner of public key") ErrUserNotKeyOwner = errors.New("User does not the owner of public key")
ErrEmailAlreadyUsed = errors.New("E-mail already used")
ErrEmailNotExist = errors.New("E-mail does not exist") ErrEmailNotExist = errors.New("E-mail does not exist")
ErrEmailNotActivated = errors.New("E-mail address has not been activated") ErrEmailNotActivated = errors.New("E-mail address has not been activated")
ErrUserNameIllegal = errors.New("User name contains illegal characters") ErrUserNameIllegal = errors.New("User name contains illegal characters")
@@ -273,23 +271,23 @@ func GetUserSalt() string {
} }
// CreateUser creates record of a new user. // CreateUser creates record of a new user.
func CreateUser(u *User) error { func CreateUser(u *User) (err error) {
if !IsLegalName(u.Name) { if err = IsUsableName(u.Name); err != nil {
return ErrUserNameIllegal return err
} }
isExist, err := IsUserExist(0, u.Name) isExist, err := IsUserExist(0, u.Name)
if err != nil { if err != nil {
return err return err
} else if isExist { } else if isExist {
return ErrUserAlreadyExist return ErrUserAlreadyExist{u.Name}
} }
isExist, err = IsEmailUsed(u.Email) isExist, err = IsEmailUsed(u.Email)
if err != nil { if err != nil {
return err return err
} else if isExist { } else if isExist {
return ErrEmailAlreadyUsed return ErrEmailAlreadyUsed{u.Email}
} }
u.LowerName = strings.ToLower(u.Name) u.LowerName = strings.ToLower(u.Name)
@@ -392,8 +390,15 @@ func VerifyActiveEmailCode(code, email string) *EmailAddress {
// ChangeUserName changes all corresponding setting from old user name to new one. // ChangeUserName changes all corresponding setting from old user name to new one.
func ChangeUserName(u *User, newUserName string) (err error) { func ChangeUserName(u *User, newUserName string) (err error) {
if !IsLegalName(newUserName) { if err = IsUsableName(newUserName); err != nil {
return ErrUserNameIllegal return err
}
isExist, err := IsUserExist(0, newUserName)
if err != nil {
return err
} else if isExist {
return ErrUserAlreadyExist{newUserName}
} }
return os.Rename(UserPath(u.LowerName), UserPath(newUserName)) return os.Rename(UserPath(u.LowerName), UserPath(newUserName))
@@ -405,7 +410,7 @@ func UpdateUser(u *User) error {
if err != nil { if err != nil {
return err return err
} else if has { } else if has {
return ErrEmailAlreadyUsed return ErrEmailAlreadyUsed{u.Email}
} }
u.LowerName = strings.ToLower(u.Name) u.LowerName = strings.ToLower(u.Name)
@@ -641,7 +646,7 @@ func AddEmailAddress(email *EmailAddress) error {
if err != nil { if err != nil {
return err return err
} else if used { } else if used {
return ErrEmailAlreadyUsed return ErrEmailAlreadyUsed{email.Email}
} }
_, err = x.Insert(email) _, err = x.Insert(email)
+38 -38
View File
@@ -76,7 +76,7 @@ func conf_app_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/app.ini", size: 8720, mode: os.FileMode(420), modTime: time.Unix(1427288024, 0)} info := bindata_file_info{name: "conf/app.ini", size: 8720, mode: os.FileMode(420), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -96,7 +96,7 @@ func conf_gitignore_android() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/Android", size: 270, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/Android", size: 270, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -116,7 +116,7 @@ func conf_gitignore_c() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/C", size: 143, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/C", size: 143, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -136,7 +136,7 @@ func conf_gitignore_c_sharp() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/C Sharp", size: 1520, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/C Sharp", size: 1520, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -156,7 +156,7 @@ func conf_gitignore_c_() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/C++", size: 126, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/C++", size: 126, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -176,7 +176,7 @@ func conf_gitignore_google_go() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/Google Go", size: 251, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/Google Go", size: 251, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -196,7 +196,7 @@ func conf_gitignore_java() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/Java", size: 188, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/Java", size: 188, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -216,7 +216,7 @@ func conf_gitignore_objective_c() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/Objective-C", size: 280, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/Objective-C", size: 280, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -236,7 +236,7 @@ func conf_gitignore_python() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/Python", size: 314, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/Python", size: 314, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -256,7 +256,7 @@ func conf_gitignore_ruby() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/gitignore/Ruby", size: 158, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/gitignore/Ruby", size: 158, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -276,7 +276,7 @@ func conf_license_affero_gpl() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/Affero GPL", size: 34499, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/Affero GPL", size: 34499, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -296,7 +296,7 @@ func conf_license_apache_v2_license() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/Apache v2 License", size: 11323, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/Apache v2 License", size: 11323, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -316,7 +316,7 @@ func conf_license_artistic_license_2_0() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/Artistic License 2.0", size: 8887, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/Artistic License 2.0", size: 8887, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -336,7 +336,7 @@ func conf_license_bsd_3_clause_license() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/BSD (3-Clause) License", size: 1473, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/BSD (3-Clause) License", size: 1473, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -356,7 +356,7 @@ func conf_license_bsd_license() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/BSD license", size: 1280, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/BSD license", size: 1280, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -376,7 +376,7 @@ func conf_license_cc0_1_0_universal() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/CC0 1.0 Universal", size: 6554, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/CC0 1.0 Universal", size: 6554, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -396,7 +396,7 @@ func conf_license_eclipse_public_license_v1_0() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/Eclipse Public License v1.0", size: 11513, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/Eclipse Public License v1.0", size: 11513, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -416,7 +416,7 @@ func conf_license_gpl_v2() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/GPL v2", size: 18025, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/GPL v2", size: 18025, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -436,7 +436,7 @@ func conf_license_gpl_v3() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/GPL v3", size: 35120, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/GPL v3", size: 35120, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -456,7 +456,7 @@ func conf_license_isc_license() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/ISC license", size: 716, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/ISC license", size: 716, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -476,7 +476,7 @@ func conf_license_lgpl_v2_1() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/LGPL v2.1", size: 26442, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/LGPL v2.1", size: 26442, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -496,7 +496,7 @@ func conf_license_lgpl_v3() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/LGPL v3", size: 7631, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/LGPL v3", size: 7631, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -516,7 +516,7 @@ func conf_license_mit_license() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/MIT License", size: 1065, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/MIT License", size: 1065, mode: os.FileMode(420), modTime: time.Unix(1398226579, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -536,7 +536,7 @@ func conf_license_mozilla_public_license_version_2_0() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/license/Mozilla Public License Version 2.0", size: 15920, mode: os.FileMode(420), modTime: time.Unix(1424928463, 0)} info := bindata_file_info{name: "conf/license/Mozilla Public License Version 2.0", size: 15920, mode: os.FileMode(420), modTime: time.Unix(1409469215, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -556,7 +556,7 @@ func conf_locale_translators() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/TRANSLATORS", size: 443, mode: os.FileMode(420), modTime: time.Unix(1426831108, 0)} info := bindata_file_info{name: "conf/locale/TRANSLATORS", size: 443, mode: os.FileMode(420), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -576,12 +576,12 @@ func conf_locale_locale_de_de_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_de-DE.ini", size: 33066, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_de-DE.ini", size: 33066, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
var _conf_locale_locale_en_us_ini = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xef\x92\xdb\xb8\xae\xe7\x77\x3d\x85\x66\xb6\xb2\xc9\x54\x75\x9c\x9a\x73\xaa\xb6\xb6\xa6\x92\x4c\xf5\x74\x26\x7f\xce\x4d\xa7\xfb\xa6\x3b\xe7\xec\xdd\x54\x4a\x47\xb6\x64\x5b\xb7\x6d\xc9\x47\x92\xdb\xe3\xf3\x69\x5f\x63\x5f\x6f\x9f\x64\x81\x1f\x00\xfe\x91\xe4\x4e\x66\xee\xd6\xde\x2f\xdd\x14\x09\x92\x20\x08\x82\x00\x08\xd2\xf9\x6e\x97\x15\x65\xb7\x48\x5f\xa4\xe7\xe9\x2e\xaf\xea\x4d\xd9\x75\x69\x57\x6e\x96\x4f\xd7\x4d\xd7\x97\x45\xfa\xa6\xea\xe9\xbb\xbd\xaf\x16\x65\x92\xac\x9b\x6d\x49\xa0\x6f\xe9\x5f\x52\xe4\xdd\x7a\xde\xe4\x6d\x41\x19\xaf\x2c\x9d\x94\xbf\xed\x36\x4d\xcb\x40\xbf\x4a\x2a\x59\x97\x9b\x1d\xd7\xa1\x7f\x49\x57\xad\xea\xac\xaa\xe9\xf3\x86\x52\xe9\xbb\x3a\xe9\x9a\x45\x95\x6f\xb2\xa0\x00\x19\x56\xfe\x53\xfa\xa7\xba\x48\x6f\xfa\x72\x97\x3e\xef\xb6\xf9\x66\xf3\x32\xef\x50\xa5\x2f\xd3\x7c\xb1\x68\xf6\x75\xff\xfc\x99\x14\x48\xe3\xcd\xbe\xb7\xd6\xaf\xf6\xbd\xe4\xed\x77\x96\xf5\x69\x97\xb4\xe5\xaa\xa2\x81\xb5\x94\xf5\x51\x93\xc9\xa1\x9c\x77\x55\xcf\x48\xff\x4d\x52\xc9\x7d\xd9\x76\x55\xc3\xf8\xfc\x55\x52\xc9\x2e\x5f\x31\xc0\x35\xfd\x4b\xfa\x72\xbb\xdb\xe4\xa8\x70\xab\xc9\x64\x93\xd7\xab\xbd\xc0\xbc\xd7\x64\x92\xec\x89\x72\x75\x0e\x9a\x7d\xd2\x64\x52\x6e\xf3\x6a\xc3\xf4\x79\xca\x09\x6a\xb7\xeb\x0e\x0d\xa8\x78\xad\x49\xc2\x31\xeb\x8f\xbb\x12\x28\x3e\xbd\xa5\x54\xb2\xc8\x77\xfd\x62\x9d\x53\xce\x85\xa4\x12\x02\xda\x35\x84\x6b\xd3\x1e\x01\x67\x1f\x49\xd3\xae\xf2\xba\xfa\x67\xde\x0b\xfe\x57\xc1\x67\xb2\xad\xda\xb6\xe1\xa1\x5f\x22\x91\xd4\xe5\x21\xe3\x76\x28\xe7\x43\x79\x08\x5b\xe1\x92\x6d\xb5\x6a\x65\x94\x5c\x78\x89\x2f\x6e\x85\xcb\x96\x4d\x7b\xa7\x05\xaf\x39\x39\xa8\x4a\x48\x68\x69\xdc\x7f\x5e\x13\x5d\xb4\xf4\x12\x1f\x11\x40\x97\xe4\xc5\xb6\xaa\xb3\x5d\x5e\x97\x4c\xa3\x73\xfe\x22\xba\xd0\x57\xa2\xd3\x9d\x75\x65\xdf\x57\xf5\xaa\xe3\x62\xc9\x4a\x6f\x34\x2b\x09\xca\x5c\x1e\xe3\xd3\x65\xcb\xb2\x2c\x04\xa3\x2e\x7d\x4d\xe9\x64\xb7\xdf\x6c\x68\xec\xff\xd8\x97\x5d\xcf\xf0\xd7\xf4\x4d\xa3\x90\xef\xa4\xea\x3a\x4a\x50\xf6\x3b\x24\x12\x9a\x80\x7a\x01\x94\x2e\x90\x48\x92\xcf\x5d\x99\xb7\x8b\xf5\x97\x44\xfe\xa3\x47\x4e\xcc\x66\xb3\x93\x53\xc3\xec\xa0\xac\x20\x3d\x58\x07\xc9\xa2\x29\xf8\xe3\x82\xfe\x51\xd3\x55\xdd\xf5\xc4\xd2\x5f\x12\x4d\x30\x98\xa4\x84\x8c\x7d\xd5\x6f\x4a\x9f\x89\xf5\xd1\xf1\x3c\xa4\xaf\xab\xb6\xeb\x9f\xf6\x15\xb1\xdc\xc7\x7d\x9d\xf0\xf8\x88\x9d\xb3\x62\x6e\xab\xfc\x4d\x43\xd4\x41\x76\x4b\xe3\xbb\x3c\xde\xfc\xeb\xfb\xb3\xf4\x9a\x96\xfa\xaa\x2d\x29\x9d\x52\x1b\xf4\x8f\xea\xfc\x79\x96\x50\x2d\x65\xc3\x57\x79\x9f\xcf\xf3\xae\x4c\xc1\x8c\x2c\x19\x20\x05\xba\x3e\x1a\xd2\x14\x2b\x53\x1b\xba\x00\x5c\x1b\x1f\x78\x15\x50\x3e\x0b\x06\x54\xbe\xde\x94\x9c\x4f\x4d\xa5\xef\x3e\x7c\xb8\x7a\xf5\x4b\x5a\xd6\xab\xaa\x2e\xd3\x43\xd5\xaf\xd3\x7d\xbf\xfc\xef\xd9\xaa\xac\xcb\x96\xe4\xc4\xa2\x4a\x89\xf9\x5b\x9a\xe7\x94\x38\x50\xf0\x9f\x25\x5d\xb7\xc9\xb6\x42\xc1\x9b\x9b\xf7\xe9\x25\x53\x71\x97\xf7\x6b\x20\xd2\xaf\x93\xee\x1f\x1b\xa6\x82\xeb\xf0\x76\x5d\xa6\xcb\x8a\x48\x08\xa0\x66\x69\x43\x4e\x0b\xc5\x71\x96\x58\x87\x46\xea\x37\xf2\xed\xd8\x8a\x6b\x31\x2d\x31\xd7\x99\x76\xe6\xa7\x3a\xfd\xd8\x34\xbd\x74\xee\x00\x7c\xff\xe7\x34\x67\x2c\x57\xdb\x72\xdb\xd0\xfa\x72\xec\x52\xd1\x94\x1c\x2a\x2a\x9c\x97\x69\x97\xdf\x13\xc7\xf6\x4d\xda\xaf\xab\x2e\x2d\x68\xba\x16\xdc\x30\x31\xd7\x9e\x24\x9a\x50\x9d\xa6\x58\x28\x6f\x79\xf1\x10\x01\xb5\xdd\xd3\x64\xad\xa9\x31\x96\x97\x2c\xdc\xa9\xc9\x29\x3c\xd3\x9c\x04\x2d\xb5\x83\x51\xd1\xdc\x37\x24\x9d\x58\x7e\xbc\x42\x42\xbf\xc3\xf6\x09\xab\x7c\xb9\x24\xac\x3a\x22\xfa\xdb\x74\xb1\x69\x68\xc6\x3e\x7d\x7c\x4f\x95\xd7\x7d\xbf\xcb\x76\x4d\x0b\x2e\xb9\xbd\xbd\x26\x06\x6b\x7b\x9f\x1b\xcc\x3c\xc3\xd4\xfb\xed\x9c\xbe\x0e\xeb\x8a\x96\x11\x6d\x48\x9b\x6a\x21\xc2\x0b\xa4\xd8\xb0\x88\xae\xd3\xa6\x9e\x25\xbc\x59\xed\x5b\xc8\x85\x00\x8a\xba\xb4\x92\x13\xe8\x31\x0a\xcf\xf8\xcf\x8d\xc7\x12\xc3\xed\x68\x1f\x3b\xac\x4b\xda\xae\x68\xa8\x25\xe4\xf1\x4c\xe4\xb3\x9b\x77\x91\xd2\x34\xed\xd8\x01\xfd\xf4\x3f\xb9\xda\x71\xef\xf9\xe6\x87\xa4\xdb\xd2\xb8\x74\x4d\xdc\x5c\xd2\x68\xb1\x30\xb8\x1a\x4d\x88\xce\xd4\x4d\x59\x17\x94\x50\x99\xaf\x65\xc1\x7a\xd1\x72\xb7\x6c\xea\xa6\xaf\x96\x47\x87\xc5\x07\xfe\xb4\x01\x4f\xe1\x60\xbb\x5a\xb6\x68\xea\x65\xd5\x6e\x19\xf3\x3a\x9f\x53\x65\xdb\xe4\x48\xb6\xa0\xc4\x04\x31\x8d\x51\x3a\xf1\xa0\x97\x3c\xd2\xb0\x2b\x95\xc6\x86\x85\x48\xe3\x91\xd0\x15\xa0\xe1\x36\x67\x82\x7c\x2c\x12\x14\xc5\xb0\x4c\x71\xf3\x30\x52\x7b\xb0\x55\xaa\x34\xcc\x56\x0d\x24\xbc\x49\x3f\x2c\xc3\x9e\xc4\x76\xb6\xaa\xfa\x6c\xc9\xb4\xe5\x36\x5f\x73\x5d\x5e\x3f\x54\x92\x3e\xa6\xa2\xc7\xe9\xa2\xd9\xd2\x0e\x54\xfc\x94\x3e\xba\x57\x99\xf0\x67\x26\x42\x96\xdf\x13\x2c\x48\xf0\x22\xfd\xb7\x66\xdf\xd2\x8a\x14\x91\x64\x6a\x40\xd1\xd0\xca\x24\xc8\xb4\xdb\xef\xc0\xd7\x2a\x30\xce\xd2\x9d\x00\x16\xcd\xa1\xde\x34\x39\x2d\x58\x5a\x77\xcd\x92\x08\xc8\x4a\xcc\xbc\xaa\x73\x5a\x63\xd6\xca\xb2\x6d\xb6\xe9\xa3\xee\x2c\xfd\x70\x75\x0b\xc0\x55\x33\xdf\x57\x9b\xc2\x00\x66\x34\xc2\xfb\x7c\x53\x15\x2c\xaf\x75\x2b\x0b\x05\xa7\x65\x55\x82\xcb\xa2\x69\x59\x28\x60\x34\x56\xfLine truncated var _conf_locale_locale_en_us_ini = []byte("\x1f\x8b\x08\x00\x00\x09\x6e\x88\x00\xff\xc4\x7d\xdd\x92\xdb\x38\xb2\xe6\x3d\x9f\x82\xdd\x1b\x5e\xbb\x23\xca\x72\xcc\x4c\xc4\xc6\x46\x87\xed\x8e\xea\x72\xfb\x67\x8e\xcb\x55\xc7\x55\x9e\xd9\xb3\x0e\x07\x87\x12\x29\x89\xa7\x24\x52\x43\x52\xa5\xd6\x5c\xed\x6b\xec\xeb\xed\x93\x6c\x7e\xf9\x83\x1f\x92\x2a\xdb\x73\x36\xf6\xdc\x54\x81\x40\x02\x48\x24\x12\x89\xcc\x44\x02\xca\x77\xbb\xac\x28\xbb\x45\xfa\x22\x3d\x4f\x77\x79\x55\x6f\xca\xae\x4b\xbb\x72\xb3\x7c\xba\x6e\xba\xbe\x2c\xd2\x37\x55\x4f\xdf\xed\x7d\xb5\x28\x93\x64\xdd\x6c\x4b\x02\x7d\x4b\xff\x92\x22\xef\xd6\xf3\x26\x6f\x0b\xca\x78\x65\xe9\xa4\xfc\x7d\xb7\x69\x5a\x00\xfd\x26\xa9\x64\x5d\x6e\x76\xa8\x43\xff\x92\xae\x5a\xd5\x59\x55\xd3\xe7\x0d\xa5\xd2\x77\x75\xd2\x35\x8b\x2a\xdf\x64\x41\x01\x67\x58\xf9\xcf\xe9\x1f\xeb\x22\xbd\xe9\xcb\x5d\xfa\xbc\xdb\xe6\x9b\xcd\xcb\xbc\xe3\x2a\x7d\x99\xe6\x8b\x45\xb3\xaf\xfb\xe7\xcf\xa4\x40\x1a\x6f\xf6\xbd\xb5\x7e\xb5\xef\x25\x6f\xbf\xb3\xac\x4f\xbb\xa4\x2d\x57\x15\x0d\xac\xa5\xac\x8f\x9a\x4c\x0e\xe5\xbc\xab\x7a\x20\xfd\x57\x49\x25\xf7\x65\xdb\x55\x0d\xf0\xf9\x8b\xa4\x92\x5d\xbe\x02\xc0\x35\xfd\x4b\xfa\x72\xbb\xdb\xe4\x5c\xe1\x56\x93\xc9\x26\xaf\x57\x7b\x81\x79\xaf\xc9\x24\xd9\x13\xe5\xea\x9c\x69\xf6\x49\x93\x49\xb9\xcd\xab\x0d\xe8\xf3\x14\x09\x6a\xb7\xeb\x0e\x0d\x53\xf1\x5a\x93\x84\x63\xd6\x1f\x77\x25\xa3\xf8\xf4\x96\x52\xc9\x22\xdf\xf5\x8b\x75\x4e\x39\x17\x92\x4a\x08\x68\xd7\x10\xae\x4d\x7b\x64\x38\xfb\x48\x9a\x76\x95\xd7\xd5\x3f\xf2\x5e\xf0\xbf\x0a\x3e\x93\x6d\xd5\xb6\x0d\x86\x7e\xc9\x89\xa4\x2e\x0f\x19\xda\xa1\x9c\x0f\xe5\x21\x6c\x05\x25\xdb\x6a\xd5\xca\x28\x51\x78\xc9\x5f\x68\x05\x65\xcb\xa6\xbd\xd3\x82\xd7\x48\x0e\xaa\x12\x12\x5a\x1a\xf7\x9f\xd7\x44\x17\x2d\xbd\xe4\x8f\x08\xa0\x4b\xf2\x62\x5b\xd5\xd9\x2e\xaf\x4b\xd0\xe8\x1c\x5f\x44\x17\xfa\x4a\x74\xba\xb3\xae\xec\xfb\xaa\x5e\x75\x28\x96\xac\xf4\x46\xb3\x92\xa0\xcc\xe5\x01\x9f\x2e\x5b\x96\x65\x21\x18\x75\xe9\x6b\x4a\x27\xbb\xfd\x66\x43\x63\xff\xfb\xbe\xec\x7a\xc0\x5f\xd3\x37\x8d\x42\xbe\x93\xaa\xeb\x28\x41\xd9\xef\x38\x91\xd0\x04\xd4\x0b\x46\xe9\x82\x13\x49\xf2\xb9\x2b\xf3\x76\xb1\xfe\x92\xc8\x7f\xee\x11\x89\xd9\x6c\x76\x72\x6a\xc0\x0e\xca\x0a\xd2\x83\x75\x90\x2c\x9a\x02\x1f\x17\xf4\x8f\x9a\xae\xea\xae\x27\x96\xfe\x92\x68\x02\x60\x92\x12\x32\xf6\x55\xbf\x29\x7d\x26\xaf\x8f\x0e\xf3\x90\xbe\xae\xda\xae\x7f\xda\x57\xc4\x72\x1f\xf7\x75\x82\xf1\x11\x3b\x67\xc5\xdc\x56\xf9\x9b\x86\xa8\xc3\xd9\x2d\x8d\xef\xf2\x78\xf3\xaf\xef\xcf\xd2\x6b\x5a\xea\xab\xb6\xa4\x74\x4a\x6d\xd0\x3f\xaa\xf3\xa7\x59\x42\xb5\x94\x0d\x5f\xe5\x7d\x3e\xcf\xbb\x32\x65\x66\x84\x64\x60\x29\xd0\xf5\xd1\x90\xa6\x58\x99\xda\xd0\x05\xe0\xda\xf8\x80\x55\x40\xf9\x10\x0c\x5c\xf9\x7a\x53\x22\x9f\x9a\x4a\xdf\x7d\xf8\x70\xf5\xea\xd7\xb4\xac\x57\x55\x5d\xa6\x87\xaa\x5f\xa7\xfb\x7e\xf9\xdf\xb3\x55\x59\x97\x2d\xc9\x89\x45\x95\x12\xf3\xb7\x34\xcf\x29\x71\xa0\xe0\x3f\x4b\xba\x6e\x93\x6d\x85\x82\x37\x37\xef\xd3\x4b\x50\x71\x97\xf7\x6b\x46\xa4\x5f\x27\xdd\xdf\x37\xa0\x82\xeb\xf0\x76\x5d\xa6\xcb\x8a\x48\xc8\x40\xcd\xd2\x86\x9c\x16\x8a\xe3\x2c\xb1\x0e\x8d\xd4\x6f\xe4\xdb\xb1\x15\x6a\x81\x96\x3c\xd7\x99\x76\xe6\xa7\x3a\xfd\xd8\x34\xbd\x74\xee\x00\x7c\xff\xe7\x34\x67\x90\xab\x6d\xb9\x6d\x68\x7d\x39\x76\xa9\x68\x4a\x0e\x15\x15\xce\xcb\xb4\xcb\xef\x89\x63\xfb\x26\xed\xd7\x55\x97\x16\x34\x5d\x0b\x34\x4c\xcc\xb5\x27\x89\x26\x54\xa7\x29\x16\xca\x5b\x5e\x3c\x44\x86\xda\xee\x69\xb2\xd6\xd4\x18\xe4\x25\x84\x3b\x35\x39\x85\x67\x9a\x93\xa0\xa5\x76\x78\x54\x34\xf7\x0d\x49\x27\xc8\x8f\x57\x9c\xd0\xef\xb0\x7d\xc2\x2a\x5f\x2e\x09\xab\x8e\x88\xfe\x36\x5d\x6c\x1a\x9a\xb1\x4f\x1f\xdf\x53\xe5\x75\xdf\xef\xb2\x5d\xd3\x32\x97\xdc\xde\x5e\x13\x83\xb5\xbd\xcf\x0d\x66\x1e\x30\xf5\x7e\x3b\xa7\xaf\xc3\xba\xa2\x65\x44\x1b\xd2\xa6\x5a\x88\xf0\x62\x52\x6c\x20\xa2\xeb\xb4\xa9\x67\x09\x36\xab\x7d\xcb\x72\x21\x80\xa2\x2e\xad\xe4\x04\x7a\x40\xe1\x19\xfe\xdc\x78\x2c\x79\xb8\x1d\xed\x63\x87\x75\x49\xdb\x15\x0d\xb5\x64\x79\x3c\x13\xf9\xec\xe6\x5d\xa4\x34\x4d\x3b\xef\x80\x7e\xfa\x9f\x5c\xed\xd0\x7b\xbe\xf9\x29\xe9\xb6\x34\x2e\x5d\x13\x37\x97\x34\x5a\x5e\x18\xa8\x46\x13\xa2\x33\x75\x53\xd6\x05\x25\x54\xe6\x6b\x59\xb0\x5e\xb4\xdc\x2d\x9b\xba\xe9\xab\xe5\xd1\x61\xf1\x01\x9f\x36\xe0\x29\x1c\x6c\x57\xcb\x16\x4d\xbd\xac\xda\x2d\x30\xaf\xf3\x39\x55\xb6\x4d\x8e\x64\x0b\x97\x98\x20\xa6\x31\x4a\x27\x1e\xf4\x12\x23\x0d\xbb\x52\x69\x6c\x58\x88\x34\x1e\x09\x5d\x01\x1a\x6e\x73\x26\xc8\xc7\x22\x41\x51\x0c\xcb\x14\x37\x0f\x23\xb5\x07\x5b\xa5\x4a\xc3\x6c\xd5\xb0\x84\x37\xe9\xc7\xcb\xb0\x27\xb1\x9d\xad\xaa\x3e\x5b\x82\xb6\x68\xf3\x35\xea\x62\xfd\x50\x49\xfa\x98\x8a\x1e\xa7\x8b\x66\x4b\x3b\x50\xf1\x73\xfa\xe8\x5e\x65\xc2\x9f\x40\x84\x2c\xbf\x27\x58\x26\xc1\x8b\xf4\xdf\x9a\x7d\x4b\x2b\x52\x44\x92\xa9\x01\x45\x43\x2b\x93\x20\xd3\x6e\xbf\x63\xbe\x56\x81\x71\x96\xee\x04\xb0\x68\x0e\xf5\xa6\xc9\x69\xc1\xd2\xba\x6b\x96\x44\x40\x28\x31\xf3\xaa\xce\x69\x8d\x59\x2b\xcb\xb6\xd9\xa6\x8f\xba\xb3\xf4\xc3\xd5\x2d\x03\xae\x9a\xf9\xbe\xda\x14\x06\x30\xa3\x11\xde\xe7\x9b\xaa\x80\xbc\xd6\xad\x2c\x14\x9c\x96\x55\x09\x2e\x8b\xa6\x85\x50\xe0\xd1\x58\xc5\x13\xd2\xaLine truncated
func conf_locale_locale_en_us_ini_bytes() ([]byte, error) { func conf_locale_locale_en_us_ini_bytes() ([]byte, error) {
return bindata_read( return bindata_read(
@@ -596,7 +596,7 @@ func conf_locale_locale_en_us_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_en-US.ini", size: 31507, mode: os.FileMode(420), modTime: time.Unix(1427066374, 0)} info := bindata_file_info{name: "conf/locale/locale_en-US.ini", size: 31702, mode: os.FileMode(420), modTime: time.Unix(1427404087, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -616,7 +616,7 @@ func conf_locale_locale_es_es_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_es-ES.ini", size: 34685, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_es-ES.ini", size: 34685, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -636,7 +636,7 @@ func conf_locale_locale_fr_fr_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_fr-FR.ini", size: 34129, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_fr-FR.ini", size: 34129, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -656,7 +656,7 @@ func conf_locale_locale_ja_jp_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_ja-JP.ini", size: 38282, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_ja-JP.ini", size: 38282, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -676,7 +676,7 @@ func conf_locale_locale_lv_lv_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_lv-LV.ini", size: 34671, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_lv-LV.ini", size: 34671, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -696,7 +696,7 @@ func conf_locale_locale_nl_nl_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_nl-NL.ini", size: 32429, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_nl-NL.ini", size: 32429, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -716,7 +716,7 @@ func conf_locale_locale_pl_pl_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_pl-PL.ini", size: 32928, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_pl-PL.ini", size: 32928, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -736,7 +736,7 @@ func conf_locale_locale_pt_br_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_pt-BR.ini", size: 33298, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_pt-BR.ini", size: 33298, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -756,7 +756,7 @@ func conf_locale_locale_ru_ru_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_ru-RU.ini", size: 45970, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_ru-RU.ini", size: 45970, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -776,7 +776,7 @@ func conf_locale_locale_zh_cn_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_zh-CN.ini", size: 30612, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_zh-CN.ini", size: 30612, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
@@ -796,7 +796,7 @@ func conf_locale_locale_zh_hk_ini() (*asset, error) {
return nil, err return nil, err
} }
info := bindata_file_info{name: "conf/locale/locale_zh-HK.ini", size: 30792, mode: os.FileMode(493), modTime: time.Unix(1427079994, 0)} info := bindata_file_info{name: "conf/locale/locale_zh-HK.ini", size: 30792, mode: os.FileMode(493), modTime: time.Unix(1427400843, 0)}
a := &asset{bytes: bytes, info: info} a := &asset{bytes: bytes, info: info}
return a, nil return a, nil
} }
+9 -6
View File
@@ -106,16 +106,19 @@ func NewUserPost(ctx *middleware.Context, form auth.RegisterForm) {
} }
if err := models.CreateUser(u); err != nil { if err := models.CreateUser(u); err != nil {
switch err { switch {
case models.ErrUserAlreadyExist: case models.IsErrUserAlreadyExist(err):
ctx.Data["Err_UserName"] = true ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), USER_NEW, &form) ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), USER_NEW, &form)
case models.ErrEmailAlreadyUsed: case models.IsErrEmailAlreadyUsed(err):
ctx.Data["Err_Email"] = true ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_NEW, &form) ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_NEW, &form)
case models.ErrUserNameIllegal: case models.IsErrNameReserved(err):
ctx.Data["Err_UserName"] = true ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("form.illegal_username"), USER_NEW, &form) ctx.RenderWithErr(ctx.Tr("user.form.name_reserved", err.(models.ErrNameReserved).Name), USER_NEW, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("user.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), USER_NEW, &form)
default: default:
ctx.Handle(500, "CreateUser", err) ctx.Handle(500, "CreateUser", err)
} }
@@ -195,7 +198,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) {
u.AllowGitHook = form.AllowGitHook u.AllowGitHook = form.AllowGitHook
if err := models.UpdateUser(u); err != nil { if err := models.UpdateUser(u); err != nil {
if err == models.ErrEmailAlreadyUsed { if models.IsErrEmailAlreadyUsed(err) {
ctx.Data["Err_Email"] = true ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_EDIT, &form) ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_EDIT, &form)
} else { } else {
+2 -1
View File
@@ -105,7 +105,8 @@ func createRepo(ctx *middleware.Context, owner *models.User, opt api.CreateRepoO
opt.Gitignore, opt.License, opt.Private, false, opt.AutoInit) opt.Gitignore, opt.License, opt.Private, false, opt.AutoInit)
if err != nil { if err != nil {
if err == models.ErrRepoAlreadyExist || if err == models.ErrRepoAlreadyExist ||
err == models.ErrRepoNameIllegal { models.IsErrNameReserved(err) ||
models.IsErrNamePatternNotAllowed(err) {
ctx.JSON(422, &base.ApiJsonErr{err.Error(), base.DOC_URL}) ctx.JSON(422, &base.ApiJsonErr{err.Error(), base.DOC_URL})
} else { } else {
log.Error(4, "CreateRepository: %v", err) log.Error(4, "CreateRepository: %v", err)
+1 -1
View File
@@ -239,7 +239,7 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
// Create admin account. // Create admin account.
if err := models.CreateUser(&models.User{Name: form.AdminName, Email: form.AdminEmail, Passwd: form.AdminPasswd, if err := models.CreateUser(&models.User{Name: form.AdminName, Email: form.AdminEmail, Passwd: form.AdminPasswd,
IsAdmin: true, IsActive: true}); err != nil { IsAdmin: true, IsActive: true}); err != nil {
if err != models.ErrUserAlreadyExist { if !models.IsErrUserAlreadyExist(err) {
setting.InstallLock = false setting.InstallLock = false
ctx.Data["Err_AdminName"] = true ctx.Data["Err_AdminName"] = true
ctx.Data["Err_AdminEmail"] = true ctx.Data["Err_AdminEmail"] = true
+10 -7
View File
@@ -65,19 +65,22 @@ func CreatePost(ctx *middleware.Context, form auth.CreateOrgForm) {
} }
var err error var err error
if org, err = models.CreateOrganization(org, ctx.User); err != nil { if err = models.CreateOrganization(org, ctx.User); err != nil {
switch err { switch {
case models.ErrUserAlreadyExist: case models.IsErrUserAlreadyExist(err):
ctx.Data["Err_OrgName"] = true ctx.Data["Err_OrgName"] = true
ctx.RenderWithErr(ctx.Tr("form.org_name_been_taken"), CREATE, &form) ctx.RenderWithErr(ctx.Tr("form.org_name_been_taken"), CREATE, &form)
case models.ErrEmailAlreadyUsed: case models.IsErrEmailAlreadyUsed(err):
ctx.Data["Err_Email"] = true ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), CREATE, &form) ctx.RenderWithErr(ctx.Tr("form.email_been_used"), CREATE, &form)
case models.ErrUserNameIllegal: case models.IsErrNameReserved(err):
ctx.Data["Err_OrgName"] = true ctx.Data["Err_OrgName"] = true
ctx.RenderWithErr(ctx.Tr("form.illegal_org_name"), CREATE, &form) ctx.RenderWithErr(ctx.Tr("org.form.name_reserved", err.(models.ErrNameReserved).Name), CREATE, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_OrgName"] = true
ctx.RenderWithErr(ctx.Tr("org.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), CREATE, &form)
default: default:
ctx.Handle(500, "CreateUser", err) ctx.Handle(500, "CreateOrganization", err)
} }
return return
} }
+1 -1
View File
@@ -68,7 +68,7 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateOrgSettingForm) {
org.Avatar = base.EncodeMd5(form.Avatar) org.Avatar = base.EncodeMd5(form.Avatar)
org.AvatarEmail = form.Avatar org.AvatarEmail = form.Avatar
if err := models.UpdateUser(org); err != nil { if err := models.UpdateUser(org); err != nil {
if err == models.ErrEmailAlreadyUsed { if models.IsErrEmailAlreadyUsed(err) {
ctx.Data["Err_Email"] = true ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SETTINGS_OPTIONS, &form) ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SETTINGS_OPTIONS, &form)
} else { } else {
+43 -27
View File
@@ -110,14 +110,6 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) {
log.Trace("Repository created: %s/%s", ctxUser.Name, repo.Name) log.Trace("Repository created: %s/%s", ctxUser.Name, repo.Name)
ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + repo.Name) ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + repo.Name)
return return
} else if err == models.ErrRepoAlreadyExist {
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), CREATE, &form)
return
} else if err == models.ErrRepoNameIllegal {
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.illegal_repo_name"), CREATE, &form)
return
} }
if repo != nil { if repo != nil {
@@ -125,7 +117,20 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) {
log.Error(4, "DeleteRepository: %v", errDelete) log.Error(4, "DeleteRepository: %v", errDelete)
} }
} }
ctx.Handle(500, "CreatePost", err)
switch {
case err == models.ErrRepoAlreadyExist:
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), CREATE, &form)
case models.IsErrNameReserved(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), CREATE, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), CREATE, &form)
default:
ctx.Handle(500, "CreatePost", err)
}
} }
func Migrate(ctx *middleware.Context) { func Migrate(ctx *middleware.Context) {
@@ -209,14 +214,6 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName) log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName)
ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + form.RepoName) ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + form.RepoName)
return return
} else if err == models.ErrRepoAlreadyExist {
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), MIGRATE, &form)
return
} else if err == models.ErrRepoNameIllegal {
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.illegal_repo_name"), MIGRATE, &form)
return
} }
if repo != nil { if repo != nil {
@@ -230,7 +227,20 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
ctx.RenderWithErr(ctx.Tr("form.auth_failed", err), MIGRATE, &form) ctx.RenderWithErr(ctx.Tr("form.auth_failed", err), MIGRATE, &form)
return return
} }
ctx.Handle(500, "MigratePost", err)
switch {
case err == models.ErrRepoAlreadyExist:
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), MIGRATE, &form)
case models.IsErrNameReserved(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), MIGRATE, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), MIGRATE, &form)
default:
ctx.Handle(500, "MigratePost", err)
}
} }
func getForkRepository(ctx *middleware.Context) (*models.Repository, error) { func getForkRepository(ctx *middleware.Context) (*models.Repository, error) {
@@ -323,14 +333,6 @@ func ForkPost(ctx *middleware.Context, form auth.CreateRepoForm) {
log.Trace("Repository forked: %s/%s", ctxUser.Name, repo.Name) log.Trace("Repository forked: %s/%s", ctxUser.Name, repo.Name)
ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + repo.Name) ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + repo.Name)
return return
} else if err == models.ErrRepoAlreadyExist {
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), FORK, &form)
return
} else if err == models.ErrRepoNameIllegal {
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.illegal_repo_name"), CREATE, &form)
return
} }
if repo != nil { if repo != nil {
@@ -338,7 +340,21 @@ func ForkPost(ctx *middleware.Context, form auth.CreateRepoForm) {
log.Error(4, "DeleteRepository: %v", errDelete) log.Error(4, "DeleteRepository: %v", errDelete)
} }
} }
ctx.Handle(500, "ForkPost", err)
// FIXME: merge this with other 2 error handling in to one.
switch {
case err == models.ErrRepoAlreadyExist:
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), FORK, &form)
case models.IsErrNameReserved(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), FORK, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), FORK, &form)
default:
ctx.Handle(500, "ForkPost", err)
}
} }
func Action(ctx *middleware.Context) { func Action(ctx *middleware.Context) {
+11 -8
View File
@@ -53,15 +53,18 @@ func SettingsPost(ctx *middleware.Context, form auth.RepoSettingForm) {
newRepoName := form.RepoName newRepoName := form.RepoName
// Check if repository name has been changed. // Check if repository name has been changed.
if ctx.Repo.Repository.Name != newRepoName { if ctx.Repo.Repository.Name != newRepoName {
if models.IsRepositoryExist(ctx.Repo.Owner, newRepoName) { if err := models.ChangeRepositoryName(ctx.Repo.Owner, ctx.Repo.Repository.Name, newRepoName); err != nil {
ctx.Data["Err_RepoName"] = true switch {
ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), SETTINGS_OPTIONS, nil) case err == models.ErrRepoAlreadyExist:
return
} else if err := models.ChangeRepositoryName(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name, newRepoName); err != nil {
if err == models.ErrRepoNameIllegal {
ctx.Data["Err_RepoName"] = true ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("form.illegal_repo_name"), SETTINGS_OPTIONS, nil) ctx.RenderWithErr(ctx.Tr("form.repo_name_been_taken"), SETTINGS_OPTIONS, &form)
} else { case models.IsErrNameReserved(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(models.ErrNameReserved).Name), SETTINGS_OPTIONS, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_RepoName"] = true
ctx.RenderWithErr(ctx.Tr("repo.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), SETTINGS_OPTIONS, &form)
default:
ctx.Handle(500, "ChangeRepositoryName", err) ctx.Handle(500, "ChangeRepositoryName", err)
} }
return return
+8 -5
View File
@@ -249,16 +249,19 @@ func SignUpPost(ctx *middleware.Context, cpt *captcha.Captcha, form auth.Registe
} }
if err := models.CreateUser(u); err != nil { if err := models.CreateUser(u); err != nil {
switch err { switch {
case models.ErrUserAlreadyExist: case models.IsErrUserAlreadyExist(err):
ctx.Data["Err_UserName"] = true ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SIGNUP, &form) ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SIGNUP, &form)
case models.ErrEmailAlreadyUsed: case models.IsErrEmailAlreadyUsed(err):
ctx.Data["Err_Email"] = true ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SIGNUP, &form) ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SIGNUP, &form)
case models.ErrUserNameIllegal: case models.IsErrNameReserved(err):
ctx.Data["Err_UserName"] = true ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("form.illegal_username"), SIGNUP, &form) ctx.RenderWithErr(ctx.Tr("user.form.name_reserved", err.(models.ErrNameReserved).Name), SIGNUP, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("user.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), SIGNUP, &form)
default: default:
ctx.Handle(500, "CreateUser", err) ctx.Handle(500, "CreateUser", err)
} }
+12 -13
View File
@@ -50,21 +50,20 @@ func SettingsPost(ctx *middleware.Context, form auth.UpdateProfileForm) {
// Check if user name has been changed. // Check if user name has been changed.
if ctx.User.Name != form.UserName { if ctx.User.Name != form.UserName {
isExist, err := models.IsUserExist(ctx.User.Id, form.UserName) if err := models.ChangeUserName(ctx.User, form.UserName); err != nil {
if err != nil { switch {
ctx.Handle(500, "IsUserExist", err) case models.IsErrUserAlreadyExist(err):
return ctx.Flash.Error(ctx.Tr("form.username_been_taken"))
} else if isExist {
ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), SETTINGS_PROFILE, &form)
return
} else if err = models.ChangeUserName(ctx.User, form.UserName); err != nil {
switch err {
case models.ErrUserNameIllegal:
ctx.Flash.Error(ctx.Tr("form.illegal_username"))
ctx.Redirect(setting.AppSubUrl + "/user/settings") ctx.Redirect(setting.AppSubUrl + "/user/settings")
case models.ErrEmailAlreadyUsed: case models.IsErrEmailAlreadyUsed(err):
ctx.Flash.Error(ctx.Tr("form.email_been_used")) ctx.Flash.Error(ctx.Tr("form.email_been_used"))
ctx.Redirect(setting.AppSubUrl + "/user/settings") ctx.Redirect(setting.AppSubUrl + "/user/settings")
case models.IsErrNameReserved(err):
ctx.Flash.Error(ctx.Tr("user.form.name_reserved"))
ctx.Redirect(setting.AppSubUrl + "/user/settings")
case models.IsErrNamePatternNotAllowed(err):
ctx.Flash.Error(ctx.Tr("user.form.name_pattern_not_allowed"))
ctx.Redirect(setting.AppSubUrl + "/user/settings")
default: default:
ctx.Handle(500, "ChangeUserName", err) ctx.Handle(500, "ChangeUserName", err)
} }
@@ -204,7 +203,7 @@ func SettingsEmailPost(ctx *middleware.Context, form auth.AddEmailForm) {
} }
if err := models.AddEmailAddress(e); err != nil { if err := models.AddEmailAddress(e); err != nil {
if err == models.ErrEmailAlreadyUsed { if models.IsErrEmailAlreadyUsed(err) {
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SETTINGS_EMAILS, &form) ctx.RenderWithErr(ctx.Tr("form.email_been_used"), SETTINGS_EMAILS, &form)
return return
} }