mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-06 05:04:27 +08:00
61 lines
1.8 KiB
Go
61 lines
1.8 KiB
Go
package schema
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/gravitl/netmaker/db"
|
|
)
|
|
|
|
// UserAccessToken - token used to access netmaker
|
|
type UserAccessToken struct {
|
|
ID string `gorm:"primaryKey" json:"id"`
|
|
Name string `json:"name"`
|
|
UserName string `json:"user_name"`
|
|
ExpiresAt time.Time `json:"expires_at"`
|
|
LastUsed time.Time `json:"last_used"`
|
|
CreatedBy string `json:"created_by"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
func (a *UserAccessToken) Get(ctx context.Context) error {
|
|
return db.FromContext(ctx).Model(&UserAccessToken{}).First(&a).Where("id = ?", a.ID).Error
|
|
}
|
|
|
|
func (a *UserAccessToken) Update(ctx context.Context) error {
|
|
return db.FromContext(ctx).Model(&UserAccessToken{}).Where("id = ?", a.ID).Updates(&a).Error
|
|
}
|
|
|
|
func (a *UserAccessToken) Create(ctx context.Context) error {
|
|
return db.FromContext(ctx).Model(&UserAccessToken{}).Create(&a).Error
|
|
}
|
|
|
|
func (a *UserAccessToken) List(ctx context.Context) (ats []UserAccessToken, err error) {
|
|
err = db.FromContext(ctx).Model(&UserAccessToken{}).Find(&ats).Error
|
|
return
|
|
}
|
|
|
|
func (a *UserAccessToken) ListByUser(ctx context.Context) (ats []UserAccessToken) {
|
|
db.FromContext(ctx).Model(&UserAccessToken{}).Where("user_name = ?", a.UserName).Find(&ats)
|
|
if ats == nil {
|
|
ats = []UserAccessToken{}
|
|
}
|
|
return
|
|
}
|
|
|
|
func (a *UserAccessToken) CountByUser(ctx context.Context) (int, error) {
|
|
var count int64
|
|
err := db.FromContext(ctx).Model(&UserAccessToken{}).
|
|
Where("user_name = ?", a.UserName).
|
|
Count(&count).
|
|
Error
|
|
return int(count), err
|
|
}
|
|
|
|
func (a *UserAccessToken) Delete(ctx context.Context) error {
|
|
return db.FromContext(ctx).Model(&UserAccessToken{}).Where("id = ?", a.ID).Delete(&a).Error
|
|
}
|
|
|
|
func (a *UserAccessToken) DeleteAllUserTokens(ctx context.Context) error {
|
|
return db.FromContext(ctx).Model(&UserAccessToken{}).Where("user_name = ?", a.UserName).Delete(&a).Error
|
|
}
|