Other: Add more user-level logs

This commit is contained in:
James Houlahan
2022-11-18 12:42:41 +01:00
parent 65cc1d5ccf
commit e60bbaa60f
4 changed files with 66 additions and 14 deletions

View File

@ -128,18 +128,26 @@ func (vault *Vault) ForUser(fn func(*User) error) error {
// AddUser creates a new user in the vault with the given ID and username.
// A bridge password and gluon key are generated using the package's token generator.
func (vault *Vault) AddUser(userID, username, authUID, authRef string, keyPass []byte) (*User, error) {
if idx := xslices.IndexFunc(vault.get().Users, func(user UserData) bool {
return user.UserID == userID
}); idx >= 0 {
return nil, errors.New("user already exists")
}
logrus.WithField("userID", userID).Info("Adding vault user")
var exists bool
if err := vault.mod(func(data *Data) {
data.Users = append(data.Users, newDefaultUser(userID, username, authUID, authRef, keyPass))
if idx := xslices.IndexFunc(data.Users, func(user UserData) bool {
return user.UserID == userID
}); idx >= 0 {
exists = true
} else {
data.Users = append(data.Users, newDefaultUser(userID, username, authUID, authRef, keyPass))
}
}); err != nil {
return nil, err
}
if exists {
return nil, errors.New("user already exists")
}
return vault.NewUser(userID)
}
@ -148,6 +156,8 @@ func (vault *Vault) DeleteUser(userID string) error {
vault.refLock.Lock()
defer vault.refLock.Unlock()
logrus.WithField("userID", userID).Info("Deleting vault user")
if _, ok := vault.ref[userID]; ok {
return fmt.Errorf("user %s is currently in use", userID)
}