docs: @Override
      @RequestCache
      public boolean canPrincipalManage(
              IAuthorizationPrincipal principal, PortletLifecycleState state, String categoryId)
              throws AuthorizationException {
          //    return doesPrincipalHavePermission
          //      (principal, IPermission.PORTAL_FRAMEWORK, IPermission.CHANNEL_PUBLISHER_ACTIVITY,
          // null);
          String owner = IPermission.PORTAL_PUBLISH;
  
          // retrieve the indicated channel from the channel registry store and
          // determine its current lifecycle state
          PortletCategory category =
                  PortletCategoryRegistryLocator.getPortletCategoryRegistry()
                          .getPortletCategory(categoryId);
          if (category == null) {
              //    	return doesPrincipalHavePermission(principal, owner,
              //				IPermission.CHANNEL_MANAGER_APPROVED_ACTIVITY, target);
              throw new AuthorizationException("Unable to locate category " + categoryId);
          }
          int order = state.getOrder();
  
          String activity = IPermission.PORTLET_MANAGER_MAINTENANCE_ACTIVITY;
          if (order <= PortletLifecycleState.MAINTENANCE.getOrder()
                  && doesPrincipalHavePermission(principal, owner, activity, categoryId)) {
              return true;
          }
  
          activity = IPermission.PORTLET_MANAGER_EXPIRED_ACTIVITY;
          if (order <= PortletLifecycleState.EXPIRED.getOrder()
                  && doesPrincipalHavePermission(principal, owner, activity, categoryId)) {
              return true;
          }
  
          activity = IPermission.PORTLET_MANAGER_ACTIVITY;
          if (order <= PortletLifecycleState.PUBLISHED.getOrder()
                  && doesPrincipalHavePermission(principal, owner, activity, categoryId)) {
              return true;
          }
  
          activity = IPermission.PORTLET_MANAGER_APPROVED_ACTIVITY;
          if (order <= PortletLifecycleState.APPROVED.getOrder()
                  && doesPrincipalHavePermission(principal, owner, activity, categoryId)) {
              return true;
          }
  
          activity = IPermission.PORTLET_MANAGER_CREATED_ACTIVITY;
          if (order <= PortletLifecycleState.CREATED.getOrder()
                  && doesPrincipalHavePermission(principal, owner, activity, categoryId)) {
              return true;
          }
  
          return false;
      }