For an intranet use I tried to add an extra access option. The "Group content visibility" field allows you add values. So I added a new value 3 with a label that has only meaning in the organisation not in Drupal. This new value 3 in the case statement of og_access_node_access_records is dealt the same way as OG_CONTENT_ACCESS_PUBLIC, its not doing anything and that is precisely what we wanted. In terms of Drupal it should be treated as site accessible content.

All seems to work as expected, there is however one change of behaviour I do not understand. I must be overlooking something because when I set the "Group content visibility" to value OG_CONTENT_ACCESS_PRIVATE, and when accessed by somebody not a member of the audience, then the browser is not responding on that particular node and after long waiting no "Access denied" message is displayed. Users that belong to the audience they can access the node normally.

The question is why an extra select value in the "Group content visibility" field can influence this bahaviour? Why isn't the private node not responding like before with access denied? I would write my own module to override things, but at the moment I don't know what to override really.