MCPcopy Create free account
hub / github.com/cloudbase/garm / UpdateUser

Method UpdateUser

database/sql/users.go:121–152  ·  view source on GitHub ↗
(_ context.Context, user string, param params.UpdateUserParams)

Source from the content-addressed store, hash-verified

119}
120
121func (s *sqlDatabase) UpdateUser(_ context.Context, user string, param params.UpdateUserParams) (params.User, error) {
122 var err error
123 var dbUser User
124 err = s.conn.Transaction(func(tx *gorm.DB) error {
125 dbUser, err = s.getUserByUsernameOrEmail(tx, user)
126 if err != nil {
127 return fmt.Errorf("error fetching user: %w", err)
128 }
129
130 if param.FullName != "" {
131 dbUser.FullName = param.FullName
132 }
133
134 if param.Enabled != nil {
135 dbUser.Enabled = *param.Enabled
136 }
137
138 if param.Password != "" {
139 dbUser.Password = param.Password
140 dbUser.Generation++
141 }
142
143 if q := tx.Save(&dbUser); q.Error != nil {
144 return fmt.Errorf("error saving user: %w", q.Error)
145 }
146 return nil
147 })
148 if err != nil {
149 return params.User{}, fmt.Errorf("error updating user: %w", err)
150 }
151 return s.sqlToParamsUser(dbUser), nil
152}
153
154// GetAdminUser returns the system admin user. This is only for internal use.
155func (s *sqlDatabase) GetAdminUser(_ context.Context) (params.User, error) {

Callers

nothing calls this directly

Calls 2

sqlToParamsUserMethod · 0.95

Tested by

no test coverage detected