private bool Update2(PermissionSetTriple currentTriple, FrameSecurityDescriptor fsd, bool fDeclarative)
{
PermissionSet denials = fsd.GetDenials(fDeclarative);
if (denials != null)
{
currentTriple.UpdateRefused(denials);
}
PermissionSet permitOnly = fsd.GetPermitOnly(fDeclarative);
if (permitOnly != null)
{
currentTriple.UpdateGrant(permitOnly);
}
if (fsd.GetAssertAllPossible())
{
if (currentTriple.GrantSet == null)
{
currentTriple.GrantSet = PermissionSet.s_fullTrust;
}
this.UpdateTripleListAndCreateNewTriple(currentTriple, this.m_permSetTriples);
currentTriple.GrantSet = PermissionSet.s_fullTrust;
currentTriple.UpdateAssert(fsd.GetAssertions(fDeclarative));
return(true);
}
PermissionSet assertions = fsd.GetAssertions(fDeclarative);
if (assertions != null)
{
if (assertions.IsUnrestricted())
{
if (currentTriple.GrantSet == null)
{
currentTriple.GrantSet = PermissionSet.s_fullTrust;
}
this.UpdateTripleListAndCreateNewTriple(currentTriple, this.m_permSetTriples);
currentTriple.GrantSet = PermissionSet.s_fullTrust;
currentTriple.UpdateAssert(assertions);
return(true);
}
PermissionSetTriple permissionSetTriple = currentTriple.UpdateAssert(assertions);
if (permissionSetTriple != null)
{
this.EnsureTriplesListCreated();
this.m_permSetTriples.Add((object)permissionSetTriple);
}
}
return(false);
}