mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-23 05:04:16 +01:00
* 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 issues
This commit is contained in:
parent
514006a2e5
commit
e89bb7ef6a
3 changed files with 13 additions and 3 deletions
2
conf/app.ini
vendored
2
conf/app.ini
vendored
|
@ -113,6 +113,8 @@ LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
|
||||||
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
|
||||||
|
|
|
@ -806,14 +806,19 @@ func (repo *Repository) cloneLink(isWiki bool) *CloneLink {
|
||||||
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
|
||||||
|
|
|
@ -90,6 +90,7 @@ var (
|
||||||
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"`
|
||||||
|
@ -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.
|
// 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()
|
||||||
|
|
Loading…
Reference in a new issue