Fix assert error which led to this bug (See #12474)

`assert STRING, CONDITION` will always pass
since a non-empty STRING is a valid CONDITION.
Add a passing workaround test (See #12474)

As a workaround, it's possible to load a single object
per `(group, owner)` pair and cache the permissions from
that object. With this commit, the test outcomes are:

```
test/integration/test_permissions.py xxXxxXxxXXXxXXxXXxXXxXXxXXxXXXXXXXXX....................................

  30 tests deselected by '-ktestProjectionPermissions'
  36 passed, 30 deselected, 12 xfailed, 24 xpassed in 45.35 seconds
```
Merge pull request #2849 from joshmoore/12474-perm-bug

12474 perm bug