docs: def _parse_acl(acl, user, group):
      '''
      Parse a single ACL rule
      '''
      comps = acl.split(':')
      vals = {}
  
      # What type of rule is this?
      vals['type'] = 'acl'
      if comps[0] == 'default':
          vals['type'] = 'default'
          comps.pop(0)
  
      # If a user is not specified, use the owner of the file
      if comps[0] == 'user' and not comps[1]:
          comps[1] = user
      elif comps[0] == 'group' and not comps[1]:
          comps[1] = group
      vals[comps[0]] = comps[1]
  
      # Set the permissions fields
      octal = 0
      vals['permissions'] = {}
      if 'r' in comps[-1]:
          octal += 4
          vals['permissions']['read'] = True
      else:
          vals['permissions']['read'] = False
      if 'w' in comps[-1]:
          octal += 2
          vals['permissions']['write'] = True
      else:
          vals['permissions']['write'] = False
      if 'x' in comps[-1]:
          octal += 1
          vals['permissions']['execute'] = True
      else:
          vals['permissions']['execute'] = False
      vals['octal'] = octal
  
      return vals