feat(go): add access token count to ReturnUser model;

This commit is contained in:
Vishal Dalwadi 2025-06-23 22:41:26 +05:30
parent 7b970cbbb3
commit 8971ecd2e9
4 changed files with 25 additions and 0 deletions

View file

@ -1,9 +1,11 @@
package controller
import (
"context"
"encoding/json"
"errors"
"fmt"
"github.com/gravitl/netmaker/db"
"net/http"
"reflect"
"time"
@ -584,6 +586,18 @@ func getUsers(w http.ResponseWriter, r *http.Request) {
return
}
for i, user := range users {
// only setting num_access_tokens here, because only UI needs it.
user.NumAccessTokens, err = (&schema.UserAccessToken{
UserName: user.UserName,
}).CountByUser(db.WithContext(context.TODO()))
if err != nil {
continue
}
users[i] = user
}
logic.SortUsers(users[:])
logger.Log(2, r.Header.Get("user"), "fetched users")
json.NewEncoder(w).Encode(users)

View file

@ -106,6 +106,7 @@ func GetUsers() ([]models.ReturnUser, error) {
if err != nil {
continue // get users
}
users = append(users, user)
}

View file

@ -190,6 +190,7 @@ type ReturnUser struct {
PlatformRoleID UserRoleID `json:"platform_role_id"`
NetworkRoles map[NetworkID]map[UserRoleID]struct{} `json:"network_roles"`
LastLoginTime time.Time `json:"last_login_time"`
NumAccessTokens int `json:"num_access_tokens"`
}
// UserAuthParams - user auth params struct

View file

@ -43,6 +43,15 @@ func (a *UserAccessToken) ListByUser(ctx context.Context) (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
}