* Allow custom SSH user in UI for built-in SSH server (#2617) * Some fixes * Did make fmt * Updated according to review - Renamed config to BUILTIN_SSH_SERVER_USER - Removed unnecessary default string value for config item * Updated according to review * Fixed some minor issuestags/v1.3.0-rc1
DISABLE_SSH = false | DISABLE_SSH = false | ||||
; Whether use builtin SSH server or not. | ; Whether use builtin SSH server or not. | ||||
START_SSH_SERVER = false | START_SSH_SERVER = false | ||||
; Username to use for builtin SSH server. If blank, then it is the value of RUN_USER. | |||||
BUILTIN_SSH_SERVER_USER = | |||||
; Domain name to be exposed in clone URL | ; Domain name to be exposed in clone URL | ||||
SSH_DOMAIN = %(DOMAIN)s | SSH_DOMAIN = %(DOMAIN)s | ||||
; Network interface builtin SSH server listens on | ; Network interface builtin SSH server listens on |
repoName += ".wiki" | repoName += ".wiki" | ||||
} | } | ||||
sshUser := setting.RunUser | |||||
if setting.SSH.StartBuiltinServer { | |||||
sshUser = setting.SSH.BuiltinServerUser | |||||
} | |||||
repo.Owner = repo.MustOwner() | repo.Owner = repo.MustOwner() | ||||
cl := new(CloneLink) | cl := new(CloneLink) | ||||
if setting.SSH.Port != 22 { | if setting.SSH.Port != 22 { | ||||
cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", setting.RunUser, setting.SSH.Domain, setting.SSH.Port, repo.Owner.Name, repoName) | |||||
cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", sshUser, setting.SSH.Domain, setting.SSH.Port, repo.Owner.Name, repoName) | |||||
} else if setting.Repository.UseCompatSSHURI { | } else if setting.Repository.UseCompatSSHURI { | ||||
cl.SSH = fmt.Sprintf("ssh://%s@%s/%s/%s.git", setting.RunUser, setting.SSH.Domain, repo.Owner.Name, repoName) | |||||
cl.SSH = fmt.Sprintf("ssh://%s@%s/%s/%s.git", sshUser, setting.SSH.Domain, repo.Owner.Name, repoName) | |||||
} else { | } else { | ||||
cl.SSH = fmt.Sprintf("%s@%s:%s/%s.git", setting.RunUser, setting.SSH.Domain, repo.Owner.Name, repoName) | |||||
cl.SSH = fmt.Sprintf("%s@%s:%s/%s.git", sshUser, setting.SSH.Domain, repo.Owner.Name, repoName) | |||||
} | } | ||||
cl.HTTPS = ComposeHTTPSCloneURL(repo.Owner.Name, repoName) | cl.HTTPS = ComposeHTTPSCloneURL(repo.Owner.Name, repoName) | ||||
return cl | return cl |
SSH = struct { | SSH = struct { | ||||
Disabled bool `ini:"DISABLE_SSH"` | Disabled bool `ini:"DISABLE_SSH"` | ||||
StartBuiltinServer bool `ini:"START_SSH_SERVER"` | StartBuiltinServer bool `ini:"START_SSH_SERVER"` | ||||
BuiltinServerUser string `ini:"BUILTIN_SSH_SERVER_USER"` | |||||
Domain string `ini:"SSH_DOMAIN"` | Domain string `ini:"SSH_DOMAIN"` | ||||
Port int `ini:"SSH_PORT"` | Port int `ini:"SSH_PORT"` | ||||
ListenHost string `ini:"SSH_LISTEN_HOST"` | ListenHost string `ini:"SSH_LISTEN_HOST"` | ||||
} | } | ||||
} | } | ||||
SSH.BuiltinServerUser = Cfg.Section("server").Key("BUILTIN_SSH_SERVER_USER").MustString(RunUser) | |||||
// Determine and create root git repository path. | // Determine and create root git repository path. | ||||
sec = Cfg.Section("repository") | sec = Cfg.Section("repository") | ||||
Repository.DisableHTTPGit = sec.Key("DISABLE_HTTP_GIT").MustBool() | Repository.DisableHTTPGit = sec.Key("DISABLE_HTTP_GIT").MustBool() |