Skip to content

Commit 074f7ab

Browse files
authored
Remove PAM from auth dropdown when unavailable (#13276) (#13281)
Signed-off-by: jolheiser <[email protected]>
1 parent 39412c6 commit 074f7ab

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

modules/auth/pam/pam.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ import (
1212
"github.com/msteinert/pam"
1313
)
1414

15+
// Supported is true when built with PAM
16+
var Supported = true
17+
1518
// Auth pam auth service
1619
func Auth(serviceName, userName, passwd string) (string, error) {
1720
t, err := pam.StartFunc(serviceName, userName, func(s pam.Style, msg string) (string, error) {

modules/auth/pam/pam_stub.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ import (
1010
"errors"
1111
)
1212

13+
// Supported is false when built without PAM
14+
var Supported = false
15+
1316
// Auth not supported lack of pam tag
1417
func Auth(serviceName, userName, passwd string) (string, error) {
1518
return "", errors.New("PAM not supported")

routers/admin/auths.go

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"code.gitea.io/gitea/modules/auth"
1414
"code.gitea.io/gitea/modules/auth/ldap"
1515
"code.gitea.io/gitea/modules/auth/oauth2"
16+
"code.gitea.io/gitea/modules/auth/pam"
1617
"code.gitea.io/gitea/modules/base"
1718
"code.gitea.io/gitea/modules/context"
1819
"code.gitea.io/gitea/modules/log"
@@ -57,14 +58,20 @@ type dropdownItem struct {
5758
}
5859

5960
var (
60-
authSources = []dropdownItem{
61-
{models.LoginNames[models.LoginLDAP], models.LoginLDAP},
62-
{models.LoginNames[models.LoginDLDAP], models.LoginDLDAP},
63-
{models.LoginNames[models.LoginSMTP], models.LoginSMTP},
64-
{models.LoginNames[models.LoginPAM], models.LoginPAM},
65-
{models.LoginNames[models.LoginOAuth2], models.LoginOAuth2},
66-
{models.LoginNames[models.LoginSSPI], models.LoginSSPI},
67-
}
61+
authSources = func() []dropdownItem {
62+
items := []dropdownItem{
63+
{models.LoginNames[models.LoginLDAP], models.LoginLDAP},
64+
{models.LoginNames[models.LoginDLDAP], models.LoginDLDAP},
65+
{models.LoginNames[models.LoginSMTP], models.LoginSMTP},
66+
{models.LoginNames[models.LoginOAuth2], models.LoginOAuth2},
67+
{models.LoginNames[models.LoginSSPI], models.LoginSSPI},
68+
}
69+
if pam.Supported {
70+
items = append(items, dropdownItem{models.LoginNames[models.LoginPAM], models.LoginPAM})
71+
}
72+
return items
73+
}()
74+
6875
securityProtocols = []dropdownItem{
6976
{models.SecurityProtocolNames[ldap.SecurityProtocolUnencrypted], ldap.SecurityProtocolUnencrypted},
7077
{models.SecurityProtocolNames[ldap.SecurityProtocolLDAPS], ldap.SecurityProtocolLDAPS},

0 commit comments

Comments
 (0)