Example usage for com.liferay.portal.kernel.model Group hasStagingGroup

List of usage examples for com.liferay.portal.kernel.model Group hasStagingGroup

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.model Group hasStagingGroup.

Prototype

public boolean hasStagingGroup();

Source Link

Usage

From source file:com.liferay.asset.publisher.web.internal.portlet.toolbar.contributor.AssetPublisherPortletToolbarContributor.java

License:Open Source License

private boolean _isVisible(AssetPublisherDisplayContext assetPublisherDisplayContext,
        PortletRequest portletRequest) {

    ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY);

    if (!assetPublisherDisplayContext.isShowAddContentButton()) {
        return false;
    }/*  ww w  .j a v a2 s  . c o  m*/

    Group scopeGroup = themeDisplay.getScopeGroup();

    if (scopeGroup.hasStagingGroup() && !scopeGroup.isStagingGroup()
            && PropsValues.STAGING_LIVE_GROUP_LOCKING_ENABLED) {

        return false;
    }

    Layout layout = themeDisplay.getLayout();

    if (layout.isLayoutPrototypeLinkActive() && assetPublisherDisplayContext.isSelectionStyleManual()) {

        return false;
    }

    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();

    String portletName = portletDisplay.getPortletName();

    if (portletName.equals(AssetPublisherPortletKeys.HIGHEST_RATED_ASSETS)) {

        return false;
    }

    if (portletName.equals(AssetPublisherPortletKeys.MOST_VIEWED_ASSETS)) {
        return false;
    }

    if (portletName.equals(AssetPublisherPortletKeys.RELATED_ASSETS)) {
        return false;
    }

    return true;
}

From source file:com.liferay.calendar.test.util.CalendarStagingTestUtil.java

License:Open Source License

public static Calendar getStagingCalendar(Group group, Calendar calendar) throws PortalException {

    if (group.hasStagingGroup()) {
        group = group.getStagingGroup();
    }//  ww w  .j a v  a  2  s  .  c o  m

    Assert.assertTrue(group.isStaged());

    return CalendarLocalServiceUtil.fetchCalendarByUuidAndGroupId(calendar.getUuid(), group.getGroupId());
}

From source file:com.liferay.calendar.web.internal.portlet.CalendarPortlet.java

License:Open Source License

protected void serveCalendarResources(ResourceRequest resourceRequest, ResourceResponse resourceResponse)
        throws Exception {

    ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);

    String keywords = ParamUtil.getString(resourceRequest, "keywords");

    Set<Calendar> calendarsSet = new LinkedHashSet<>();

    Hits hits = search(themeDisplay, keywords);

    for (Document document : hits.getDocs()) {
        long calendarId = GetterUtil.getLong(document.get(Field.ENTRY_CLASS_PK));

        Calendar calendar = _calendarService.getCalendar(calendarId);

        CalendarResource calendarResource = calendar.getCalendarResource();

        if (calendarResource.isActive()) {
            Group group = _groupLocalService.getGroup(calendar.getGroupId());

            if (group.hasStagingGroup()) {
                Group stagingGroup = group.getStagingGroup();

                long stagingGroupId = stagingGroup.getGroupId();

                if (stagingGroupId == themeDisplay.getScopeGroupId()) {
                    calendar = _calendarLocalService.fetchCalendarByUuidAndGroupId(calendar.getUuid(),
                            stagingGroupId);
                }/*from  www.  ja va2  s . c om*/
            }

            calendarsSet.add(calendar);
        }
    }

    String name = StringUtil.merge(CustomSQLUtil.keywords(keywords), StringPool.BLANK);

    LinkedHashMap<String, Object> params = new LinkedHashMap<>();

    params.put("usersGroups", themeDisplay.getUserId());

    List<Group> groups = _groupLocalService.search(themeDisplay.getCompanyId(), name, null, params, true, 0,
            SearchContainer.DEFAULT_DELTA);

    for (Group group : groups) {
        long groupClassNameId = _portal.getClassNameId(Group.class);

        addCalendar(resourceRequest, calendarsSet, groupClassNameId, group.getGroupId());
    }

    long userClassNameId = _portal.getClassNameId(User.class);

    List<User> users = _userLocalService.search(themeDisplay.getCompanyId(), keywords, 0, null, 0,
            SearchContainer.DEFAULT_DELTA, new UserFirstNameComparator());

    for (User user : users) {
        addCalendar(resourceRequest, calendarsSet, userClassNameId, user.getUserId());
    }

    JSONArray jsonArray = JSONFactoryUtil.createJSONArray();

    for (Calendar calendar : calendarsSet) {
        JSONObject jsonObject = CalendarUtil.toCalendarJSONObject(themeDisplay, calendar);

        jsonArray.put(jsonObject);
    }

    writeJSON(resourceRequest, resourceResponse, jsonArray);
}

From source file:com.liferay.exportimport.internal.background.task.LayoutStagingBackgroundTaskExecutor.java

License:Open Source License

@Override
public BackgroundTaskResult execute(BackgroundTask backgroundTask) throws PortalException {

    ExportImportConfiguration exportImportConfiguration = getExportImportConfiguration(backgroundTask);

    Map<String, Serializable> settingsMap = exportImportConfiguration.getSettingsMap();

    long userId = MapUtil.getLong(settingsMap, "userId");
    long targetGroupId = MapUtil.getLong(settingsMap, "targetGroupId");
    long sourceGroupId = MapUtil.getLong(settingsMap, "sourceGroupId");

    clearBackgroundTaskStatus(backgroundTask);

    File file = null;/*from   w w  w  . j a  va  2 s  .c  o  m*/
    MissingReferences missingReferences = null;

    try {
        ExportImportThreadLocal.setLayoutStagingInProcess(true);

        Group targetGroup = GroupLocalServiceUtil.fetchGroup(targetGroupId);

        if (targetGroup == null) {
            throw new NoSuchGroupException(
                    "Target group does not exists with the primary key " + targetGroupId);
        }

        Group sourceGroup = GroupLocalServiceUtil.getGroup(sourceGroupId);

        if (sourceGroup.hasStagingGroup()) {
            Group stagingGroup = sourceGroup.getStagingGroup();

            if (stagingGroup.getGroupId() == targetGroupId) {
                ExportImportThreadLocal.setInitialLayoutStagingInProcess(true);

                TrashEntryLocalServiceUtil.deleteEntries(sourceGroupId, true);
            }
        }

        ExportImportLifecycleManagerUtil.fireExportImportLifecycleEvent(EVENT_PUBLICATION_LAYOUT_LOCAL_STARTED,
                PROCESS_FLAG_LAYOUT_STAGING_IN_PROCESS,
                String.valueOf(exportImportConfiguration.getExportImportConfigurationId()),
                exportImportConfiguration);

        boolean privateLayout = MapUtil.getBoolean(settingsMap, "privateLayout");

        initThreadLocals(sourceGroupId, privateLayout);

        file = ExportImportLocalServiceUtil.exportLayoutsAsFile(exportImportConfiguration);

        markBackgroundTask(backgroundTask.getBackgroundTaskId(), "exported");

        missingReferences = TransactionInvokerUtil.invoke(transactionConfig,
                new LayoutStagingImportCallable(backgroundTask.getBackgroundTaskId(), exportImportConfiguration,
                        file, sourceGroupId, targetGroupId, userId));

        ExportImportThreadLocal.setInitialLayoutStagingInProcess(false);
        ExportImportThreadLocal.setLayoutStagingInProcess(false);

        ExportImportLifecycleManagerUtil.fireExportImportLifecycleEvent(
                EVENT_PUBLICATION_LAYOUT_LOCAL_SUCCEEDED, PROCESS_FLAG_LAYOUT_STAGING_IN_PROCESS,
                String.valueOf(exportImportConfiguration.getExportImportConfigurationId()),
                exportImportConfiguration);
    } catch (Throwable t) {
        ExportImportThreadLocal.setInitialLayoutStagingInProcess(false);
        ExportImportThreadLocal.setLayoutStagingInProcess(false);

        ExportImportLifecycleManagerUtil.fireExportImportLifecycleEvent(EVENT_PUBLICATION_LAYOUT_LOCAL_FAILED,
                PROCESS_FLAG_LAYOUT_STAGING_IN_PROCESS,
                String.valueOf(exportImportConfiguration.getExportImportConfigurationId()),
                exportImportConfiguration, t);

        if (_log.isDebugEnabled()) {
            _log.debug(t, t);
        } else if (_log.isWarnEnabled()) {
            _log.warn("Unable to publish layout: " + t.getMessage());
        }

        Group sourceGroup = GroupLocalServiceUtil.getGroup(sourceGroupId);

        if (sourceGroup.hasStagingGroup()) {
            ServiceContext serviceContext = new ServiceContext();

            serviceContext.setUserId(userId);

            StagingLocalServiceUtil.disableStaging(sourceGroup, serviceContext);

            List<BackgroundTask> queuedBackgroundTasks = BackgroundTaskManagerUtil.getBackgroundTasks(
                    sourceGroupId, LayoutStagingBackgroundTaskExecutor.class.getName(),
                    BackgroundTaskConstants.STATUS_QUEUED);

            for (BackgroundTask queuedBackgroundTask : queuedBackgroundTasks) {

                BackgroundTaskManagerUtil.amendBackgroundTask(queuedBackgroundTask.getBackgroundTaskId(), null,
                        BackgroundTaskConstants.STATUS_CANCELLED, new ServiceContext());
            }
        }

        deleteTempLarOnFailure(file);

        throw new SystemException(t);
    }

    deleteTempLarOnSuccess(file);

    return processMissingReferences(backgroundTask.getBackgroundTaskId(), missingReferences);
}

From source file:com.liferay.exportimport.internal.background.task.LayoutStagingBackgroundTaskExecutor.java

License:Open Source License

protected void initLayoutSetBranches(long userId, long sourceGroupId, long targetGroupId)
        throws PortalException {

    Group sourceGroup = GroupLocalServiceUtil.getGroup(sourceGroupId);

    if (!sourceGroup.hasStagingGroup()) {
        return;/*from w w w  .  j  a  v  a  2  s. c o m*/
    }

    LayoutSetBranchLocalServiceUtil.deleteLayoutSetBranches(targetGroupId, false, true);
    LayoutSetBranchLocalServiceUtil.deleteLayoutSetBranches(targetGroupId, true, true);

    UnicodeProperties typeSettingsProperties = sourceGroup.getTypeSettingsProperties();

    boolean branchingPrivate = GetterUtil.getBoolean(typeSettingsProperties.getProperty("branchingPrivate"));
    boolean branchingPublic = GetterUtil.getBoolean(typeSettingsProperties.getProperty("branchingPublic"));

    ServiceContext serviceContext = new ServiceContext();

    serviceContext.setUserId(userId);

    StagingLocalServiceUtil.checkDefaultLayoutSetBranches(userId, sourceGroup, branchingPublic,
            branchingPrivate, false, serviceContext);
}

From source file:com.liferay.exportimport.lar.PortletDataContextImpl.java

License:Open Source License

@Override
public boolean isInitialPublication() {
    Group group = null;

    try {/*  w  ww .j a v a  2s  . co m*/
        group = GroupLocalServiceUtil.getGroup(getGroupId());
    } catch (Exception e) {
    }

    if (ExportImportThreadLocal.isStagingInProcess() && (group != null) && group.hasStagingGroup()) {

        return true;
    }

    return false;
}

From source file:com.liferay.exportimport.staging.StagingImpl.java

License:Open Source License

@Override
public Group getPermissionStagingGroup(Group group) {
    if (group == null) {
        return null;
    }/*  w  w  w. j  ava  2  s . c  o  m*/

    Group stagingGroup = group;

    if (!group.isStagedRemotely() && group.hasStagingGroup()) {
        try {
            PermissionChecker permissionChecker = PermissionThreadLocal.getPermissionChecker();

            long scopeGroupId = stagingGroup.getGroupId();

            boolean hasManageStagingPermission = GroupPermissionUtil.contains(permissionChecker, scopeGroupId,
                    ActionKeys.MANAGE_STAGING);
            boolean hasPublishStagingPermission = GroupPermissionUtil.contains(permissionChecker, scopeGroupId,
                    ActionKeys.PUBLISH_STAGING);
            boolean hasViewStagingPermission = GroupPermissionUtil.contains(permissionChecker, scopeGroupId,
                    ActionKeys.VIEW_STAGING);

            if (hasManageStagingPermission || hasPublishStagingPermission || hasViewStagingPermission) {

                stagingGroup = group.getStagingGroup();
            }
        } catch (Exception e) {
        }
    }

    return stagingGroup;
}

From source file:com.liferay.exportimport.staging.StagingImpl.java

License:Open Source License

@Override
public Group getStagingGroup(long groupId) {
    Group group = _groupLocalService.fetchGroup(groupId);

    if (group == null) {
        return null;
    }//from  w  w w .  java  2 s. c o m

    Group stagingGroup = group;

    if (!group.isStagedRemotely() && group.hasStagingGroup()) {
        stagingGroup = group.getStagingGroup();
    }

    return stagingGroup;
}

From source file:com.liferay.exportimport.staging.StagingImpl.java

License:Open Source License

@Override
public boolean isGroupAccessible(Group group, Group fromGroup) {
    if (group.equals(fromGroup)) {
        return true;
    }/*from w  w w.ja  va  2  s  .c  o m*/

    if (group.isStaged() && !group.isStagedRemotely() && group.isStagingGroup()) {

        return false;
    }

    if (group.hasStagingGroup() && fromGroup.equals(group.getStagingGroup())) {

        return false;
    }

    return true;
}

From source file:com.liferay.exportimport.staging.StagingImpl.java

License:Open Source License

/**
 * @deprecated As of 4.0.0, replaced by {@link
 *             com.liferay.staging.configuration.web.internal.portlet.StagingConfigurationPortlet#editStagingConfiguration(
 *             javax.portlet.ActionRequest, javax.portlet.ActionResponse)}
 *//*from www.  j  a  v a2 s  .  c  om*/
@Deprecated
@Override
public void updateStaging(PortletRequest portletRequest, Group liveGroup) throws PortalException {

    ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY);

    PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();

    long userId = permissionChecker.getUserId();

    if (!GroupPermissionUtil.contains(permissionChecker, liveGroup, ActionKeys.MANAGE_STAGING)) {

        return;
    }

    int stagingType = getStagingType(portletRequest, liveGroup);

    boolean branchingPublic = getBoolean(portletRequest, liveGroup, "branchingPublic");
    boolean branchingPrivate = getBoolean(portletRequest, liveGroup, "branchingPrivate");
    boolean forceDisable = ParamUtil.getBoolean(portletRequest, "forceDisable");

    ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();

    serviceContext.setAttribute("forceDisable", forceDisable);

    if (stagingType == StagingConstants.TYPE_NOT_STAGED) {
        if (liveGroup.hasStagingGroup() || liveGroup.isStagedRemotely()) {
            _stagingLocalService.disableStaging(portletRequest, liveGroup, serviceContext);
        }
    } else if (stagingType == StagingConstants.TYPE_LOCAL_STAGING) {
        _stagingLocalService.enableLocalStaging(userId, liveGroup, branchingPublic, branchingPrivate,
                serviceContext);
    } else if (stagingType == StagingConstants.TYPE_REMOTE_STAGING) {
        String remoteAddress = getString(portletRequest, liveGroup, "remoteAddress");

        remoteAddress = stripProtocolFromRemoteAddress(remoteAddress);

        int remotePort = getInteger(portletRequest, liveGroup, "remotePort");
        String remotePathContext = getString(portletRequest, liveGroup, "remotePathContext");
        boolean secureConnection = getBoolean(portletRequest, liveGroup, "secureConnection");
        long remoteGroupId = getLong(portletRequest, liveGroup, "remoteGroupId");

        _stagingLocalService.enableRemoteStaging(userId, liveGroup, branchingPublic, branchingPrivate,
                remoteAddress, remotePort, remotePathContext, secureConnection, remoteGroupId, serviceContext);
    }
}