docs: @Override
      public boolean isChannelDeepMemberOf(String fname, String groupKey) {
          final IEntityGroup distinguishedGroup = GroupService.findGroup(groupKey);
          if (distinguishedGroup == null) {
              if (this.logger.isDebugEnabled()) {
                  this.logger.debug("No group found for key '" + groupKey + "'");
              }
  
              return false;
          }
  
          final IPortletDefinition portletDefinition;
          try {
              portletDefinition = this.portletDefinitionRegistry.getPortletDefinitionByFname(fname);
          } catch (Exception e) {
              this.logger.warn(
                      "Caught exception while retrieving portlet definition for fname '"
                              + fname
                              + "'",
                      e);
              return false;
          }
  
          if (portletDefinition == null) {
              if (this.logger.isDebugEnabled()) {
                  this.logger.debug("No portlet found for key '" + fname + "'");
              }
  
              return false;
          }
  
          final String portletId = portletDefinition.getPortletDefinitionId().getStringId();
          final IEntity entity = GroupService.getEntity(portletId, IPortletDefinition.class);
          if (entity == null) {
              if (this.logger.isDebugEnabled()) {
                  this.logger.debug("No portlet found for id '" + portletId + "'");
              }
  
              return false;
          }
  
          return distinguishedGroup.deepContains(entity);
      }