[GH-21566] Add request context and logger to all public methods in server/channels/app/authentication.go (#25270)

Этот коммит содержится в:
KIMBOH LOVETTE
2023-11-08 14:39:09 +01:00
коммит произвёл GitHub
родитель dd46afacd6
Коммит a6ba7163c8
11 изменённых файлов: 61 добавлений и 61 удалений

Просмотреть файл

@@ -44,7 +44,7 @@ func (tl TokenLocation) String() string {
}
}
func (a *App) IsPasswordValid(password string) *model.AppError {
func (a *App) IsPasswordValid(rctx request.CTX, password string) *model.AppError {
if err := users.IsPasswordValidWithSettings(password, &a.Config().PasswordSettings); err != nil {
var invErr *users.ErrInvalidPassword
switch {
@@ -58,8 +58,8 @@ func (a *App) IsPasswordValid(password string) *model.AppError {
return nil
}
func (a *App) CheckPasswordAndAllCriteria(user *model.User, password string, mfaToken string) *model.AppError {
if err := a.CheckUserPreflightAuthenticationCriteria(user, mfaToken); err != nil {
func (a *App) CheckPasswordAndAllCriteria(rctx request.CTX, user *model.User, password string, mfaToken string) *model.AppError {
if err := a.CheckUserPreflightAuthenticationCriteria(rctx, user, mfaToken); err != nil {
return err
}
@@ -79,7 +79,7 @@ func (a *App) CheckPasswordAndAllCriteria(user *model.User, password string, mfa
}
}
if err := a.CheckUserMfa(user, mfaToken); err != nil {
if err := a.CheckUserMfa(rctx, user, mfaToken); err != nil {
// If the mfaToken is not set, we assume the client used this as a pre-flight request to query the server
// about the MFA state of the user in question
if mfaToken != "" {
@@ -99,7 +99,7 @@ func (a *App) CheckPasswordAndAllCriteria(user *model.User, password string, mfa
a.InvalidateCacheForUser(user.Id)
if err := a.CheckUserPostflightAuthenticationCriteria(user); err != nil {
if err := a.CheckUserPostflightAuthenticationCriteria(rctx, user); err != nil {
return err
}
@@ -107,7 +107,7 @@ func (a *App) CheckPasswordAndAllCriteria(user *model.User, password string, mfa
}
// This to be used for places we check the users password when they are already logged in
func (a *App) DoubleCheckPassword(user *model.User, password string) *model.AppError {
func (a *App) DoubleCheckPassword(rctx request.CTX, user *model.User, password string) *model.AppError {
if err := checkUserLoginAttempts(user, *a.Config().ServiceSettings.MaximumLoginAttempts); err != nil {
return err
}
@@ -137,19 +137,19 @@ func (a *App) DoubleCheckPassword(user *model.User, password string) *model.AppE
return nil
}
func (a *App) checkLdapUserPasswordAndAllCriteria(c request.CTX, ldapId *string, password string, mfaToken string) (*model.User, *model.AppError) {
func (a *App) checkLdapUserPasswordAndAllCriteria(rctx request.CTX, ldapId *string, password string, mfaToken string) (*model.User, *model.AppError) {
if a.Ldap() == nil || ldapId == nil {
err := model.NewAppError("doLdapAuthentication", "api.user.login_ldap.not_available.app_error", nil, "", http.StatusNotImplemented)
return nil, err
}
ldapUser, err := a.Ldap().DoLogin(c, *ldapId, password)
ldapUser, err := a.Ldap().DoLogin(rctx, *ldapId, password)
if err != nil {
err.StatusCode = http.StatusUnauthorized
return nil, err
}
if err := a.CheckUserMfa(ldapUser, mfaToken); err != nil {
if err := a.CheckUserMfa(rctx, ldapUser, mfaToken); err != nil {
return nil, err
}
@@ -161,19 +161,19 @@ func (a *App) checkLdapUserPasswordAndAllCriteria(c request.CTX, ldapId *string,
return ldapUser, nil
}
func (a *App) CheckUserAllAuthenticationCriteria(user *model.User, mfaToken string) *model.AppError {
if err := a.CheckUserPreflightAuthenticationCriteria(user, mfaToken); err != nil {
func (a *App) CheckUserAllAuthenticationCriteria(rctx request.CTX, user *model.User, mfaToken string) *model.AppError {
if err := a.CheckUserPreflightAuthenticationCriteria(rctx, user, mfaToken); err != nil {
return err
}
if err := a.CheckUserPostflightAuthenticationCriteria(user); err != nil {
if err := a.CheckUserPostflightAuthenticationCriteria(rctx, user); err != nil {
return err
}
return nil
}
func (a *App) CheckUserPreflightAuthenticationCriteria(user *model.User, mfaToken string) *model.AppError {
func (a *App) CheckUserPreflightAuthenticationCriteria(rctx request.CTX, user *model.User, mfaToken string) *model.AppError {
if err := checkUserNotDisabled(user); err != nil {
return err
}
@@ -189,7 +189,7 @@ func (a *App) CheckUserPreflightAuthenticationCriteria(user *model.User, mfaToke
return nil
}
func (a *App) CheckUserPostflightAuthenticationCriteria(user *model.User) *model.AppError {
func (a *App) CheckUserPostflightAuthenticationCriteria(rctx request.CTX, user *model.User) *model.AppError {
if !user.EmailVerified && *a.Config().EmailSettings.RequireEmailVerification {
return model.NewAppError("Login", "api.user.login.not_verified.app_error", nil, "user_id="+user.Id, http.StatusUnauthorized)
}
@@ -197,7 +197,7 @@ func (a *App) CheckUserPostflightAuthenticationCriteria(user *model.User) *model
return nil
}
func (a *App) CheckUserMfa(user *model.User, token string) *model.AppError {
func (a *App) CheckUserMfa(rctx request.CTX, user *model.User, token string) *model.AppError {
if !user.MfaActive || !*a.Config().ServiceSettings.EnableMultifactorAuthentication {
return nil
}
@@ -240,7 +240,7 @@ func checkUserNotBot(user *model.User) *model.AppError {
return nil
}
func (a *App) authenticateUser(c request.CTX, user *model.User, password, mfaToken string) (*model.User, *model.AppError) {
func (a *App) authenticateUser(rctx request.CTX, user *model.User, password, mfaToken string) (*model.User, *model.AppError) {
license := a.Srv().License()
ldapAvailable := *a.Config().LdapSettings.Enable && a.Ldap() != nil && license != nil && *license.Features.LDAP
@@ -250,7 +250,7 @@ func (a *App) authenticateUser(c request.CTX, user *model.User, password, mfaTok
return user, err
}
ldapUser, err := a.checkLdapUserPasswordAndAllCriteria(c, user.AuthData, password, mfaToken)
ldapUser, err := a.checkLdapUserPasswordAndAllCriteria(rctx, user.AuthData, password, mfaToken)
if err != nil {
err.StatusCode = http.StatusUnauthorized
return user, err
@@ -269,7 +269,7 @@ func (a *App) authenticateUser(c request.CTX, user *model.User, password, mfaTok
return user, err
}
if err := a.CheckPasswordAndAllCriteria(user, password, mfaToken); err != nil {
if err := a.CheckPasswordAndAllCriteria(rctx, user, password, mfaToken); err != nil {
err.StatusCode = http.StatusUnauthorized
return user, err
}