public void SelfServeReportGrant( ) { IAccessRuleFactory accessRuleFactory; IAccessRuleReportFactory accessRuleReportFactory; Subject selfServeRole; Solution coreDataSolution; accessRuleReportFactory = new AccessRuleDisplayReportFactory( ); accessRuleFactory = new AccessRuleFactory( ); using (DatabaseContext databaseContext = DatabaseContext.GetContext(true)) using (new SecurityBypassContext( )) { selfServeRole = Entity.Get <Subject>("core:selfServeRole", true); coreDataSolution = CodeNameResolver.GetInstance("ReadiNow Core Data", "Application").As <Solution>( ); // Allow the test to be rerun by re-enabling the allow all Administrators access rule //EnableAdministratorAccessAllRule( ); // Create access rules //DeleteAccessRules( ReportTypeNames, SelfServeCreateAccessRuleNameTemplate ); CreateAccessRules( accessRuleFactory, accessRuleReportFactory, selfServeRole, SelfServeTypeNames, new [] { Permissions.Create }, "core:createSelfServeComponentsAccessRule", coreDataSolution); // Disable the "allow all" administrator access rule //DisableAdministratorAccessAllRule( ); databaseContext.CommitTransaction( ); } }
public void Test_CopyReport_CorrectNameWhenTypeLacksName() { SecurableEntity entityType; Report report; entityType = new EntityType().As <SecurableEntity>(); report = new AccessRuleDisplayReportFactory().GetDisplayReportForSecurableEntity(entityType); Assert.That(report, Has.Property("Name").EqualTo(AccessRuleDisplayReportFactory.DefaultReportName)); Assert.That(report, Has.Property("Description").EqualTo(string.Empty)); }
public void HobbleAdministratorsRole() { IAccessRuleFactory accessRuleFactory; IAccessRuleReportFactory accessRuleReportFactory; Subject administratorsRole; accessRuleReportFactory = new AccessRuleDisplayReportFactory(); accessRuleFactory = new AccessRuleFactory(); using (DatabaseContext databaseContext = DatabaseContext.GetContext(true)) using (new SecurityBypassContext()) { administratorsRole = Entity.Get <Subject>("core:administratorRole", true); // Allow the test to be rerun by re-enabling the allow all Administrators access rule EnableAdministratorAccessAllRule(); // Create full control access rules DeleteAccessRules(FullControlTypeNames, AdministratorsFullControlAccessRuleNameTemplate); CreateAccessRules( accessRuleFactory, accessRuleReportFactory, administratorsRole, FullControlTypeNames, new[] { Permissions.Create, Permissions.Read, Permissions.Modify, Permissions.Delete }, AdministratorsFullControlAccessRuleNameTemplate); // Create read modify access rules DeleteAccessRules(ReadModifyTypeNames, AdministratorsReadModifyAccessRuleNameTemplate); CreateAccessRules( accessRuleFactory, accessRuleReportFactory, administratorsRole, ReadModifyTypeNames, new[] { Permissions.Read, Permissions.Modify }, AdministratorsReadModifyAccessRuleNameTemplate); // Create read only access rules DeleteAccessRules(ReadOnlyTypeNames, AdministratorsReadOnlyAccessRuleNameTemplate); CreateAccessRules( accessRuleFactory, accessRuleReportFactory, administratorsRole, ReadOnlyTypeNames, new[] { Permissions.Read }, AdministratorsReadOnlyAccessRuleNameTemplate); // Disable the "allow all" administrator access rule DisableAdministratorAccessAllRule(); databaseContext.CommitTransaction(); } }
public void Test_CopyReport_CorrectEntityType() { SecurableEntity entityType; Report report; entityType = Entity.Get <SecurableEntity>("core:report"); report = new AccessRuleDisplayReportFactory().GetDisplayReportForSecurableEntity(entityType); Assert.That(report.RootNode.As <ResourceReportNode>(), Has.Property("ResourceReportNodeType").Property("Alias").EqualTo(entityType.Alias)); Assert.That(report, Has.Property("ReportUsesDefinition").Property("Alias").EqualTo(entityType.Alias)); }
public void AddMissingAccessRules() { IAccessRuleFactory accessRuleFactory; IAccessRuleReportFactory accessRuleReportFactory; Subject administratorsRole; Subject everyoneRole; Solution coreDataSolution; accessRuleReportFactory = new AccessRuleDisplayReportFactory(); accessRuleFactory = new AccessRuleFactory(); using (DatabaseContext databaseContext = DatabaseContext.GetContext(true)) using (new SecurityBypassContext()) { administratorsRole = Entity.Get <Subject>("core:administratorRole", true); everyoneRole = Entity.Get <Subject>("core:everyoneRole", true); coreDataSolution = CodeNameResolver.GetInstance("ReadiNow Core Data", "Application").As <Solution>(); Console.WriteLine("Create access rule in solution {0}", coreDataSolution.Id); CreateAccessRules( accessRuleFactory, accessRuleReportFactory, administratorsRole, new [] { "core:importConfig" }, new [] { Permissions.Create, Permissions.Read, Permissions.Modify, Permissions.Delete }, AdministratorsFullControlAccessRuleNameTemplate, coreDataSolution); CreateAccessRules( accessRuleFactory, accessRuleReportFactory, administratorsRole, new [] { "core:importRun" }, new [] { Permissions.Read, Permissions.Modify }, AdministratorsReadModifyAccessRuleNameTemplate, coreDataSolution); //var types = new[] { "core:board", "core:boardDimension" }; //DeleteAccessRules(types, EveryoneReadModifyControlAccessRuleNameTemplate); //CreateAccessRules( // accessRuleFactory, // accessRuleReportFactory, // everyoneRole, // types, // new[] { Permissions.Create, Permissions.Read, Permissions.Modify }, // EveryoneReadModifyControlAccessRuleNameTemplate, // coreDataSolution); databaseContext.CommitTransaction(); } }
public void Test_CopyReport_CorrectNameDescriptionAndColumnNames() { SecurableEntity entityType; Report report; entityType = Entity.Get <SecurableEntity>("core:report"); report = new AccessRuleDisplayReportFactory().GetDisplayReportForSecurableEntity(entityType); Assert.That(report, Has.Property("Name").EqualTo(entityType.Name)); Assert.That(report, Has.Property("Description").EqualTo(string.Empty)); Assert.That(report.ReportColumns.Select(rc => rc.Name), Is.EquivalentTo(new [] { "Id", entityType.Name, "Description" }), "Incorrect column names"); }
public void Test_CopyReport_NoResourceKeyViolation() { SecurableEntity entityType; IAccessRuleReportFactory accessRuleReportFactory; entityType = Entity.Get <EntityType>("core:report").As <SecurableEntity>(); accessRuleReportFactory = new AccessRuleDisplayReportFactory(); Assert.That(() => accessRuleReportFactory.GetDisplayReportForSecurableEntity(entityType), Throws.Nothing); Assert.That(() => accessRuleReportFactory.GetDisplayReportForSecurableEntity(entityType), Throws.Nothing); Assert.That(() => accessRuleReportFactory.GetDisplayReportForSecurableEntity(entityType), Throws.Nothing); }
public void Test_GetDisplayReportForSecurableEntity_EnsureDifferent() { EntityType entityType; IAccessRuleReportFactory accessRuleReportFactory; Report report1; Report report2; entityType = new EntityType(); entityType.Save(); accessRuleReportFactory = new AccessRuleDisplayReportFactory(); report1 = accessRuleReportFactory.GetDisplayReportForSecurableEntity(entityType.As <SecurableEntity>()); report2 = accessRuleReportFactory.GetDisplayReportForSecurableEntity(entityType.As <SecurableEntity>()); Assert.That(report1, Has.Property("Id").Not.EqualTo(report2.Id)); }
public void Test_GetDisplayReportForSecurableEntity_ValidSecurityQuery() { EntityType entityType; IAccessRuleReportFactory accessRuleReportFactory; Report report; StructuredQuery reportStructuredQuery; entityType = new EntityType(); entityType.Save(); accessRuleReportFactory = new AccessRuleDisplayReportFactory(); report = accessRuleReportFactory.GetDisplayReportForSecurableEntity(entityType.As <SecurableEntity>()); reportStructuredQuery = ReportToQueryConverter.Instance.Convert(report); Assert.That(reportStructuredQuery, Has.Property("SelectColumns").Count.EqualTo(reportStructuredQuery.SelectColumns.Count), "Select column mismatch"); Assert.That(reportStructuredQuery.SelectColumns.Any(sc => sc.Expression is IdExpression), Is.EqualTo(reportStructuredQuery.SelectColumns.Any(sc => sc.Expression is IdExpression)), "Id Expression mismatch"); }