Package org.infoglue.cms.entities.workflow

Examples of org.infoglue.cms.entities.workflow.Event


      Database db = CastorDatabaseService.getDatabase();
    beginTransaction(db);

        try
        {
          Event event = EventController.getEventWithId(eventId, db);
          if(event.getTypeId().intValue() == EventVO.PUBLISH.intValue())
          {
            event.setTypeId(EventVO.PUBLISH_DENIED);
            if(event.getEntityClass().equals(ContentVersion.class.getName()))
            {
              ContentVersion contentVersion = ContentVersionController.getContentVersionController().getContentVersionWithId(event.getEntityId(), db);
              if(contentVersion.getStateId().intValue() == ContentVersionVO.PUBLISHED_STATE.intValue())
              {
                //If its a published version we just deletes the event - we don't want to delete the version.
                EventController.delete(event, db);
              }
              else
              {
                Content content = contentVersion.getOwningContent();
                Language language = contentVersion.getLanguage();
                //event.setEntityId(ContentVersionController.getPreviousContentVersionVO(content.getId(), language.getId(), contentVersion.getId()).getId());
                event.setEntityId(ContentVersionController.getContentVersionController().getPreviousActiveContentVersionVO(content.getId(), language.getId(), contentVersion.getId(), db).getId());
                ContentVersionController.getContentVersionController().delete(contentVersion, db);
              }
            }
            else if(event.getEntityClass().equals(SiteNodeVersion.class.getName()))
            {
              SiteNodeVersion siteNodeVersion = SiteNodeVersionController.getController().getSiteNodeVersionWithId(event.getEntityId(), db);
              if(siteNodeVersion.getStateId().intValue() == SiteNodeVersionVO.PUBLISHED_STATE.intValue())
              {
                //If its a published version we just deletes the event - we don't want to delete the version.
                EventController.delete(event, db);
              }
              else
              {
                SiteNode siteNode = siteNodeVersion.getOwningSiteNode();
                //event.setEntityId(SiteNodeVersionController.getPreviousSiteNodeVersionVO(siteNode.getId(), siteNodeVersion.getId()).getId());
                event.setEntityId(SiteNodeVersionController.getController().getPreviousActiveSiteNodeVersionVO(siteNode.getId(), siteNodeVersion.getId(), db).getId());
                SiteNodeVersionController.getController().delete(siteNodeVersion, db);
                //db.remove(siteNodeVersion);
              }
            }
          }
          else if(event.getTypeId().intValue() == EventVO.UNPUBLISH_LATEST.intValue())
          {
            event.setTypeId(EventVO.UNPUBLISH_DENIED);
            if(event.getEntityClass().equals(ContentVersion.class.getName()))
            {
              event.setEntityClass(Content.class.getName());
              event.setEntityId(ContentVersionController.getContentVersionController().getContentVersionWithId(event.getEntityId(), db).getOwningContent().getId());
            }
            else if(event.getEntityClass().equals(SiteNodeVersion.class.getName()))
            {
              event.setEntityClass(SiteNode.class.getName());
              event.setEntityId(SiteNodeVersionController.getController().getSiteNodeVersionWithId(event.getEntityId(), db).getOwningSiteNode().getId());
            }
          }

          //InfoGluePrincipal infoGluePrincipal = InfoGluePrincipalControllerProxy.getController().getInfoGluePrincipal(event.getCreator());
          InfoGluePrincipal infoGluePrincipal = UserControllerProxy.getController().getUser(event.getCreator());

          String email = (infoGluePrincipal!=null) ? infoGluePrincipal.getEmail() : publisher.getEmail();
      if(infoGluePrincipal == null)
        comment += "\n\n\n(" +  event.getCreator() + " wasn't found.)";

          mailNotification(event, publisher.getName(), publisher.getEmail(), email, comment, referenceUrl);

      commitTransaction(db);
        }
View Full Code Here


      Iterator eventIterator = eventVOList.iterator();
      while(eventIterator.hasNext())
      {
        EventVO eventVO = (EventVO)eventIterator.next();

        Event event = EventController.getEventWithId(eventVO.getId(), db);
        //InfoGluePrincipal infoGluePrincipal = InfoGluePrincipalControllerProxy.getController().getInfoGluePrincipal(event.getCreator());
            InfoGluePrincipal infoGluePrincipal = UserControllerProxy.getController().getUser(event.getCreator());

        if(event.getTypeId().intValue() == EventVO.PUBLISH.intValue())
        {
          event.setTypeId(EventVO.PUBLISH_DENIED);
          if(event.getEntityClass().equals(ContentVersion.class.getName()))
          {
            ContentVersion contentVersion = ContentVersionController.getContentVersionController().getContentVersionWithId(event.getEntityId(), db);
            if(contentVersion.getStateId().intValue() == ContentVersionVO.PUBLISHED_STATE.intValue())
            {
              //If its a published version we just deletes the event - we don't want to delete the version.
              EventController.delete(event, db);
            }
            else
            {
              Content content = contentVersion.getOwningContent();
              Language language = contentVersion.getLanguage();
              //event.setEntityId(ContentVersionController.getPreviousContentVersionVO(content.getId(), language.getId(), contentVersion.getId()).getId());
              ContentVersionVO contentVersionVO = ContentVersionController.getContentVersionController().getPreviousActiveContentVersionVO(content.getId(), language.getId(), contentVersion.getId(), db);
              if(contentVersionVO != null && event != null)
                event.setEntityId(contentVersionVO.getId());
             
              ContentVersionController.getContentVersionController().delete(contentVersion, db);
            }
          }
          else if(event.getEntityClass().equals(SiteNodeVersion.class.getName()))
          {
            SiteNodeVersion siteNodeVersion = SiteNodeVersionController.getController().getSiteNodeVersionWithId(event.getEntityId(), db);
            if(siteNodeVersion.getStateId().intValue() == SiteNodeVersionVO.PUBLISHED_STATE.intValue())
            {
              //If its a published version we just deletes the event - we don't want to delete the version.
              EventController.delete(event, db);
            }
            else
            {
              SiteNode siteNode = siteNodeVersion.getOwningSiteNode();
              //event.setEntityId(SiteNodeVersionController.getPreviousSiteNodeVersionVO(siteNode.getId(), siteNodeVersion.getId()).getId());
              SiteNodeVersion previousSiteNodeVersion = SiteNodeVersionController.getController().getPreviousActiveSiteNodeVersion(siteNode.getId(), siteNodeVersion.getId(), db);
              if(previousSiteNodeVersion != null && event != null)
                event.setEntityId(previousSiteNodeVersion.getId());
              SiteNodeVersionController.getController().delete(siteNodeVersion, db);
              SiteNodeStateController.getController().changeStateOnMetaInfo(db, siteNode.getValueObject(), previousSiteNodeVersion.getValueObject(), previousSiteNodeVersion.getStateId(), "Denied publication", true, infoGluePrincipal, new ArrayList());
              //db.remove(siteNodeVersion);
            }
          }
        }
        else if(event.getTypeId().intValue() == EventVO.UNPUBLISH_LATEST.intValue())
        {
          event.setTypeId(EventVO.UNPUBLISH_DENIED);
          if(event.getEntityClass().equals(ContentVersion.class.getName()))
          {
            event.setEntityClass(Content.class.getName());
            event.setEntityId(ContentVersionController.getContentVersionController().getContentVersionWithId(event.getEntityId(), db).getOwningContent().getId());
          }
          else if(event.getEntityClass().equals(SiteNodeVersion.class.getName()))
          {
            event.setEntityClass(SiteNode.class.getName());
            event.setEntityId(SiteNodeVersionController.getController().getSiteNodeVersionWithId(event.getEntityId(), db).getOwningSiteNode().getId());
          }
        }

        String email = (infoGluePrincipal!=null) ? infoGluePrincipal.getEmail() : publisher.getEmail();
        if(infoGluePrincipal == null)
          comment += "\n\n\n(" +  event.getCreator() + " wasn't found.)";
       
        mailNotification(event, publisher.getName(), publisher.getEmail(), email, comment, referenceUrl);
      }

      commitRegistryAwareTransaction(db);
View Full Code Here

   * Creates a new Event with the values in the eventVO sent in.
   */
 
  public static EventVO create(EventVO eventVO, Integer repositoryId, InfoGluePrincipal infoGluePrincipal, Database db) throws SystemException
    {
        Event event = new EventImpl();
        event.setValueObject(eventVO);       
        event.setRepositoryId(repositoryId);
        event.setCreator(infoGluePrincipal.getName());
       
        try
        {
            db.create(event);
        }
        catch(Exception e)
        {
            logger.error("An error occurred so we should not complete the transaction:" + e, e);
            throw new SystemException(e.getMessage());
        }
       
        return event.getValueObject();
   
View Full Code Here

   * Creates a new Event with the values in the eventVO sent in in a new transaction.
   */
 
  public static EventVO create(EventVO eventVO, Integer repositoryId, InfoGluePrincipal infoGluePrincipal) throws SystemException
    {
        Event event = null;
   
        Database db = CastorDatabaseService.getDatabase();
    beginTransaction(db);
    try
        {
          event = new EventImpl();
          event.setValueObject(eventVO);       
          event.setRepositoryId(repositoryId);
            event.setCreator(infoGluePrincipal.getName());
            db.create(event);
   
            commitTransaction(db);
        }
        catch(Exception e)
        {
          logger.error("An error occurred so we should not completes the transaction:" + e, e);
            rollbackTransaction(db);
            throw new SystemException(e.getMessage());
        }
       
        return event.getValueObject();
   
View Full Code Here

      QueryResults results = oql.execute();

      while (results.hasMore())
      {
        Event event = (Event)results.next();
        events.add(event.getValueObject());
      }

      results.close();
      oql.close();
View Full Code Here

     
      //logger.info("Fetching entity in read/write mode" + repositoryId);
      QueryResults results = oql.execute();
    while (results.hasMore())
        {
          Event event = (Event)results.next();
          events.add(event);
        }
           
    results.close();
    oql.close();
View Full Code Here

          //logger.info("Fetching entity in read/write mode" + repositoryId);
          QueryResults results = oql.execute(Database.READONLY);
         
      while (results.hasMore())
            {
              Event event = (Event)results.next();
              if(event.getRepositoryId() != null)
              {
                 List<EventVO> events = repoEvents.get(event.getRepositoryId());
                 if(events == null)
                 {
                   events = new ArrayList<EventVO>();
                   repoEvents.put(event.getRepositoryId(), events);
                 }
                 events.add(event.getValueObject());
              }
              else
                System.out.println("Skipping event as it does not belong to a repo...:" + event.getId());
            }
           
      results.close();
      oql.close();
View Full Code Here

          //logger.info("Fetching entity in read/write mode" + repositoryId);
          QueryResults results = oql.execute(Database.READONLY);
         
      while (results.hasMore())
            {
              Event event = (Event)results.next();
            //logger.warn("event:" + event.getId());
              //logger.warn("entityClass:" + event.getEntityClass());
              //logger.warn("entityId:" + event.getEntityId());

              boolean isValid = true;
             
              if(validate)
              {
                try
                {
                  if(event.getEntityClass().equalsIgnoreCase(ContentVersion.class.getName()))
                  {
                    //ContentVersion contentVersion = null;
                    ContentVersionVO contentVersionVO = null;
                    ContentVO contentVO = null;
                    try
                    {
                      contentVersionVO = ContentVersionController.getContentVersionController().getContentVersionVOWithId(event.getEntityId(), db);
                      //contentVersion = ContentVersionController.getContentVersionController().getContentVersionWithId(event.getEntityId(), db);
                      if(contentVersionVO != null && contentVersionVO.getContentId() != null)
                        contentVO = ContentController.getContentController().getContentVOWithId(contentVersionVO.getContentId(), db);
                    }
                    catch(SystemException e)
                    {
                      hasBrokenItems = true;
                      throw e;
                    }
                   
                    if(contentVersionVO == null || contentVO == null)
                      {
                isValid = false;
                      hasBrokenItems = true;
              }
                    else
                    {
                      if(principal != null && filter != null && filter.equalsIgnoreCase("groupBased"))
                      {
                        String versionModifier = contentVersionVO.getVersionModifier();
                        if(versionModifier != null)
                        {
                          InfoGluePrincipal versionModifierPrincipal = UserControllerProxy.getController(db).getUser(versionModifier);
                          if(versionModifierPrincipal != null)
                          {
                            boolean hasGroup = false;
                           
                            List groups = versionModifierPrincipal.getGroups();
                            Iterator groupsIterator = groups.iterator();
                            while(groupsIterator.hasNext())
                            {
                              InfoGlueGroup group = (InfoGlueGroup)groupsIterator.next();
                              if(principal.getGroups().contains(group))
                                hasGroup = true;
                            }
                           
                            if(!hasGroup)
                              isValid = false;
                          }
                        }
                      }
                      else if(principal != null && filter != null && filter.indexOf("groupNameBased_") > -1)
                      {
                        String versionModifier = contentVersionVO.getVersionModifier();
                        if(versionModifier != null)
                        {
                          InfoGluePrincipal versionModifierPrincipal = UserControllerProxy.getController(db).getUser(versionModifier);
                          if(versionModifierPrincipal != null)
                          {
                            boolean hasGroup = false;
                            String groupName = filter.substring(filter.indexOf("_") + 1);
                           
                            List groups = versionModifierPrincipal.getGroups();
                            Iterator groupsIterator = groups.iterator();
                            while(groupsIterator.hasNext())
                            {
                              InfoGlueGroup group = (InfoGlueGroup)groupsIterator.next();
                              if(groupName.equalsIgnoreCase(group.getName()))
                                hasGroup = true;
                            }
                           
                            if(!hasGroup)
                              isValid = false;
                          }
                        }                   
                      }
                    }
                  }
            else if(event.getEntityClass().equalsIgnoreCase(SiteNodeVersion.class.getName()))
            {
              SiteNodeVersionVO siteNodeVersion = null;
              SiteNodeVO siteNode = null;
              try
                    {
                siteNodeVersion = SiteNodeVersionController.getController().getSiteNodeVersionVOWithId(event.getEntityId(), db);
                //siteNodeVersion = SiteNodeVersionController.getController().getSiteNodeVersionWithIdAsReadOnly(event.getEntityId(), db);
                if(siteNodeVersion.getSiteNodeId() != null)
                  siteNode = SiteNodeController.getController().getSiteNodeVOWithId(siteNodeVersion.getSiteNodeId(), db);
                    }
                    catch(SystemException e)
                    {
                      hasBrokenItems = true;
                      throw e;
                    }
 
              if(siteNodeVersion == null || siteNode == null)
              {
                      hasBrokenItems = true;
                  isValid = false;
              }
              else
                    {
                      if(principal != null && filter != null && filter.equalsIgnoreCase("groupBased"))
                      {
                        String versionModifier = siteNodeVersion.getVersionModifier();
                        if(versionModifier != null)
                        {
                          InfoGluePrincipal versionModifierPrincipal = UserControllerProxy.getController(db).getUser(versionModifier);
                          if(versionModifierPrincipal != null)
                          {
                            boolean hasGroup = false;
                           
                            List groups = versionModifierPrincipal.getGroups();
                            Iterator groupsIterator = groups.iterator();
                            while(groupsIterator.hasNext())
                            {
                              InfoGlueGroup group = (InfoGlueGroup)groupsIterator.next();
                              if(principal.getGroups().contains(group))
                                hasGroup = true;
                            }
                           
                            if(!hasGroup)
                              isValid = false;
                          }
                        }
                }
                      else if(principal != null && filter != null && filter.indexOf("groupNameBased_") > -1)
                      {
                        String versionModifier = siteNodeVersion.getVersionModifier();
                        if(versionModifier != null)
                        {
                          InfoGluePrincipal versionModifierPrincipal = UserControllerProxy.getController(db).getUser(versionModifier);
                          if(versionModifierPrincipal != null)
                          {
                            boolean hasGroup = false;
                            String groupName = filter.substring(filter.indexOf("_") + 1);
                           
                            List groups = versionModifierPrincipal.getGroups();
                            Iterator groupsIterator = groups.iterator();
                            while(groupsIterator.hasNext())
                            {
                              InfoGlueGroup group = (InfoGlueGroup)groupsIterator.next();
                              if(groupName.equalsIgnoreCase(group.getName()))
                                hasGroup = true;
                            }
                           
                            if(!hasGroup)
                              isValid = false;
                          }
                        }                 
                }
                    }
            }
          }
          catch(Exception e)
          {
            isValid = false;
                hasBrokenItems = true;
          }
              }
             
        if(isValid && !hasBrokenItems)
                events.add(event.getValueObject());
            }
           
      results.close();
      oql.close();
View Full Code Here

          //logger.info("Fetching entity in read/write mode" + repositoryId);
          QueryResults results = oql.execute();
         
      while (results.hasMore())
            {
              Event event = (Event)results.next();
     
              boolean isBroken = false;
              boolean isValid = true;
              try
              {
                if(event.getEntityClass().equalsIgnoreCase(ContentVersion.class.getName()))
                {
                  ContentVersionVO contentVersionVO = null;
                  ContentVO contentVO = null;
                  try
                  {
                    contentVersionVO = ContentVersionController.getContentVersionController().getContentVersionVOWithId(event.getEntityId(), db);
                    //contentVersion = ContentVersionController.getContentVersionController().getContentVersionWithId(event.getEntityId(), db);
                    if(contentVersionVO != null && contentVersionVO.getContentId() != null)
                      contentVO = ContentController.getContentController().getContentVOWithId(contentVersionVO.getContentId(), db);
                  }
                  catch(SystemException e)
                  {
                    isBroken = true;
                    throw e;
                  }
                 
                  if(contentVersionVO == null || contentVO == null)
                    {
              isBroken = true;
              isValid = false;
              try
              {
                ContentVersion contentVersion = ContentVersionController.getContentVersionController().getContentVersionWithId(event.getEntityId(), db);
                ContentVersionController.getContentVersionController().delete(contentVersion, db);
              }
              catch (Exception e)
              {
                logger.error("Error deleting contentVersion which lacked content:" + e.getMessage(), e);
              }
            }
                  else
                  {
                    if(principal != null && filter != null && filter.equalsIgnoreCase("groupBased"))
                    {
                      String versionModifier = contentVersionVO.getVersionModifier();
                      if(versionModifier != null)
                      {
                        InfoGluePrincipal versionModifierPrincipal = UserControllerProxy.getController(db).getUser(versionModifier);
                        if(versionModifierPrincipal != null)
                        {
                          boolean hasGroup = false;
                         
                          List groups = versionModifierPrincipal.getGroups();
                          Iterator groupsIterator = groups.iterator();
                          while(groupsIterator.hasNext())
                          {
                            InfoGlueGroup group = (InfoGlueGroup)groupsIterator.next();
                            if(principal.getGroups().contains(group))
                              hasGroup = true;
                          }
                         
                          if(!hasGroup)
                            isValid = false;
                        }
                      }
                    }
                    else if(principal != null && filter != null && filter.indexOf("groupNameBased_") > -1)
                    {
                      String versionModifier = contentVersionVO.getVersionModifier();
                      if(versionModifier != null)
                      {
                        InfoGluePrincipal versionModifierPrincipal = UserControllerProxy.getController(db).getUser(versionModifier);
                        if(versionModifierPrincipal != null)
                        {
                          boolean hasGroup = false;
                          String groupName = filter.substring(filter.indexOf("_") + 1);
                         
                          List groups = versionModifierPrincipal.getGroups();
                          Iterator groupsIterator = groups.iterator();
                          while(groupsIterator.hasNext())
                          {
                            InfoGlueGroup group = (InfoGlueGroup)groupsIterator.next();
                            if(groupName.equalsIgnoreCase(group.getName()))
                              hasGroup = true;
                          }
                         
                          if(!hasGroup)
                            isValid = false;
                        }
                      }                   
                    }
                  }
                }
          else if(event.getEntityClass().equalsIgnoreCase(SiteNodeVersion.class.getName()))
          {
            SiteNodeVersionVO siteNodeVersion = null;
            SiteNodeVO siteNode = null;
           
            try
                  {
              siteNodeVersion = SiteNodeVersionController.getController().getSiteNodeVersionVOWithId(event.getEntityId(), db);
              if(siteNodeVersion != null && siteNodeVersion.getSiteNodeId() != null)
                siteNode = SiteNodeController.getController().getSiteNodeVOWithId(siteNodeVersion.getSiteNodeId(), db);
                  }
                  catch(SystemException e)
                  {
View Full Code Here

TOP

Related Classes of org.infoglue.cms.entities.workflow.Event

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.