1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package logic
- import (
- "encoding/json"
- "errors"
- "sort"
- "github.com/gravitl/netmaker/database"
- "github.com/gravitl/netmaker/models"
- )
- // GetUser - gets a user
- // TODO support "masteradmin"
- func GetUser(username string) (*models.User, error) {
- var user models.User
- record, err := database.FetchRecord(database.USERS_TABLE_NAME, username)
- if err != nil {
- return &user, err
- }
- if err = json.Unmarshal([]byte(record), &user); err != nil {
- return &models.User{}, err
- }
- return &user, err
- }
- // GetReturnUser - gets a user
- func GetReturnUser(username string) (models.ReturnUser, error) {
- var user models.ReturnUser
- record, err := database.FetchRecord(database.USERS_TABLE_NAME, username)
- if err != nil {
- return user, err
- }
- if err = json.Unmarshal([]byte(record), &user); err != nil {
- return models.ReturnUser{}, err
- }
- return user, err
- }
- // ToReturnUser - gets a user as a return user
- func ToReturnUser(user models.User) models.ReturnUser {
- return models.ReturnUser{
- UserName: user.UserName,
- IsSuperAdmin: user.IsSuperAdmin,
- IsAdmin: user.IsAdmin,
- RemoteGwIDs: user.RemoteGwIDs,
- }
- }
- // SetUserDefaults - sets the defaults of a user to avoid empty fields
- func SetUserDefaults(user *models.User) {
- if user.RemoteGwIDs == nil {
- user.RemoteGwIDs = make(map[string]struct{})
- }
- }
- // SortUsers - Sorts slice of Users by username
- func SortUsers(unsortedUsers []models.ReturnUser) {
- sort.Slice(unsortedUsers, func(i, j int) bool {
- return unsortedUsers[i].UserName < unsortedUsers[j].UserName
- })
- }
- // GetSuperAdmin - fetches superadmin user
- func GetSuperAdmin() (models.ReturnUser, error) {
- users, err := GetUsers()
- if err != nil {
- return models.ReturnUser{}, err
- }
- for _, user := range users {
- if user.IsSuperAdmin {
- return user, nil
- }
- }
- return models.ReturnUser{}, errors.New("superadmin not found")
- }
|