mirror of
https://github.com/empayre/fleet.git
synced 2024-11-08 01:38:57 +00:00
109 lines
2.3 KiB
Go
109 lines
2.3 KiB
Go
package inmem
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/fleetdm/fleet/server/kolide"
|
|
)
|
|
|
|
func (d *Datastore) NewPasswordResetRequest(req *kolide.PasswordResetRequest) (*kolide.PasswordResetRequest, error) {
|
|
d.mtx.Lock()
|
|
defer d.mtx.Unlock()
|
|
|
|
req.ID = d.nextID(req)
|
|
d.passwordResets[req.ID] = req
|
|
return req, nil
|
|
}
|
|
|
|
func (d *Datastore) SavePasswordResetRequest(req *kolide.PasswordResetRequest) error {
|
|
d.mtx.Lock()
|
|
defer d.mtx.Unlock()
|
|
|
|
if _, ok := d.passwordResets[req.ID]; !ok {
|
|
return notFound("PasswordResetRequest").WithID(req.ID)
|
|
}
|
|
|
|
d.passwordResets[req.ID] = req
|
|
return nil
|
|
}
|
|
|
|
func (d *Datastore) DeletePasswordResetRequest(req *kolide.PasswordResetRequest) error {
|
|
d.mtx.Lock()
|
|
defer d.mtx.Unlock()
|
|
|
|
if _, ok := d.passwordResets[req.ID]; !ok {
|
|
return notFound("PasswordResetRequest").WithID(req.ID)
|
|
}
|
|
|
|
delete(d.passwordResets, req.ID)
|
|
return nil
|
|
}
|
|
|
|
func (d *Datastore) DeletePasswordResetRequestsForUser(userID uint) error {
|
|
d.mtx.Lock()
|
|
defer d.mtx.Unlock()
|
|
|
|
for _, pr := range d.passwordResets {
|
|
if pr.UserID == userID {
|
|
delete(d.passwordResets, pr.ID)
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (d *Datastore) FindPassswordResetByID(id uint) (*kolide.PasswordResetRequest, error) {
|
|
d.mtx.Lock()
|
|
defer d.mtx.Unlock()
|
|
|
|
if req, ok := d.passwordResets[id]; ok {
|
|
return req, nil
|
|
}
|
|
|
|
return nil, notFound("PasswordResetRequest").WithID(id)
|
|
}
|
|
|
|
func (d *Datastore) FindPassswordResetsByUserID(userID uint) ([]*kolide.PasswordResetRequest, error) {
|
|
d.mtx.Lock()
|
|
defer d.mtx.Unlock()
|
|
resets := make([]*kolide.PasswordResetRequest, 0)
|
|
|
|
for _, pr := range d.passwordResets {
|
|
if pr.UserID == userID {
|
|
resets = append(resets, pr)
|
|
}
|
|
}
|
|
|
|
if len(resets) == 0 {
|
|
return nil, notFound("PasswordResetRequest").
|
|
WithMessage(fmt.Sprintf("for user id %d", userID))
|
|
}
|
|
|
|
return resets, nil
|
|
}
|
|
|
|
func (d *Datastore) FindPassswordResetByToken(token string) (*kolide.PasswordResetRequest, error) {
|
|
d.mtx.Lock()
|
|
defer d.mtx.Unlock()
|
|
|
|
for _, pr := range d.passwordResets {
|
|
if pr.Token == token {
|
|
return pr, nil
|
|
}
|
|
}
|
|
|
|
return nil, notFound("PasswordResetRequest")
|
|
}
|
|
|
|
func (d *Datastore) FindPassswordResetByTokenAndUserID(token string, userID uint) (*kolide.PasswordResetRequest, error) {
|
|
d.mtx.Lock()
|
|
defer d.mtx.Unlock()
|
|
|
|
for _, pr := range d.passwordResets {
|
|
if pr.Token == token && pr.UserID == userID {
|
|
return pr, nil
|
|
}
|
|
}
|
|
|
|
return nil, notFound("PasswordResetRequest")
|
|
}
|