52 lines
2.6 KiB
C#
52 lines
2.6 KiB
C#
using Socialize.Api.Modules.Organizations.Services;
|
|
|
|
namespace Socialize.Tests.Organizations;
|
|
|
|
public class OrganizationPermissionRulesTests
|
|
{
|
|
[Fact]
|
|
public void Owner_has_all_initial_organization_permissions()
|
|
{
|
|
IReadOnlyCollection<string> permissions = OrganizationPermissionRules.GetPermissionsForRole(OrganizationRoles.Owner);
|
|
|
|
Assert.Contains(OrganizationPermissions.ManageOrganizationSettings, permissions);
|
|
Assert.Contains(OrganizationPermissions.ManageOrganizationMembers, permissions);
|
|
Assert.Contains(OrganizationPermissions.CreateWorkspaces, permissions);
|
|
Assert.Contains(OrganizationPermissions.ManageWorkspaces, permissions);
|
|
Assert.Contains(OrganizationPermissions.ManageBilling, permissions);
|
|
Assert.Contains(OrganizationPermissions.ManageConnectors, permissions);
|
|
Assert.Contains(OrganizationPermissions.AccessOwnedWorkspaces, permissions);
|
|
}
|
|
|
|
[Fact]
|
|
public void Admin_does_not_receive_billing_permission_by_default()
|
|
{
|
|
IReadOnlyCollection<string> permissions = OrganizationPermissionRules.GetPermissionsForRole(OrganizationRoles.Admin);
|
|
|
|
Assert.Contains(OrganizationPermissions.ManageOrganizationSettings, permissions);
|
|
Assert.Contains(OrganizationPermissions.ManageOrganizationMembers, permissions);
|
|
Assert.Contains(OrganizationPermissions.CreateWorkspaces, permissions);
|
|
Assert.Contains(OrganizationPermissions.ManageWorkspaces, permissions);
|
|
Assert.Contains(OrganizationPermissions.ManageConnectors, permissions);
|
|
Assert.Contains(OrganizationPermissions.AccessOwnedWorkspaces, permissions);
|
|
Assert.DoesNotContain(OrganizationPermissions.ManageBilling, permissions);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(OrganizationRoles.BillingManager, OrganizationPermissions.ManageBilling, true)]
|
|
[InlineData(OrganizationRoles.BillingManager, OrganizationPermissions.ManageConnectors, false)]
|
|
[InlineData(OrganizationRoles.ConnectorManager, OrganizationPermissions.ManageConnectors, true)]
|
|
[InlineData(OrganizationRoles.ConnectorManager, OrganizationPermissions.ManageBilling, false)]
|
|
[InlineData(OrganizationRoles.Member, OrganizationPermissions.AccessOwnedWorkspaces, true)]
|
|
[InlineData(OrganizationRoles.Member, OrganizationPermissions.ManageWorkspaces, false)]
|
|
public void RoleHasPermission_enforces_role_permission_mapping(
|
|
string role,
|
|
string permission,
|
|
bool expected)
|
|
{
|
|
bool actual = OrganizationPermissionRules.RoleHasPermission(role, permission);
|
|
|
|
Assert.Equal(expected, actual);
|
|
}
|
|
}
|