mirror of
https://github.com/grafana/grafana.git
synced 2025-07-31 22:02:17 +08:00

Added CRUD methods for Tokens. Extend Auth Handler to check for the presence of a Bearer Authorization header to authenticate against. If there is no header, or the token is not valid, the Auth Handler falls back to looking for a Session.
63 lines
1.3 KiB
Go
63 lines
1.3 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type Token struct {
|
|
Id int64
|
|
AccountId int64 `xorm:"not null unique(uix_account_id_name)"`
|
|
Name string `xorm:"not null unique(uix_account_id_name)"`
|
|
Token string `xorm:"UNIQUE NOT NULL"`
|
|
Role RoleType `xorm:"not null"`
|
|
Created time.Time
|
|
Updated time.Time
|
|
}
|
|
|
|
// ---------------------
|
|
// COMMANDS
|
|
type AddTokenCommand struct {
|
|
Name string `json:"name" binding:"required"`
|
|
Role RoleType `json:"role" binding:"required"`
|
|
AccountId int64 `json:"-"`
|
|
Token string `json:"-"`
|
|
Result *Token `json:"-"`
|
|
}
|
|
|
|
type UpdateTokenCommand struct {
|
|
Id int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
AccountId int64 `json:"-"`
|
|
Role RoleType `json:"role"`
|
|
Result *Token `json:"-"`
|
|
}
|
|
|
|
type DeleteTokenCommand struct {
|
|
Id int64 `json:"id"`
|
|
AccountId int64 `json:"-"`
|
|
Result *Token `json:"-"`
|
|
}
|
|
|
|
// ----------------------
|
|
// QUERIES
|
|
|
|
type GetTokensQuery struct {
|
|
AccountId int64
|
|
Result []*Token
|
|
}
|
|
|
|
type GetAccountByTokenQuery struct {
|
|
Token string
|
|
Result *Account
|
|
}
|
|
|
|
// ------------------------
|
|
// DTO & Projections
|
|
|
|
type TokenDTO struct {
|
|
Id int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
Token string `json:"token"`
|
|
Role RoleType `json:"role"`
|
|
}
|