@Override public EnclosedIterable<PortalPage> get(final ApplicationUser user, final RetrievalDescriptor ids) { return get(ids); }
@Override public EnclosedIterable<SharedEntity> getAllIndexableSharedEntities() { @SuppressWarnings("unchecked") final EnclosedIterable<SharedEntity> all = (EnclosedIterable) getAll(); return all; }
@Override public PortalPage getSharedEntity(final ApplicationUser user, final Long entityId) { notNull("entityId", entityId); return getPortalPage(user, entityId); }
@Override public PortalPage getPortalPage(final ApplicationUser user, final Long id) { notNull("id", id); final PortalPage portalPage = portalPageStore.getPortalPage(id); if (portalPage == null) { return null; } // the System Default Dashboard is a special page and can be // shown to anyone including the Anonymous (null) user if (!hasPermissionToUse(user, portalPage)) { return null; } return setRelatedState(portalPage); }
@Override public PortalPage createBasedOnClone(final ApplicationUser pageOwner, final PortalPage portalPage, final PortalPage clonePortalPage) { assertCreate(portalPage); notNull("clonePortalPage", clonePortalPage); //need to set the layout here since it determines the number of columns for the new portal page. (JRA-16991) final PortalPage portalPageToCreate = PortalPage.portalPage(portalPage).layout(clonePortalPage.getLayout()).build(); final PortalPage newPortalPage = createNoEvent(portalPageToCreate); clonePortletsFromOnePageToAnother(pageOwner, clonePortalPage, newPortalPage); eventPublisher.publish(new DashboardCreated(newPortalPage, authenticationContext.getUser())); return newPortalPage; }
@Override public List<List<PortletConfiguration>> getPortletConfigurations(final Long portalPageId) { final List<List<PortletConfiguration>> columns = new ArrayList<List<PortletConfiguration>>(); final List<PortletConfiguration> portletConfigurations = portletConfigurationManager.getByPortalPage(portalPageId); final PortalPage portalPage = getPortalPageById(portalPageId); if ((portalPage != null) && !portletConfigurations.isEmpty()) { initColumns(portalPage.getLayout().getNumberOfColumns(), columns); for (final PortletConfiguration portletConfiguration : portletConfigurations) { final int column = portletConfiguration.getColumn(); columns.get(column).add(portletConfiguration); } //Once all portlet configs are inserted, sort each column then make it an unmodifieable list. for (int i = 0; i < columns.size(); i++) { final List<PortletConfiguration> column = columns.get(i); Collections.sort(column); columns.set(i, Collections.<PortletConfiguration> unmodifiableList(column)); } } return Collections.unmodifiableList(columns); }
protected PortalPage createNoEvent(final PortalPage portalPage) { assertCreate(portalPage); final PortalPage createdPortalPage = PortalPage.portalPage(portalPageStore.create(portalPage)).permissions(portalPage.getPermissions()).build(); shareManager.updateSharePermissions(createdPortalPage); indexer.index(createdPortalPage).await(); return createdPortalPage; }
@Override public PortalPage getSharedEntity(final Long entityId) { notNull("entityId", entityId); return getPortalPageById(entityId); }
@Override public PortalPage create(final PortalPage portalPage) { final PortalPage createdPortalPage = createNoEvent(portalPage); eventPublisher.publish(new DashboardCreated(createdPortalPage, authenticationContext.getUser())); return createdPortalPage; }
private void clonePortletsFromOnePageToAnother(final ApplicationUser owner, final PortalPage clonePortalPage, final PortalPage targetPortalPage) { notNull("owner", owner); notNull("clonePortalPage", clonePortalPage); notNull("targetPortalPage", targetPortalPage); final GadgetPermissionManager gadgetPermissionManager = getGadgetPermissionManager(); final List<PortletConfiguration> pcsToClone = portletConfigurationManager.getByPortalPage(clonePortalPage.getId()); for (final PortletConfiguration pc : pcsToClone) { Option<PluginGadgetSpec> pluginGadgetSpec = gadgetPermissionManager.getPluginGadgetSpec(pc.getOpenSocialSpecUri().getOrNull()); final boolean userHasPermissionToOpenSocialGadget = (pluginGadgetSpec.isDefined()) && ALLOW.equals(gadgetPermissionManager.voteOn(pluginGadgetSpec.get(), owner)); final boolean isDashboardItem = pc.getCompleteModuleKey().isDefined(); if (isDashboardItem || userHasPermissionToOpenSocialGadget) { portletConfigurationManager.addDashBoardItem( targetPortalPage.getId(), pc.getColumn(), pc.getRow(), pc.getOpenSocialSpecUri(), pc.getColor(), pc.getUserPrefs(), pc.getCompleteModuleKey()); } } }
@Override public PortalPage update(final PortalPage portalPage) { assertCreate(portalPage); notNull("portalPage.id", portalPage.getId()); final PortalPage newPortalPage = PortalPage.portalPage(portalPageStore.update(portalPage)).permissions(portalPage.getPermissions()).build(); shareManager.updateSharePermissions(newPortalPage); indexer.index(newPortalPage).await(); eventPublisher.publish(new DashboardUpdated(portalPage, newPortalPage, authenticationContext.getUser())); return newPortalPage; }