public void UsesSecurityFreeSectionToAccessTenantOfUser() { ISecurityContext userSecurityContext; ISecurityContext tenantSecurityContext; using (ClientTransaction.CreateRootTransaction().EnterDiscardingScope()) { var user = _userHandle.GetObject(); userSecurityContext = ((ISecurityContextFactory)user).CreateSecurityContext(); tenantSecurityContext = ((ISecurityContextFactory)user.Tenant).CreateSecurityContext(); } var securityProviderStub = MockRepository.GenerateStub <ISecurityProvider>(); securityProviderStub.Stub(stub => stub.IsNull).Return(false); securityProviderStub .Stub(_ => _.GetAccess(Arg.Is(userSecurityContext), Arg <ISecurityPrincipal> .Is.Anything)) .Throw(new AssertionException("GetAccess should not have been called.")); securityProviderStub .Stub(_ => _.GetAccess(Arg.Is(tenantSecurityContext), Arg <ISecurityPrincipal> .Is.Anything)) .Return(new AccessType[0]); var serviceLocator = DefaultServiceLocator.Create(); serviceLocator.RegisterSingle(() => securityProviderStub); serviceLocator.RegisterSingle <IPrincipalProvider> (() => new NullPrincipalProvider()); using (new ServiceLocatorScope(serviceLocator)) { SecurityManagerPrincipal principal = new SecurityManagerPrincipal(_rootTenantHandle, _userHandle, null); Assert.That(principal.GetTenants(true), Is.Empty); } }
public void ExcludeAbstractTenants() { SecurityManagerPrincipal principal = new SecurityManagerPrincipal(_rootTenantHandle, _userHandle, null); Assert.That( principal.GetTenants(false).Select(t => t.ID), Is.EqualTo(new[] { _rootTenantHandle.ObjectID, _grandChildTenantHandle.ObjectID })); }
public void SerializesCache() { var deserialized = Serializer.SerializeAndDeserialize(Tuple.Create(_principal, _principal.Tenant)); SecurityManagerPrincipal deserialziedSecurityManagerPrincipal = deserialized.Item1; TenantProxy deserialziedTenant = deserialized.Item2; Assert.That(deserialziedSecurityManagerPrincipal.Tenant, Is.SameAs(deserialziedTenant)); }
public void SerializesCache() { var deserialized = Serializer.SerializeAndDeserialize(Tuple.Create(_principal, _principal.Substitution)); SecurityManagerPrincipal deserialziedSecurityManagerPrincipal = deserialized.Item1; SubstitutionProxy deserialziedSubstitution = deserialized.Item2; Assert.That(deserialziedSecurityManagerPrincipal.Substitution, Is.SameAs(deserialziedSubstitution)); }
public void SerializesCache() { var deserialized = Serializer.SerializeAndDeserialize(Tuple.Create(_principal, _principal.GetSecurityPrincipal())); SecurityManagerPrincipal deserialziedSecurityManagerPrincipal = deserialized.Item1; ISecurityPrincipal deserialziedSecurityPrincipal = deserialized.Item2; Assert.That(deserialziedSecurityManagerPrincipal.GetSecurityPrincipal(), Is.SameAs(deserialziedSecurityPrincipal)); }
public void GetTenantHierarchyFromUser() { SecurityManagerPrincipal principal = new SecurityManagerPrincipal(_childTenantHandle, _userHandle, null); Assert.That( principal.GetTenants(true).Select(t => t.ID), Is.EqualTo(new[] { _rootTenantHandle.ObjectID, _childTenantHandle.ObjectID, _grandChildTenantHandle.ObjectID })); }
public override void SetUp() { base.SetUp(); SecurityManagerPrincipal.Current = SecurityManagerPrincipal.Null; ClientTransaction.CreateRootTransaction().EnterDiscardingScope(); _user = User.FindByUserName("substituting.user"); _tenant = _user.Tenant; _principal = CreateSecurityManagerPrincipal(_tenant, _user, null); }
public void Initialize_SetsMembers() { User user = User.FindByUserName("substituting.user"); Tenant tenant = user.Tenant; Substitution substitution = user.GetActiveSubstitutions().First(); SecurityManagerPrincipal principal = CreateSecurityManagerPrincipal(tenant, user, substitution); Assert.That(principal.Tenant.ID, Is.EqualTo(tenant.ID)); Assert.That(principal.Tenant, Is.Not.SameAs(tenant)); Assert.That(principal.User.ID, Is.EqualTo(user.ID)); Assert.That(principal.User, Is.Not.SameAs(user)); Assert.That(principal.Substitution.ID, Is.EqualTo(substitution.ID)); Assert.That(principal.Substitution, Is.Not.SameAs(substitution)); }
public void ExcludeInactiveSubstitutions() { SecurityManagerPrincipal principal = new SecurityManagerPrincipal(_tenantHandle, _userHandle, null); Assert.That(principal.GetActiveSubstitutions().Select(s => s.ID), Is.EquivalentTo(_substitutionIDs)); }