user_mgmt.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package logic
  2. import (
  3. "encoding/json"
  4. "github.com/gravitl/netmaker/database"
  5. "github.com/gravitl/netmaker/models"
  6. )
  7. // Pre-Define Permission Templates for default Roles
  8. var SuperAdminPermissionTemplate = models.UserRolePermissionTemplate{
  9. ID: models.SuperAdminRole,
  10. Default: true,
  11. FullAccess: true,
  12. }
  13. var AdminPermissionTemplate = models.UserRolePermissionTemplate{
  14. ID: models.AdminRole,
  15. Default: true,
  16. FullAccess: true,
  17. }
  18. var GetFilteredNodesByUserAccess = func(user models.User, nodes []models.Node) (filteredNodes []models.Node) {
  19. return
  20. }
  21. var CreateRole = func(r models.UserRolePermissionTemplate) error {
  22. return nil
  23. }
  24. var FilterNetworksByRole = func(allnetworks []models.Network, user models.User) []models.Network {
  25. return allnetworks
  26. }
  27. var IsGroupsValid = func(groups map[models.UserGroupID]struct{}) error {
  28. return nil
  29. }
  30. var RemoveNetworkRoleFromUsers = func(host models.Host, node models.Node) {}
  31. var InitialiseRoles = userRolesInit
  32. var DeleteNetworkRoles = func(netID string) {}
  33. var CreateDefaultNetworkRoles = func(netID string) {}
  34. // GetRole - fetches role template by id
  35. func GetRole(roleID models.UserRole) (models.UserRolePermissionTemplate, error) {
  36. // check if role already exists
  37. data, err := database.FetchRecord(database.USER_PERMISSIONS_TABLE_NAME, roleID.String())
  38. if err != nil {
  39. return models.UserRolePermissionTemplate{}, err
  40. }
  41. ur := models.UserRolePermissionTemplate{}
  42. err = json.Unmarshal([]byte(data), &ur)
  43. if err != nil {
  44. return ur, err
  45. }
  46. return ur, nil
  47. }
  48. func userRolesInit() {
  49. d, _ := json.Marshal(SuperAdminPermissionTemplate)
  50. database.Insert(SuperAdminPermissionTemplate.ID.String(), string(d), database.USER_PERMISSIONS_TABLE_NAME)
  51. d, _ = json.Marshal(AdminPermissionTemplate)
  52. database.Insert(AdminPermissionTemplate.ID.String(), string(d), database.USER_PERMISSIONS_TABLE_NAME)
  53. }