2
0

user.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package functions
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "net/http"
  6. "github.com/gravitl/netmaker/models"
  7. )
  8. // HasAdmin - check if server has an admin user
  9. func HasAdmin() *bool {
  10. return request[bool](http.MethodGet, "/api/users/adm/hasadmin", nil)
  11. }
  12. // CreateUser - create a user
  13. func CreateUser(payload *models.User) *models.User {
  14. return request[models.User](http.MethodPost, "/api/users/"+payload.UserName, payload)
  15. }
  16. // UpdateUser - update a user
  17. func UpdateUser(payload *models.User) *models.User {
  18. return request[models.User](http.MethodPut, "/api/users/"+payload.UserName, payload)
  19. }
  20. // DeleteUser - delete a user
  21. func DeleteUser(username string) *string {
  22. return request[string](http.MethodDelete, "/api/users/"+username, nil)
  23. }
  24. // GetUser - fetch a single user
  25. func GetUser(username string) *models.User {
  26. return request[models.User](http.MethodGet, "/api/users/"+username, nil)
  27. }
  28. // ListUsers - fetch all users
  29. func ListUsers() *[]models.ReturnUser {
  30. return request[[]models.ReturnUser](http.MethodGet, "/api/users", nil)
  31. }
  32. func ListUserRoles() (roles []models.UserRolePermissionTemplate) {
  33. resp := request[models.SuccessResponse](http.MethodGet, "/api/v1/users/roles", nil)
  34. d, _ := json.Marshal(resp.Response)
  35. json.Unmarshal(d, &roles)
  36. return
  37. }
  38. func DeleteUserRole(roleID string) *models.SuccessResponse {
  39. return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)
  40. }
  41. func GetUserRole(roleID string) (role models.UserRolePermissionTemplate) {
  42. resp := request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)
  43. d, _ := json.Marshal(resp.Response)
  44. json.Unmarshal(d, &role)
  45. return
  46. }
  47. func ListUserGrps() (groups []models.UserGroup) {
  48. resp := request[models.SuccessResponse](http.MethodGet, "/api/v1/users/groups", nil)
  49. d, _ := json.Marshal(resp.Response)
  50. json.Unmarshal(d, &groups)
  51. return
  52. }
  53. func DeleteUserGrp(grpID string) *models.SuccessResponse {
  54. return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/group?group_id=%s", grpID), nil)
  55. }
  56. func GetUserGrp(grpID string) (group models.UserGroup) {
  57. resp := request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/group?group_id=%s", grpID), nil)
  58. d, _ := json.Marshal(resp.Response)
  59. json.Unmarshal(d, &group)
  60. return
  61. }