mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
fix: mark users seen when activating on login (#21305)
fixes #21303 Update user last_seen_at when we mark them active on login. This prevents a narrow race where they can be re-marked dormant and fail to log in.
This commit is contained in:
@@ -256,8 +256,9 @@ func (api *API) scimPostUser(rw http.ResponseWriter, r *http.Request) {
|
||||
newUser, err := api.Database.UpdateUserStatus(dbauthz.AsSystemRestricted(r.Context()), database.UpdateUserStatusParams{
|
||||
ID: dbUser.ID,
|
||||
// The user will get transitioned to Active after logging in.
|
||||
Status: database.UserStatusDormant,
|
||||
UpdatedAt: dbtime.Now(),
|
||||
Status: database.UserStatusDormant,
|
||||
UpdatedAt: dbtime.Now(),
|
||||
UserIsSeen: false,
|
||||
})
|
||||
if err != nil {
|
||||
_ = handlerutil.WriteError(rw, err) // internal error
|
||||
@@ -395,9 +396,10 @@ func (api *API) scimPatchUser(rw http.ResponseWriter, r *http.Request) {
|
||||
if dbUser.Status != newStatus {
|
||||
//nolint:gocritic // needed for SCIM
|
||||
userNew, err := api.Database.UpdateUserStatus(dbauthz.AsSystemRestricted(r.Context()), database.UpdateUserStatusParams{
|
||||
ID: dbUser.ID,
|
||||
Status: newStatus,
|
||||
UpdatedAt: dbtime.Now(),
|
||||
ID: dbUser.ID,
|
||||
Status: newStatus,
|
||||
UpdatedAt: dbtime.Now(),
|
||||
UserIsSeen: false,
|
||||
})
|
||||
if err != nil {
|
||||
_ = handlerutil.WriteError(rw, err) // internal error
|
||||
@@ -490,9 +492,10 @@ func (api *API) scimPutUser(rw http.ResponseWriter, r *http.Request) {
|
||||
if dbUser.Status != newStatus {
|
||||
//nolint:gocritic // needed for SCIM
|
||||
userNew, err := api.Database.UpdateUserStatus(dbauthz.AsSystemRestricted(r.Context()), database.UpdateUserStatusParams{
|
||||
ID: dbUser.ID,
|
||||
Status: newStatus,
|
||||
UpdatedAt: dbtime.Now(),
|
||||
ID: dbUser.ID,
|
||||
Status: newStatus,
|
||||
UpdatedAt: dbtime.Now(),
|
||||
UserIsSeen: false,
|
||||
})
|
||||
if err != nil {
|
||||
_ = handlerutil.WriteError(rw, err) // internal error
|
||||
|
||||
Reference in New Issue
Block a user