Example usage for com.liferay.portal.kernel.util PropsKeys LAYOUT_CONFIGURATION_ACTION_DELETE

List of usage examples for com.liferay.portal.kernel.util PropsKeys LAYOUT_CONFIGURATION_ACTION_DELETE

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util PropsKeys LAYOUT_CONFIGURATION_ACTION_DELETE.

Prototype

String LAYOUT_CONFIGURATION_ACTION_DELETE

To view the source code for com.liferay.portal.kernel.util PropsKeys LAYOUT_CONFIGURATION_ACTION_DELETE.

Click Source Link

Usage

From source file:com.liferay.layout.admin.web.internal.portlet.action.DeleteLayoutMVCActionCommand.java

License:Open Source License

protected void deleteLayout(long selPlid, ActionRequest actionRequest, ActionResponse actionResponse)
        throws PortalException {

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

    PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();

    Layout layout = _layoutLocalService.getLayout(selPlid);

    Group group = layout.getGroup();

    if (group.isStagingGroup()
            && !GroupPermissionUtil.contains(permissionChecker, group, ActionKeys.MANAGE_STAGING)
            && !GroupPermissionUtil.contains(permissionChecker, group, ActionKeys.PUBLISH_STAGING)) {

        throw new PrincipalException.MustHavePermission(permissionChecker, Group.class.getName(),
                group.getGroupId(), ActionKeys.MANAGE_STAGING, ActionKeys.PUBLISH_STAGING);
    }// ww  w . ja  v a  2s .  c  o m

    if (LayoutPermissionUtil.contains(permissionChecker, layout, ActionKeys.DELETE)) {

        LayoutType layoutType = layout.getLayoutType();

        EventsProcessorUtil.process(PropsKeys.LAYOUT_CONFIGURATION_ACTION_DELETE,
                layoutType.getConfigurationActionDelete(), _portal.getHttpServletRequest(actionRequest),
                _portal.getHttpServletResponse(actionResponse));
    }

    if (group.isGuest() && !layout.isPrivateLayout() && layout.isRootLayout() && (_layoutLocalService
            .getLayoutsCount(group, false, LayoutConstants.DEFAULT_PARENT_LAYOUT_ID) == 1)) {

        throw new RequiredLayoutException(RequiredLayoutException.AT_LEAST_ONE);
    }

    ServiceContext serviceContext = ServiceContextFactory.getInstance(actionRequest);

    _layoutService.deleteLayout(selPlid, serviceContext);
}

From source file:com.liferay.portlet.sites.util.SitesUtil.java

License:Open Source License

public static Object[] deleteLayout(HttpServletRequest request, HttpServletResponse response) throws Exception {

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

    PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();

    long plid = ParamUtil.getLong(request, "plid");

    long groupId = ParamUtil.getLong(request, "groupId");
    boolean privateLayout = ParamUtil.getBoolean(request, "privateLayout");
    long layoutId = ParamUtil.getLong(request, "layoutId");

    Layout layout = null;//from www.jav  a  2s.  c  o  m

    if (plid <= 0) {
        layout = LayoutLocalServiceUtil.getLayout(groupId, privateLayout, layoutId);
    } else {
        layout = LayoutLocalServiceUtil.getLayout(plid);

        groupId = layout.getGroupId();
        privateLayout = layout.isPrivateLayout();
        layoutId = layout.getLayoutId();
    }

    Group group = layout.getGroup();
    String oldFriendlyURL = layout.getFriendlyURL();

    if (group.isStagingGroup()
            && !GroupPermissionUtil.contains(permissionChecker, groupId, ActionKeys.MANAGE_STAGING)
            && !GroupPermissionUtil.contains(permissionChecker, groupId, ActionKeys.PUBLISH_STAGING)) {

        throw new PrincipalException();
    }

    if (LayoutPermissionUtil.contains(permissionChecker, layout, ActionKeys.DELETE)) {

        LayoutSettings layoutSettings = LayoutSettings.getInstance(layout);

        EventsProcessorUtil.process(PropsKeys.LAYOUT_CONFIGURATION_ACTION_DELETE,
                layoutSettings.getConfigurationActionDelete(), request, response);
    }

    LayoutSet layoutSet = layout.getLayoutSet();

    Group layoutSetGroup = layoutSet.getGroup();

    ServiceContext serviceContext = ServiceContextFactory.getInstance(request);

    if (layoutSetGroup.isLayoutSetPrototype()) {
        LayoutSetPrototype layoutSetPrototype = LayoutSetPrototypeLocalServiceUtil
                .getLayoutSetPrototype(layoutSetGroup.getClassPK());

        List<LayoutSet> linkedLayoutSets = LayoutSetLocalServiceUtil
                .getLayoutSetsByLayoutSetPrototypeUuid(layoutSetPrototype.getUuid());

        for (LayoutSet linkedLayoutSet : linkedLayoutSets) {
            Layout linkedLayout = LayoutLocalServiceUtil.fetchLayoutByUuidAndGroupId(layout.getUuid(),
                    linkedLayoutSet.getGroupId());

            if ((linkedLayout != null) && (!isLayoutUpdateable(linkedLayout)
                    || isLayoutToBeUpdatedFromSourcePrototype(linkedLayout))) {

                LayoutServiceUtil.deleteLayout(linkedLayout.getPlid(), serviceContext);
            }
        }
    }

    LayoutServiceUtil.deleteLayout(groupId, privateLayout, layoutId, serviceContext);

    long newPlid = layout.getParentPlid();

    if (newPlid <= 0) {
        Layout firstLayout = LayoutLocalServiceUtil.fetchFirstLayout(layoutSet.getGroupId(),
                layoutSet.getPrivateLayout(), LayoutConstants.DEFAULT_PARENT_LAYOUT_ID);

        if (firstLayout != null) {
            newPlid = firstLayout.getPlid();
        }
    }

    return new Object[] { group, oldFriendlyURL, newPlid };
}