Refactoring

pull/3666/head
Oleg Lobanov 2025-01-30 11:24:28 +01:00
parent c09fa9d5cf
commit f4ab8927ea
No known key found for this signature in database
1 changed files with 32 additions and 31 deletions

View File

@ -22,42 +22,43 @@ type ProxyAuth struct {
func (a ProxyAuth) Auth(r *http.Request, usr users.Store, setting *settings.Settings, srv *settings.Server) (*users.User, error) { func (a ProxyAuth) Auth(r *http.Request, usr users.Store, setting *settings.Settings, srv *settings.Server) (*users.User, error) {
username := r.Header.Get(a.Header) username := r.Header.Get(a.Header)
user, err := usr.Get(srv.Root, username) user, err := usr.Get(srv.Root, username)
if errors.Is(err, fbErrors.ErrNotExist) {
return a.createUser(usr, setting, srv, username)
}
return user, err
}
func (a ProxyAuth) createUser(usr users.Store, setting *settings.Settings, srv *settings.Server, username string) (*users.User, error) {
const passwordSize = 32
randomPasswordBytes := make([]byte, passwordSize)
_, err := rand.Read(randomPasswordBytes)
if err != nil { if err != nil {
// Return the error unless it is a user does not exist error return nil, err
if !errors.Is(err, fbErrors.ErrNotExist) { }
return nil, err
}
randomPasswordBytes := make([]byte, 32) //nolint:gomnd var hashedRandomPassword string
_, err = rand.Read(randomPasswordBytes) hashedRandomPassword, err = users.HashPwd(string(randomPasswordBytes))
if err != nil { if err != nil {
return nil, err return nil, err
} }
var hashedRandomPassword string user := &users.User{
hashedRandomPassword, err = users.HashPwd(string(randomPasswordBytes)) Username: username,
if err != nil { Password: hashedRandomPassword,
return nil, err LockPassword: true,
} }
setting.Defaults.Apply(user)
user = &users.User{ var userHome string
Username: username, userHome, err = setting.MakeUserDir(user.Username, user.Scope, srv.Root)
Password: hashedRandomPassword, if err != nil {
LockPassword: true, return nil, err
} }
setting.Defaults.Apply(user) user.Scope = userHome
var userHome string err = usr.Save(user)
userHome, err = setting.MakeUserDir(user.Username, user.Scope, srv.Root) if err != nil {
if err != nil { return nil, err
return nil, err
}
user.Scope = userHome
err = usr.Save(user)
if err != nil {
return nil, err
}
} }
return user, nil return user, nil