mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 16:57:51 +08:00
feat(go): add access token count to ReturnUser model;
This commit is contained in:
@@ -1,9 +1,11 @@
|
|||||||
package controller
|
package controller
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/gravitl/netmaker/db"
|
||||||
"net/http"
|
"net/http"
|
||||||
"reflect"
|
"reflect"
|
||||||
"time"
|
"time"
|
||||||
@@ -584,6 +586,18 @@ func getUsers(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
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[:])
|
logic.SortUsers(users[:])
|
||||||
logger.Log(2, r.Header.Get("user"), "fetched users")
|
logger.Log(2, r.Header.Get("user"), "fetched users")
|
||||||
json.NewEncoder(w).Encode(users)
|
json.NewEncoder(w).Encode(users)
|
||||||
|
@@ -106,6 +106,7 @@ func GetUsers() ([]models.ReturnUser, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
continue // get users
|
continue // get users
|
||||||
}
|
}
|
||||||
|
|
||||||
users = append(users, user)
|
users = append(users, user)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -190,6 +190,7 @@ type ReturnUser struct {
|
|||||||
PlatformRoleID UserRoleID `json:"platform_role_id"`
|
PlatformRoleID UserRoleID `json:"platform_role_id"`
|
||||||
NetworkRoles map[NetworkID]map[UserRoleID]struct{} `json:"network_roles"`
|
NetworkRoles map[NetworkID]map[UserRoleID]struct{} `json:"network_roles"`
|
||||||
LastLoginTime time.Time `json:"last_login_time"`
|
LastLoginTime time.Time `json:"last_login_time"`
|
||||||
|
NumAccessTokens int `json:"num_access_tokens"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// UserAuthParams - user auth params struct
|
// UserAuthParams - user auth params struct
|
||||||
|
@@ -43,6 +43,15 @@ func (a *UserAccessToken) ListByUser(ctx context.Context) (ats []UserAccessToken
|
|||||||
return
|
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 {
|
func (a *UserAccessToken) Delete(ctx context.Context) error {
|
||||||
return db.FromContext(ctx).Model(&UserAccessToken{}).Where("id = ?", a.ID).Delete(&a).Error
|
return db.FromContext(ctx).Model(&UserAccessToken{}).Where("id = ?", a.ID).Delete(&a).Error
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user