123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package auth_token
- import (
- "github.com/astaxie/beego/orm"
- "log"
- "nginx-ui/server/models"
- "nginx-ui/server/utils"
- "nginx-ui/server/vo"
- )
- type Service struct {
- }
- type ListQuery struct {
- Uid int `json:"uid"`
- }
- func NewService() *Service {
- return &Service{}
- }
- func (u *Service) List(query *ListQuery, req *vo.PageReq) (*vo.PageResp, error) {
- req.Ensure()
- qs := orm.NewOrm().QueryTable(new(models.AuthToken)).Filter("Uid", query.Uid)
- qs = qs.Offset(req.Offset).Limit(req.PageSize).OrderBy("-Id")
- var list []models.AuthToken
- _, err := qs.All(&list)
- if err != nil {
- return nil, err
- }
- count, err := qs.Count()
- if err != nil {
- return nil, err
- }
- resp := vo.PageResp{
- PageSize: req.PageSize,
- Current: req.Current,
- Total: count,
- List: list,
- }
- return &resp, err
- }
- func (u *Service) Creat(token *models.AuthToken) error {
- o := orm.NewOrm()
- token.Token = utils.GenerateUUID()
- _, err := o.Insert(token)
- return err
- }
- func (u *Service) Update(token *models.AuthToken) error {
- o := orm.NewOrm()
- if token.Token == "" {
- token.Token = utils.GenerateUUID()
- }
- _, err := o.Update(token)
- return err
- }
- func (u *Service) GetById(id int) (*models.AuthToken, error) {
- o := orm.NewOrm()
- exist := models.AuthToken{Id: id}
- err := o.Read(&exist)
- if err != nil {
- return nil, err
- }
- return &exist, nil
- }
- func GetByToken(token string) (*models.AuthToken, error) {
- o := orm.NewOrm()
- exist := models.AuthToken{Token: token}
- err := o.Read(&exist, "Token")
- if err != nil {
- return nil, err
- }
- return &exist, nil
- }
- func (u *Service) DeleteById(id int) error {
- o := orm.NewOrm()
- exist := models.AuthToken{Id: id}
- _, err := o.Delete(&exist, "Id")
- if err != nil {
- return err
- }
- return nil
- }
- func VerifyToken(token string, path string, ip string) (*models.AuthToken, error) {
- log.Printf("verify token: %s, path: %s, ip: %s", token, path, ip)
- o := orm.NewOrm()
- authToken := models.AuthToken{Token: token}
- err := o.Read(&authToken, "Token")
- if err != nil {
- return nil, err
- }
- err = authToken.CheckValid()
- if err != nil {
- return nil, err
- }
- return &authToken, nil
- }
|