2
0

accessToken.go 1.8 KB

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