get role permissions for all modules

This commit is contained in:
Pedro Costa
2025-04-17 18:55:44 +01:00
parent a01a8174ba
commit d9ad20fd0e
10 changed files with 106 additions and 101 deletions

View File

@@ -13,6 +13,7 @@ import (
nbcache "github.com/netbirdio/netbird/management/server/cache"
nbcontext "github.com/netbirdio/netbird/management/server/context"
"github.com/netbirdio/netbird/management/server/permissions"
"github.com/netbirdio/netbird/management/server/permissions/modules"
"github.com/netbirdio/netbird/management/server/permissions/roles"
"github.com/netbirdio/netbird/management/server/status"
"github.com/netbirdio/netbird/management/server/users"
@@ -1619,7 +1620,7 @@ func TestDefaultAccountManager_GetCurrentUserInfo(t *testing.T) {
Issued: "api",
IntegrationReference: integration_reference.IntegrationReference{},
},
Permissions: roles.Owner,
Permissions: mergeRolePermissions(roles.Owner),
},
},
{
@@ -1639,7 +1640,7 @@ func TestDefaultAccountManager_GetCurrentUserInfo(t *testing.T) {
Issued: "api",
IntegrationReference: integration_reference.IntegrationReference{},
},
Permissions: roles.User,
Permissions: mergeRolePermissions(roles.User),
},
},
{
@@ -1659,7 +1660,7 @@ func TestDefaultAccountManager_GetCurrentUserInfo(t *testing.T) {
Issued: "api",
IntegrationReference: integration_reference.IntegrationReference{},
},
Permissions: roles.Admin,
Permissions: mergeRolePermissions(roles.Admin),
},
},
{
@@ -1679,7 +1680,7 @@ func TestDefaultAccountManager_GetCurrentUserInfo(t *testing.T) {
Issued: "api",
IntegrationReference: integration_reference.IntegrationReference{},
},
Permissions: roles.User,
Permissions: mergeRolePermissions(roles.User),
Restricted: true,
},
},
@@ -1701,7 +1702,7 @@ func TestDefaultAccountManager_GetCurrentUserInfo(t *testing.T) {
Issued: "api",
IntegrationReference: integration_reference.IntegrationReference{},
},
Permissions: roles.Owner,
Permissions: mergeRolePermissions(roles.Owner),
},
},
}
@@ -1720,3 +1721,17 @@ func TestDefaultAccountManager_GetCurrentUserInfo(t *testing.T) {
})
}
}
func mergeRolePermissions(role roles.RolePermissions) roles.Permissions {
permissions := roles.Permissions{}
for k := range modules.All {
if rolePermissions, ok := role.Permissions[k]; ok {
permissions[k] = rolePermissions
continue
}
permissions[k] = role.AutoAllowNew
}
return permissions
}