Get list of categories which
- Current user has permission in a category
- Current user doesn't have permission but has permissions in one of subscriptions in a category
Check current user has permission to access a node or not
- List all node's permissions
- For each node's permissions, get AccessControlEntries
- For each AccessControlEntries, compare with user's permissions
- If AccessControlEntry has membership type is "*", just check the user's group id only
- If AccessControlEntry has other membership types, then check the user's membership type and user's group id
- If user have full access (READ, ADD_NODE, SET_PROPERTY, REMOVE) return true
- Otherwise return false
- Other case, return false