user.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package functions
  2. import (
  3. "fmt"
  4. "net/http"
  5. "github.com/gravitl/netmaker/models"
  6. )
  7. // HasAdmin - check if server has an admin user
  8. func HasAdmin() *bool {
  9. return request[bool](http.MethodGet, "/api/users/adm/hasadmin", nil)
  10. }
  11. // CreateUser - create a user
  12. func CreateUser(payload *models.User) *models.User {
  13. return request[models.User](http.MethodPost, "/api/users/"+payload.UserName, payload)
  14. }
  15. // UpdateUser - update a user
  16. func UpdateUser(payload *models.User) *models.User {
  17. return request[models.User](http.MethodPut, "/api/users/networks/"+payload.UserName, payload)
  18. }
  19. // DeleteUser - delete a user
  20. func DeleteUser(username string) *string {
  21. return request[string](http.MethodDelete, "/api/users/"+username, nil)
  22. }
  23. // GetUser - fetch a single user
  24. func GetUser(username string) *models.User {
  25. return request[models.User](http.MethodGet, "/api/users/"+username, nil)
  26. }
  27. // ListUsers - fetch all users
  28. func ListUsers() *[]models.ReturnUser {
  29. return request[[]models.ReturnUser](http.MethodGet, "/api/users", nil)
  30. }
  31. func CreateUserRole(role models.UserRolePermissionTemplate) *models.SuccessResponse {
  32. return request[models.SuccessResponse](http.MethodPost, "/api/v1/users/role", role)
  33. }
  34. func UpdateUserRole(role models.UserRolePermissionTemplate) *models.SuccessResponse {
  35. return request[models.SuccessResponse](http.MethodPut, "/api/v1/users/role", role)
  36. }
  37. func ListUserRoles() *models.SuccessResponse {
  38. return request[models.SuccessResponse](http.MethodGet, "/api/v1/users/roles", nil)
  39. }
  40. func DeleteUserRole(roleID string) *models.SuccessResponse {
  41. return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)
  42. }
  43. func GetUserRole(roleID string) *models.SuccessResponse {
  44. return request[models.SuccessResponse](http.MethodGet, fmt.Sprintf("/api/v1/users/role?role_id=%s", roleID), nil)
  45. }
  46. /*
  47. r.HandleFunc("/api/v1/users/roles", logic.SecurityCheck(true, http.HandlerFunc(listRoles))).Methods(http.MethodGet)
  48. r.HandleFunc("/api/v1/users/role", logic.SecurityCheck(true, http.HandlerFunc(getRole))).Methods(http.MethodGet)
  49. r.HandleFunc("/api/v1/users/role", logic.SecurityCheck(true, http.HandlerFunc(createRole))).Methods(http.MethodPost)
  50. r.HandleFunc("/api/v1/users/role", logic.SecurityCheck(true, http.HandlerFunc(updateRole))).Methods(http.MethodPut)
  51. r.HandleFunc("/api/v1/users/role", logic.SecurityCheck(true, http.HandlerFunc(deleteRole))).Methods(http.MethodDelete)
  52. */