mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-31 20:02:09 +00:00
Make LDAP be able to skip local 2FA (#16954)
This PR extends #16594 to allow LDAP to be able to be set to skip local 2FA too. The technique used here would be extensible to PAM and SMTP sources. Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
f96d0d3d5b
commit
27b351aba5
16 changed files with 84 additions and 19 deletions
|
@ -16,6 +16,7 @@ import (
|
|||
type sourceInterface interface {
|
||||
auth.PasswordAuthenticator
|
||||
auth.SynchronizableSource
|
||||
auth.LocalTwoFASkipper
|
||||
models.SSHKeyProvider
|
||||
models.LoginConfig
|
||||
models.SkipVerifiable
|
||||
|
|
|
@ -52,6 +52,7 @@ type Source struct {
|
|||
GroupFilter string // Group Name Filter
|
||||
GroupMemberUID string // Group Attribute containing array of UserUID
|
||||
UserUID string // User Attribute listed in Group
|
||||
SkipLocalTwoFA bool // Skip Local 2fa for users authenticated with this source
|
||||
|
||||
// reference to the loginSource
|
||||
loginSource *models.LoginSource
|
||||
|
|
|
@ -97,3 +97,8 @@ func (source *Source) Authenticate(user *models.User, login, password string) (*
|
|||
|
||||
return user, err
|
||||
}
|
||||
|
||||
// IsSkipLocalTwoFA returns if this source should skip local 2fa for password authentication
|
||||
func (source *Source) IsSkipLocalTwoFA() bool {
|
||||
return source.SkipLocalTwoFA
|
||||
}
|
||||
|
|
|
@ -13,3 +13,6 @@ import (
|
|||
func (source *Source) Authenticate(user *models.User, login, password string) (*models.User, error) {
|
||||
return db.Authenticate(user, login, password)
|
||||
}
|
||||
|
||||
// NB: Oauth2 does not implement LocalTwoFASkipper for password authentication
|
||||
// as its password authentication drops to db authentication
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue