1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package pro
- import (
- "github.com/gravitl/netmaker/models"
- "github.com/gravitl/netmaker/models/promodels"
- )
- // AddProNetDefaults - adds default values to a network model
- func AddProNetDefaults(network *models.Network) {
- if network.ProSettings == nil {
- newProSettings := promodels.ProNetwork{
- DefaultAccessLevel: NO_ACCESS,
- DefaultUserNodeLimit: 0,
- DefaultUserClientLimit: 0,
- AllowedUsers: []string{},
- AllowedGroups: []string{DEFAULT_ALLOWED_GROUPS},
- }
- network.ProSettings = &newProSettings
- }
- if network.ProSettings.AllowedUsers == nil {
- network.ProSettings.AllowedUsers = []string{}
- }
- if network.ProSettings.AllowedGroups == nil {
- network.ProSettings.AllowedGroups = []string{DEFAULT_ALLOWED_GROUPS}
- }
- }
- // isUserGroupAllowed - checks if a user group is allowed on a network
- func isUserGroupAllowed(network *models.Network, groupName string) bool {
- if network.ProSettings != nil {
- if len(network.ProSettings.AllowedGroups) > 0 {
- for i := range network.ProSettings.AllowedGroups {
- currentGroup := network.ProSettings.AllowedGroups[i]
- if currentGroup == DEFAULT_ALLOWED_GROUPS || currentGroup == groupName {
- return true
- }
- }
- }
- }
- return false
- }
- func isUserInAllowedUsers(network *models.Network, userName string) bool {
- if network.ProSettings != nil {
- if len(network.ProSettings.AllowedUsers) > 0 {
- for i := range network.ProSettings.AllowedUsers {
- currentUser := network.ProSettings.AllowedUsers[i]
- if currentUser == DEFAULT_ALLOWED_USERS || currentUser == userName {
- return true
- }
- }
- }
- }
- return false
- }
- // IsUserAllowed - checks if given username + groups if a user is allowed on network
- func IsUserAllowed(network *models.Network, userName string, groups []string) bool {
- isGroupAllowed := false
- for _, g := range groups {
- if isUserGroupAllowed(network, g) {
- isGroupAllowed = true
- break
- }
- }
- return isUserInAllowedUsers(network, userName) || isGroupAllowed
- }
|