2
0

user_access_token.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package schema
  2. import (
  3. "context"
  4. "time"
  5. "github.com/gravitl/netmaker/db"
  6. )
  7. // UserAccessToken - token used to access netmaker
  8. type UserAccessToken struct {
  9. ID string `gorm:"primaryKey" json:"id"`
  10. Name string `json:"name"`
  11. UserName string `json:"user_name"`
  12. ExpiresAt time.Time `json:"expires_at"`
  13. LastUsed time.Time `json:"last_used"`
  14. CreatedBy string `json:"created_by"`
  15. CreatedAt time.Time `json:"created_at"`
  16. }
  17. func (a *UserAccessToken) Get(ctx context.Context) error {
  18. return db.FromContext(ctx).Model(&UserAccessToken{}).First(&a).Where("id = ?", a.ID).Error
  19. }
  20. func (a *UserAccessToken) Update(ctx context.Context) error {
  21. return db.FromContext(ctx).Model(&UserAccessToken{}).Where("id = ?", a.ID).Updates(&a).Error
  22. }
  23. func (a *UserAccessToken) Create(ctx context.Context) error {
  24. return db.FromContext(ctx).Model(&UserAccessToken{}).Create(&a).Error
  25. }
  26. func (a *UserAccessToken) List(ctx context.Context) (ats []UserAccessToken, err error) {
  27. err = db.FromContext(ctx).Model(&UserAccessToken{}).Find(&ats).Error
  28. return
  29. }
  30. func (a *UserAccessToken) ListByUser(ctx context.Context) (ats []UserAccessToken) {
  31. db.FromContext(ctx).Model(&UserAccessToken{}).Where("user_name = ?", a.UserName).Find(&ats)
  32. if ats == nil {
  33. ats = []UserAccessToken{}
  34. }
  35. return
  36. }
  37. func (a *UserAccessToken) CountByUser(ctx context.Context) (int, error) {
  38. var count int64
  39. err := db.FromContext(ctx).Model(&UserAccessToken{}).
  40. Where("user_name = ?", a.UserName).
  41. Count(&count).
  42. Error
  43. return int(count), err
  44. }
  45. func (a *UserAccessToken) Delete(ctx context.Context) error {
  46. return db.FromContext(ctx).Model(&UserAccessToken{}).Where("id = ?", a.ID).Delete(&a).Error
  47. }
  48. func (a *UserAccessToken) DeleteAllUserTokens(ctx context.Context) error {
  49. return db.FromContext(ctx).Model(&UserAccessToken{}).Where("user_name = ?", a.UserName).Delete(&a).Error
  50. }