Permissions based on multiple OG groups? Is it possible to have permissions, based on multiple organic groups? 

I have 2 group content types: One 'Organisation' group type and one 'Department' group type.
There are multiple organisations and each organisation and multiple departments. Each organisation has the same departments. So for example:

ORGANISATION GROUPS:


Google
Yahoo
Microsoft
Samsung


DEPARTMENT GROUPS:


Customer Service
Management
Finance
Sales


Each user will be a member of one organisation and one or more departments.

What I want is:
If an admin adds content (like a news article), he can choose the organisations and/or departments. Users in both the chosen organisations and departments can see the content. If a user is in a chosen organisation, but not in a chosen department, he can not see the content. 

If no organisation is checked, the users in all organisations can see the content (if they are in the chosen departments). If no department is checked, the users in all departments can see the content (if they are in the chosen organisations). If no organisation and no department is checked, all users can see the content.

I tried to use sub-groups, but then the admin has to choose all the (for example) 'Sales' departments of all the organisations instead of just clicking one 'Sales' department.
It's not possible out-of-the-box.  Organic groups access control basically says if a user is in one group they can see the content in that group.

However you could write your own hook_node_access that evaluates the logic you described.