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

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

Introduction

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

Prototype

public boolean hasAncestor(long groupId);

Source Link

Usage

From source file:com.liferay.asset.publisher.internal.util.AssetPublisherHelperImpl.java

License:Open Source License

@Override
public long getGroupIdFromScopeId(String scopeId, long siteGroupId, boolean privateLayout)
        throws PortalException {

    if (scopeId.startsWith(SCOPE_ID_CHILD_GROUP_PREFIX)) {
        String scopeIdSuffix = scopeId.substring(SCOPE_ID_CHILD_GROUP_PREFIX.length());

        long childGroupId = GetterUtil.getLong(scopeIdSuffix);

        Group childGroup = _groupLocalService.getGroup(childGroupId);

        if (!childGroup.hasAncestor(siteGroupId)) {
            throw new PrincipalException();
        }//  www.ja  v a2 s.c o  m

        return childGroupId;
    } else if (scopeId.startsWith(SCOPE_ID_GROUP_PREFIX)) {
        String scopeIdSuffix = scopeId.substring(SCOPE_ID_GROUP_PREFIX.length());

        if (scopeIdSuffix.equals(GroupConstants.DEFAULT)) {
            return siteGroupId;
        }

        long scopeGroupId = GetterUtil.getLong(scopeIdSuffix);

        Group scopeGroup = _groupLocalService.getGroup(scopeGroupId);

        return scopeGroup.getGroupId();
    } else if (scopeId.startsWith(SCOPE_ID_LAYOUT_UUID_PREFIX)) {
        String layoutUuid = scopeId.substring(SCOPE_ID_LAYOUT_UUID_PREFIX.length());

        Layout scopeIdLayout = _layoutLocalService.getLayoutByUuidAndGroupId(layoutUuid, siteGroupId,
                privateLayout);

        Group scopeIdGroup = _groupLocalService.checkScopeGroup(scopeIdLayout,
                PrincipalThreadLocal.getUserId());

        return scopeIdGroup.getGroupId();
    } else if (scopeId.startsWith(SCOPE_ID_LAYOUT_PREFIX)) {

        // Legacy portlet preferences

        String scopeIdSuffix = scopeId.substring(SCOPE_ID_LAYOUT_PREFIX.length());

        long scopeIdLayoutId = GetterUtil.getLong(scopeIdSuffix);

        Layout scopeIdLayout = _layoutLocalService.getLayout(siteGroupId, privateLayout, scopeIdLayoutId);

        Group scopeIdGroup = scopeIdLayout.getScopeGroup();

        return scopeIdGroup.getGroupId();
    } else if (scopeId.startsWith(SCOPE_ID_PARENT_GROUP_PREFIX)) {
        String scopeIdSuffix = scopeId.substring(SCOPE_ID_PARENT_GROUP_PREFIX.length());

        long parentGroupId = GetterUtil.getLong(scopeIdSuffix);

        Group parentGroup = _groupLocalService.getGroup(parentGroupId);

        if (!SitesUtil.isContentSharingWithChildrenEnabled(parentGroup)) {
            throw new PrincipalException();
        }

        Group group = _groupLocalService.getGroup(siteGroupId);

        if (!group.hasAncestor(parentGroupId)) {
            throw new PrincipalException();
        }

        return parentGroupId;
    } else {
        throw new IllegalArgumentException("Invalid scope ID " + scopeId);
    }
}

From source file:com.liferay.asset.publisher.internal.util.AssetPublisherHelperImpl.java

License:Open Source License

@Override
public String getScopeId(Group group, long scopeGroupId) {
    String key = null;/* www  . j  av a2  s  .c o  m*/

    if (group.isLayout()) {
        Layout layout = _layoutLocalService.fetchLayout(group.getClassPK());

        key = SCOPE_ID_LAYOUT_UUID_PREFIX + layout.getUuid();
    } else if (group.isLayoutPrototype() || (group.getGroupId() == scopeGroupId)) {

        key = SCOPE_ID_GROUP_PREFIX + GroupConstants.DEFAULT;
    } else {
        Group scopeGroup = _groupLocalService.fetchGroup(scopeGroupId);

        if (scopeGroup.hasAncestor(group.getGroupId())
                && SitesUtil.isContentSharingWithChildrenEnabled(group)) {

            key = SCOPE_ID_PARENT_GROUP_PREFIX + group.getGroupId();
        } else if (group.hasAncestor(scopeGroup.getGroupId())) {
            key = SCOPE_ID_CHILD_GROUP_PREFIX + group.getGroupId();
        } else {
            key = SCOPE_ID_GROUP_PREFIX + group.getGroupId();
        }
    }

    return key;
}

From source file:com.liferay.asset.publisher.web.internal.util.AssetPublisherWebUtil.java

License:Open Source License

public boolean isScopeIdSelectable(PermissionChecker permissionChecker, String scopeId, long companyGroupId,
        Layout layout, boolean checkPermission) throws PortalException {

    long groupId = _assetPublisherUtil.getGroupIdFromScopeId(scopeId, layout.getGroupId(),
            layout.isPrivateLayout());/*from w w  w.  j  a  v  a 2s.c  o m*/

    if (scopeId.startsWith(AssetPublisherUtil.SCOPE_ID_CHILD_GROUP_PREFIX)) {

        Group group = _groupLocalService.getGroup(groupId);

        if (!group.hasAncestor(layout.getGroupId())) {
            return false;
        }
    } else if (scopeId.startsWith(AssetPublisherUtil.SCOPE_ID_PARENT_GROUP_PREFIX)) {

        Group siteGroup = layout.getGroup();

        if (!siteGroup.hasAncestor(groupId)) {
            return false;
        }

        Group group = _groupLocalService.getGroup(groupId);

        if (SitesUtil.isContentSharingWithChildrenEnabled(group)) {
            return true;
        }

        if (!PrefsPropsUtil.getBoolean(layout.getCompanyId(),
                PropsKeys.SITES_CONTENT_SHARING_THROUGH_ADMINISTRATORS_ENABLED)) {

            return false;
        }

        if (checkPermission) {
            return GroupPermissionUtil.contains(permissionChecker, group, ActionKeys.UPDATE);
        }
    } else if ((groupId != companyGroupId) && checkPermission) {
        return GroupPermissionUtil.contains(permissionChecker, groupId, ActionKeys.UPDATE);
    }

    return true;
}

From source file:com.liferay.asset.publisher.web.util.AssetPublisherUtil.java

License:Open Source License

public static long getGroupIdFromScopeId(String scopeId, long siteGroupId, boolean privateLayout)
        throws PortalException {

    if (scopeId.startsWith(SCOPE_ID_CHILD_GROUP_PREFIX)) {
        String scopeIdSuffix = scopeId.substring(SCOPE_ID_CHILD_GROUP_PREFIX.length());

        long childGroupId = GetterUtil.getLong(scopeIdSuffix);

        Group childGroup = _groupLocalService.getGroup(childGroupId);

        if (!childGroup.hasAncestor(siteGroupId)) {
            throw new PrincipalException();
        }// ww w .  j av  a 2s .co m

        return childGroupId;
    } else if (scopeId.startsWith(SCOPE_ID_GROUP_PREFIX)) {
        String scopeIdSuffix = scopeId.substring(SCOPE_ID_GROUP_PREFIX.length());

        if (scopeIdSuffix.equals(GroupConstants.DEFAULT)) {
            return siteGroupId;
        }

        long scopeGroupId = GetterUtil.getLong(scopeIdSuffix);

        Group scopeGroup = _groupLocalService.getGroup(scopeGroupId);

        return scopeGroup.getGroupId();
    } else if (scopeId.startsWith(SCOPE_ID_LAYOUT_UUID_PREFIX)) {
        String layoutUuid = scopeId.substring(SCOPE_ID_LAYOUT_UUID_PREFIX.length());

        Layout scopeIdLayout = _layoutLocalService.getLayoutByUuidAndGroupId(layoutUuid, siteGroupId,
                privateLayout);

        Group scopeIdGroup = _groupLocalService.checkScopeGroup(scopeIdLayout,
                PrincipalThreadLocal.getUserId());

        return scopeIdGroup.getGroupId();
    } else if (scopeId.startsWith(SCOPE_ID_LAYOUT_PREFIX)) {

        // Legacy portlet preferences

        String scopeIdSuffix = scopeId.substring(SCOPE_ID_LAYOUT_PREFIX.length());

        long scopeIdLayoutId = GetterUtil.getLong(scopeIdSuffix);

        Layout scopeIdLayout = _layoutLocalService.getLayout(siteGroupId, privateLayout, scopeIdLayoutId);

        Group scopeIdGroup = scopeIdLayout.getScopeGroup();

        return scopeIdGroup.getGroupId();
    } else if (scopeId.startsWith(SCOPE_ID_PARENT_GROUP_PREFIX)) {
        String scopeIdSuffix = scopeId.substring(SCOPE_ID_PARENT_GROUP_PREFIX.length());

        long parentGroupId = GetterUtil.getLong(scopeIdSuffix);

        Group parentGroup = _groupLocalService.getGroup(parentGroupId);

        if (!SitesUtil.isContentSharingWithChildrenEnabled(parentGroup)) {
            throw new PrincipalException();
        }

        Group group = _groupLocalService.getGroup(siteGroupId);

        if (!group.hasAncestor(parentGroupId)) {
            throw new PrincipalException();
        }

        return parentGroupId;
    } else {
        throw new IllegalArgumentException("Invalid scope ID " + scopeId);
    }
}

From source file:com.liferay.asset.publisher.web.util.AssetPublisherUtil.java

License:Open Source License

public static String getScopeId(Group group, long scopeGroupId) {
    String key = null;//from  w w  w .  j a  va 2s  .  com

    if (group.isLayout()) {
        Layout layout = _layoutLocalService.fetchLayout(group.getClassPK());

        key = SCOPE_ID_LAYOUT_UUID_PREFIX + layout.getUuid();
    } else if (group.isLayoutPrototype() || (group.getGroupId() == scopeGroupId)) {

        key = SCOPE_ID_GROUP_PREFIX + GroupConstants.DEFAULT;
    } else {
        Group scopeGroup = _groupLocalService.fetchGroup(scopeGroupId);

        if (scopeGroup.hasAncestor(group.getGroupId())
                && SitesUtil.isContentSharingWithChildrenEnabled(group)) {

            key = SCOPE_ID_PARENT_GROUP_PREFIX + group.getGroupId();
        } else if (group.hasAncestor(scopeGroup.getGroupId())) {
            key = SCOPE_ID_CHILD_GROUP_PREFIX + group.getGroupId();
        } else {
            key = SCOPE_ID_GROUP_PREFIX + group.getGroupId();
        }
    }

    return key;
}

From source file:com.liferay.asset.publisher.web.util.AssetPublisherUtil.java

License:Open Source License

public static boolean isScopeIdSelectable(PermissionChecker permissionChecker, String scopeId,
        long companyGroupId, Layout layout, boolean checkPermission) throws PortalException {

    long groupId = getGroupIdFromScopeId(scopeId, layout.getGroupId(), layout.isPrivateLayout());

    if (scopeId.startsWith(SCOPE_ID_CHILD_GROUP_PREFIX)) {
        Group group = _groupLocalService.getGroup(groupId);

        if (!group.hasAncestor(layout.getGroupId())) {
            return false;
        }//from   ww  w .j a  va 2 s  . c  om
    } else if (scopeId.startsWith(SCOPE_ID_PARENT_GROUP_PREFIX)) {
        Group siteGroup = layout.getGroup();

        if (!siteGroup.hasAncestor(groupId)) {
            return false;
        }

        Group group = _groupLocalService.getGroup(groupId);

        if (SitesUtil.isContentSharingWithChildrenEnabled(group)) {
            return true;
        }

        if (!PrefsPropsUtil.getBoolean(layout.getCompanyId(),
                PropsKeys.SITES_CONTENT_SHARING_THROUGH_ADMINISTRATORS_ENABLED)) {

            return false;
        }

        if (checkPermission) {
            return GroupPermissionUtil.contains(permissionChecker, group, ActionKeys.UPDATE);
        }
    } else if ((groupId != companyGroupId) && checkPermission) {
        return GroupPermissionUtil.contains(permissionChecker, groupId, ActionKeys.UPDATE);
    }

    return true;
}