* 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
@@ -113,6 +113,8 @@ LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/ | |||
DISABLE_SSH = false | |||
; Whether use builtin SSH server or not. | |||
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 | |||
SSH_DOMAIN = %(DOMAIN)s | |||
; Network interface builtin SSH server listens on |
@@ -806,14 +806,19 @@ func (repo *Repository) cloneLink(isWiki bool) *CloneLink { | |||
repoName += ".wiki" | |||
} | |||
sshUser := setting.RunUser | |||
if setting.SSH.StartBuiltinServer { | |||
sshUser = setting.SSH.BuiltinServerUser | |||
} | |||
repo.Owner = repo.MustOwner() | |||
cl := new(CloneLink) | |||
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 { | |||
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 { | |||
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) | |||
return cl |
@@ -90,6 +90,7 @@ var ( | |||
SSH = struct { | |||
Disabled bool `ini:"DISABLE_SSH"` | |||
StartBuiltinServer bool `ini:"START_SSH_SERVER"` | |||
BuiltinServerUser string `ini:"BUILTIN_SSH_SERVER_USER"` | |||
Domain string `ini:"SSH_DOMAIN"` | |||
Port int `ini:"SSH_PORT"` | |||
ListenHost string `ini:"SSH_LISTEN_HOST"` | |||
@@ -915,6 +916,8 @@ func NewContext() { | |||
} | |||
} | |||
SSH.BuiltinServerUser = Cfg.Section("server").Key("BUILTIN_SSH_SERVER_USER").MustString(RunUser) | |||
// Determine and create root git repository path. | |||
sec = Cfg.Section("repository") | |||
Repository.DisableHTTPGit = sec.Key("DISABLE_HTTP_GIT").MustBool() |