internal AccessControlList GetAccessControlList(int entityId, EntryType entryType = EntryType.Normal) { EnterReadLock(); try { var entity = GetEntitySafe(entityId, true); var aclInfo = GetFirstAclSafe(entityId, false); return(aclInfo == null ? AclInfo.CreateEmptyAccessControlList(entityId, entity.IsInherited) : aclInfo.ToAccessControlList(entityId, entryType)); } finally { ExitReadLock(); } }
internal static AccessControlList GetAccessControlList(SecurityContext ctx, int entityId, EntryType entryType = EntryType.Normal) { EnterReadLock(); try { var entity = SecurityEntity.GetEntitySafe(ctx, entityId, true); var aclInfo = GetFirstAclSafe(ctx, entityId, false); if (aclInfo == null) { return(AclInfo.CreateEmptyAccessControlList(entityId, entity.IsInherited)); //means breaked and cleared } return(aclInfo.ToAccessContolList(entityId, entryType)); } finally { ExitReadLock(); } }