docs: @Override
      public boolean canRender(final String userName, final String fname) {
          if (userName == null || fname == null) {
              return false;
          }
  
          final IAuthorizationPrincipal userPrincipal = this.getUserPrincipal(userName);
          if (userPrincipal == null) {
              return false;
          }
  
          final String portletId;
          try {
              final IPortletDefinition portletDefinition =
                      this.portletDefinitionRegistry.getPortletDefinitionByFname(fname);
              if (portletDefinition == null) {
                  if (this.logger.isInfoEnabled()) {
                      this.logger.info(
                              "No PortletDefinition for fname='" + fname + "', returning false.");
                  }
  
                  return false;
              }
  
              portletId = portletDefinition.getPortletDefinitionId().getStringId();
          } catch (Exception e) {
              this.logger.warn(
                      "Could not find PortletDefinition for fname='"
                              + fname
                              + "' while checking if user '"
                              + userName
                              + "' can render it. Returning FALSE.",
                      e);
              return false;
          }
  
          return userPrincipal.canRender(portletId);
      }