code: def has_module_perms(self, user_obj, app_label):
          
          # get permission handlers fot this perm
          cache_name = '_%s_cache' % app_label
          if hasattr(self, cache_name):
              handlers = getattr(self, cache_name)
          else:
              handlers = [h for h in registry.get_handlers()
                          if app_label in h.get_supported_app_labels()]
              setattr(self, cache_name, handlers)
          for handler in handlers:
              if handler.has_module_perms(user_obj, app_label):
                  return True
          return False
docs: Check if user have permission of specified app based on registered
          handlers.
  
          It will raise ``ObjectDoesNotExist`` exception when the specified
          string permission does not exist and
          ``PERMISSION_CHECK_PERMISSION_PRESENCE`` is ``True`` in ``settings``
          module.
  
          Parameters
          ----------
          user_obj : django user model instance
              A django user model instance which is checked
          app_label : string
              `app_label.codename` formatted permission string
  
          Returns
          -------
          boolean
              Whether the specified user have specified permission.
  
          Raises
          ------
          django.core.exceptions.ObjectDoesNotExist
              If the specified string permission does not exist and
              ``PERMISSION_CHECK_PERMISSION_PRESENCE`` is ``True`` in ``settings``
              module.