001
014
015 package com.liferay.portal.service.impl;
016
017 import com.liferay.portal.NoSuchLayoutException;
018 import com.liferay.portal.kernel.cache.ThreadLocalCachable;
019 import com.liferay.portal.kernel.exception.PortalException;
020 import com.liferay.portal.kernel.lar.ExportImportHelperUtil;
021 import com.liferay.portal.kernel.lar.MissingReferences;
022 import com.liferay.portal.kernel.lar.exportimportconfiguration.ExportImportConfigurationConstants;
023 import com.liferay.portal.kernel.lar.exportimportconfiguration.ExportImportConfigurationSettingsMapFactory;
024 import com.liferay.portal.kernel.messaging.DestinationNames;
025 import com.liferay.portal.kernel.repository.model.FileEntry;
026 import com.liferay.portal.kernel.scheduler.CronTrigger;
027 import com.liferay.portal.kernel.scheduler.SchedulerEngineHelperUtil;
028 import com.liferay.portal.kernel.scheduler.StorageType;
029 import com.liferay.portal.kernel.scheduler.Trigger;
030 import com.liferay.portal.kernel.util.GetterUtil;
031 import com.liferay.portal.kernel.util.TempFileEntryUtil;
032 import com.liferay.portal.kernel.util.Validator;
033 import com.liferay.portal.kernel.uuid.PortalUUIDUtil;
034 import com.liferay.portal.kernel.workflow.WorkflowConstants;
035 import com.liferay.portal.model.ExportImportConfiguration;
036 import com.liferay.portal.model.Group;
037 import com.liferay.portal.model.Layout;
038 import com.liferay.portal.model.LayoutConstants;
039 import com.liferay.portal.model.LayoutReference;
040 import com.liferay.portal.model.LayoutTypePortlet;
041 import com.liferay.portal.model.Plugin;
042 import com.liferay.portal.model.User;
043 import com.liferay.portal.security.permission.ActionKeys;
044 import com.liferay.portal.security.permission.PermissionChecker;
045 import com.liferay.portal.service.ServiceContext;
046 import com.liferay.portal.service.base.LayoutServiceBaseImpl;
047 import com.liferay.portal.service.permission.GroupPermissionUtil;
048 import com.liferay.portal.service.permission.LayoutPermissionUtil;
049 import com.liferay.portal.service.permission.PortletPermissionUtil;
050 import com.liferay.portal.util.PortletKeys;
051 import com.liferay.portlet.PortletPreferencesFactoryUtil;
052
053 import java.io.File;
054 import java.io.InputStream;
055 import java.io.Serializable;
056
057 import java.util.ArrayList;
058 import java.util.Date;
059 import java.util.List;
060 import java.util.Locale;
061 import java.util.Map;
062
063
072 public class LayoutServiceImpl extends LayoutServiceBaseImpl {
073
074
120 @Deprecated
121 @Override
122 public Layout addLayout(
123 long groupId, boolean privateLayout, long parentLayoutId,
124 Map<Locale, String> localeNamesMap,
125 Map<Locale, String> localeTitlesMap,
126 Map<Locale, String> descriptionMap, Map<Locale, String> keywordsMap,
127 Map<Locale, String> robotsMap, String type, boolean hidden,
128 String friendlyURL, ServiceContext serviceContext)
129 throws PortalException {
130
131 PermissionChecker permissionChecker = getPermissionChecker();
132
133 if (parentLayoutId == LayoutConstants.DEFAULT_PARENT_LAYOUT_ID) {
134 GroupPermissionUtil.check(
135 permissionChecker, groupId, ActionKeys.ADD_LAYOUT);
136 }
137 else {
138 LayoutPermissionUtil.check(
139 permissionChecker, groupId, privateLayout, parentLayoutId,
140 ActionKeys.ADD_LAYOUT);
141 }
142
143 return layoutLocalService.addLayout(
144 getUserId(), groupId, privateLayout, parentLayoutId, localeNamesMap,
145 localeTitlesMap, descriptionMap, keywordsMap, robotsMap, type,
146 hidden, friendlyURL, serviceContext);
147 }
148
149
193 @Override
194 public Layout addLayout(
195 long groupId, boolean privateLayout, long parentLayoutId,
196 Map<Locale, String> localeNamesMap,
197 Map<Locale, String> localeTitlesMap,
198 Map<Locale, String> descriptionMap, Map<Locale, String> keywordsMap,
199 Map<Locale, String> robotsMap, String type, String typeSettings,
200 boolean hidden, Map<Locale, String> friendlyURLMap,
201 ServiceContext serviceContext)
202 throws PortalException {
203
204 PermissionChecker permissionChecker = getPermissionChecker();
205
206 if (parentLayoutId == LayoutConstants.DEFAULT_PARENT_LAYOUT_ID) {
207 GroupPermissionUtil.check(
208 permissionChecker, groupId, ActionKeys.ADD_LAYOUT);
209 }
210 else {
211 LayoutPermissionUtil.check(
212 permissionChecker, groupId, privateLayout, parentLayoutId,
213 ActionKeys.ADD_LAYOUT);
214 }
215
216 return layoutLocalService.addLayout(
217 getUserId(), groupId, privateLayout, parentLayoutId, localeNamesMap,
218 localeTitlesMap, descriptionMap, keywordsMap, robotsMap, type,
219 typeSettings, hidden, friendlyURLMap, serviceContext);
220 }
221
222
262 @Override
263 public Layout addLayout(
264 long groupId, boolean privateLayout, long parentLayoutId,
265 String name, String title, String description, String type,
266 boolean hidden, String friendlyURL, ServiceContext serviceContext)
267 throws PortalException {
268
269 PermissionChecker permissionChecker = getPermissionChecker();
270
271 if (parentLayoutId == LayoutConstants.DEFAULT_PARENT_LAYOUT_ID) {
272 GroupPermissionUtil.check(
273 permissionChecker, groupId, ActionKeys.ADD_LAYOUT);
274 }
275 else {
276 LayoutPermissionUtil.check(
277 permissionChecker, groupId, privateLayout, parentLayoutId,
278 ActionKeys.ADD_LAYOUT);
279 }
280
281 return layoutLocalService.addLayout(
282 getUserId(), groupId, privateLayout, parentLayoutId, name, title,
283 description, type, hidden, friendlyURL, serviceContext);
284 }
285
286 @Override
287 public FileEntry addTempFileEntry(
288 long groupId, String folderName, String fileName,
289 InputStream inputStream, String mimeType)
290 throws PortalException {
291
292 GroupPermissionUtil.check(
293 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
294
295 return TempFileEntryUtil.addTempFileEntry(
296 groupId, getUserId(), folderName, fileName, inputStream, mimeType);
297 }
298
299
311 @Override
312 public void deleteLayout(
313 long groupId, boolean privateLayout, long layoutId,
314 ServiceContext serviceContext)
315 throws PortalException {
316
317 LayoutPermissionUtil.check(
318 getPermissionChecker(), groupId, privateLayout, layoutId,
319 ActionKeys.DELETE);
320
321 layoutLocalService.deleteLayout(
322 groupId, privateLayout, layoutId, serviceContext);
323 }
324
325
335 @Override
336 public void deleteLayout(long plid, ServiceContext serviceContext)
337 throws PortalException {
338
339 LayoutPermissionUtil.check(
340 getPermissionChecker(), plid, ActionKeys.DELETE);
341
342 layoutLocalService.deleteLayout(plid, serviceContext);
343 }
344
345 @Override
346 public void deleteTempFileEntry(
347 long groupId, String folderName, String fileName)
348 throws PortalException {
349
350 GroupPermissionUtil.check(
351 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
352
353 TempFileEntryUtil.deleteTempFileEntry(
354 groupId, getUserId(), folderName, fileName);
355 }
356
357
375 @Override
376 public byte[] exportLayouts(
377 long groupId, boolean privateLayout, long[] layoutIds,
378 Map<String, String[]> parameterMap, Date startDate, Date endDate)
379 throws PortalException {
380
381 GroupPermissionUtil.check(
382 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
383
384 return layoutLocalService.exportLayouts(
385 groupId, privateLayout, layoutIds, parameterMap, startDate,
386 endDate);
387 }
388
389
405 @Override
406 public byte[] exportLayouts(
407 long groupId, boolean privateLayout,
408 Map<String, String[]> parameterMap, Date startDate, Date endDate)
409 throws PortalException {
410
411 GroupPermissionUtil.check(
412 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
413
414 return layoutLocalService.exportLayouts(
415 groupId, privateLayout, parameterMap, startDate, endDate);
416 }
417
418
436 @Override
437 public File exportLayoutsAsFile(
438 long groupId, boolean privateLayout, long[] layoutIds,
439 Map<String, String[]> parameterMap, Date startDate, Date endDate)
440 throws PortalException {
441
442 GroupPermissionUtil.check(
443 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
444
445 return layoutLocalService.exportLayoutsAsFile(
446 groupId, privateLayout, layoutIds, parameterMap, startDate,
447 endDate);
448 }
449
450 @Override
451 public long exportLayoutsAsFileInBackground(
452 ExportImportConfiguration exportImportConfiguration)
453 throws PortalException {
454
455 GroupPermissionUtil.check(
456 getPermissionChecker(), exportImportConfiguration.getGroupId(),
457 ActionKeys.EXPORT_IMPORT_LAYOUTS);
458
459 return layoutLocalService.exportLayoutsAsFileInBackground(
460 getUserId(), exportImportConfiguration);
461 }
462
463 @Override
464 public long exportLayoutsAsFileInBackground(
465 long exportImportConfigurationId)
466 throws PortalException {
467
468 ExportImportConfiguration exportImportConfiguration =
469 exportImportConfigurationLocalService.getExportImportConfiguration(
470 exportImportConfigurationId);
471
472 GroupPermissionUtil.check(
473 getPermissionChecker(), exportImportConfiguration.getGroupId(),
474 ActionKeys.EXPORT_IMPORT_LAYOUTS);
475
476 return layoutLocalService.exportLayoutsAsFileInBackground(
477 getUserId(), exportImportConfigurationId);
478 }
479
480 @Override
481 public long exportLayoutsAsFileInBackground(
482 String taskName, long groupId, boolean privateLayout,
483 long[] layoutIds, Map<String, String[]> parameterMap,
484 Date startDate, Date endDate)
485 throws PortalException {
486
487 GroupPermissionUtil.check(
488 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
489
490 return layoutLocalService.exportLayoutsAsFileInBackground(
491 getUserId(), taskName, groupId, privateLayout, layoutIds,
492 parameterMap, startDate, endDate);
493 }
494
495
500 @Deprecated
501 @Override
502 public long exportLayoutsAsFileInBackground(
503 String taskName, long groupId, boolean privateLayout,
504 long[] layoutIds, Map<String, String[]> parameterMap,
505 Date startDate, Date endDate, String fileName)
506 throws PortalException {
507
508 GroupPermissionUtil.check(
509 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
510
511 return layoutLocalService.exportLayoutsAsFileInBackground(
512 getUserId(), taskName, groupId, privateLayout, layoutIds,
513 parameterMap, startDate, endDate, fileName);
514 }
515
516
535 @Override
536 public byte[] exportPortletInfo(
537 long plid, long groupId, String portletId,
538 Map<String, String[]> parameterMap, Date startDate, Date endDate)
539 throws PortalException {
540
541 Layout layout = layoutLocalService.getLayout(plid);
542
543 GroupPermissionUtil.check(
544 getPermissionChecker(), layout.getGroupId(),
545 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
546
547 return layoutLocalService.exportPortletInfo(
548 plid, groupId, portletId, parameterMap, startDate, endDate);
549 }
550
551 @Override
552 public byte[] exportPortletInfo(
553 long companyId, String portletId,
554 Map<String, String[]> parameterMap, Date startDate, Date endDate)
555 throws PortalException {
556
557 Group companyGroup = groupLocalService.getCompanyGroup(companyId);
558
559 GroupPermissionUtil.check(
560 getPermissionChecker(), companyGroup,
561 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
562
563 return layoutLocalService.exportPortletInfo(
564 companyId, portletId, parameterMap, startDate, endDate);
565 }
566
567
586 @Override
587 public File exportPortletInfoAsFile(
588 long plid, long groupId, String portletId,
589 Map<String, String[]> parameterMap, Date startDate, Date endDate)
590 throws PortalException {
591
592 Layout layout = layoutLocalService.getLayout(plid);
593
594 GroupPermissionUtil.check(
595 getPermissionChecker(), layout.getGroupId(),
596 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
597
598 return layoutLocalService.exportPortletInfoAsFile(
599 plid, groupId, portletId, parameterMap, startDate, endDate);
600 }
601
602 @Override
603 public File exportPortletInfoAsFile(
604 String portletId, Map<String, String[]> parameterMap,
605 Date startDate, Date endDate)
606 throws PortalException {
607
608 User user = userPersistence.findByPrimaryKey(getUserId());
609
610 Group companyGroup = groupLocalService.getCompanyGroup(
611 user.getCompanyId());
612
613 GroupPermissionUtil.check(
614 getPermissionChecker(), companyGroup,
615 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
616
617 return layoutLocalService.exportPortletInfoAsFile(
618 user.getCompanyId(), portletId, parameterMap, startDate, endDate);
619 }
620
621 @Override
622 public long exportPortletInfoAsFileInBackground(
623 String taskName, long plid, long groupId, String portletId,
624 Map<String, String[]> parameterMap, Date startDate, Date endDate,
625 String fileName)
626 throws PortalException {
627
628 Layout layout = layoutLocalService.getLayout(plid);
629
630 GroupPermissionUtil.check(
631 getPermissionChecker(), layout.getGroupId(),
632 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
633
634 return layoutLocalService.exportPortletInfoAsFileInBackground(
635 getUserId(), taskName, plid, groupId, portletId, parameterMap,
636 startDate, endDate, fileName);
637 }
638
639 @Override
640 public long exportPortletInfoAsFileInBackground(
641 String taskName, String portletId,
642 Map<String, String[]> parameterMap, Date startDate, Date endDate,
643 String fileName)
644 throws PortalException {
645
646 User user = userPersistence.findByPrimaryKey(getUserId());
647
648 Group companyGroup = groupLocalService.getCompanyGroup(
649 user.getCompanyId());
650
651 GroupPermissionUtil.check(
652 getPermissionChecker(), companyGroup,
653 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
654
655 return layoutLocalService.exportPortletInfoAsFileInBackground(
656 getUserId(), taskName, portletId, parameterMap, startDate, endDate,
657 fileName);
658 }
659
660
668 @Override
669 public List<Layout> getAncestorLayouts(long plid) throws PortalException {
670 Layout layout = layoutLocalService.getLayout(plid);
671
672 List<Layout> ancestors = layout.getAncestors();
673
674 return filterLayouts(ancestors);
675 }
676
677
690 @Override
691 public long getDefaultPlid(
692 long groupId, long scopeGroupId, boolean privateLayout,
693 String portletId)
694 throws PortalException {
695
696 if (groupId <= 0) {
697 return LayoutConstants.DEFAULT_PLID;
698 }
699
700 PermissionChecker permissionChecker = getPermissionChecker();
701
702 String scopeGroupLayoutUuid = null;
703
704 Group scopeGroup = groupLocalService.getGroup(scopeGroupId);
705
706 if (scopeGroup.isLayout()) {
707 Layout scopeGroupLayout = layoutLocalService.getLayout(
708 scopeGroup.getClassPK());
709
710 scopeGroupLayoutUuid = scopeGroupLayout.getUuid();
711 }
712
713 Map<Long, javax.portlet.PortletPreferences> jxPortletPreferencesMap =
714 PortletPreferencesFactoryUtil.getPortletSetupMap(
715 scopeGroup.getCompanyId(), groupId,
716 PortletKeys.PREFS_OWNER_ID_DEFAULT,
717 PortletKeys.PREFS_OWNER_TYPE_LAYOUT, portletId, privateLayout);
718
719 for (Map.Entry<Long, javax.portlet.PortletPreferences> entry :
720 jxPortletPreferencesMap.entrySet()) {
721
722 long plid = entry.getKey();
723
724 Layout layout = null;
725
726 try {
727 layout = layoutLocalService.getLayout(plid);
728 }
729 catch (NoSuchLayoutException nsle) {
730 continue;
731 }
732
733 if (!LayoutPermissionUtil.contains(
734 permissionChecker, layout, ActionKeys.VIEW)) {
735
736 continue;
737 }
738
739 if (!layout.isTypePortlet()) {
740 continue;
741 }
742
743 LayoutTypePortlet layoutTypePortlet =
744 (LayoutTypePortlet)layout.getLayoutType();
745
746 if (!layoutTypePortlet.hasPortletId(portletId)) {
747 continue;
748 }
749
750 javax.portlet.PortletPreferences jxPortletPreferences =
751 entry.getValue();
752
753 String scopeType = GetterUtil.getString(
754 jxPortletPreferences.getValue("lfrScopeType", null));
755
756 if (scopeGroup.isLayout()) {
757 String scopeLayoutUuid = GetterUtil.getString(
758 jxPortletPreferences.getValue("lfrScopeLayoutUuid", null));
759
760 if (Validator.isNotNull(scopeType) &&
761 Validator.isNotNull(scopeLayoutUuid) &&
762 scopeLayoutUuid.equals(scopeGroupLayoutUuid)) {
763
764 return layout.getPlid();
765 }
766 }
767 else if (scopeGroup.isCompany()) {
768 if (Validator.isNotNull(scopeType) &&
769 scopeType.equals("company")) {
770
771 return layout.getPlid();
772 }
773 }
774 else {
775 if (Validator.isNull(scopeType)) {
776 return layout.getPlid();
777 }
778 }
779 }
780
781 return LayoutConstants.DEFAULT_PLID;
782 }
783
784 @Override
785 @ThreadLocalCachable
786 public long getDefaultPlid(
787 long groupId, long scopeGroupId, String portletId)
788 throws PortalException {
789
790 long plid = getDefaultPlid(groupId, scopeGroupId, false, portletId);
791
792 if (plid == 0) {
793 plid = getDefaultPlid(groupId, scopeGroupId, true, portletId);
794 }
795
796 return plid;
797 }
798
799
810 @Override
811 public Layout getLayoutByUuidAndGroupId(
812 String uuid, long groupId, boolean privateLayout)
813 throws PortalException {
814
815 Layout layout = layoutLocalService.getLayoutByUuidAndGroupId(
816 uuid, groupId, privateLayout);
817
818 LayoutPermissionUtil.check(
819 getPermissionChecker(), layout, ActionKeys.VIEW);
820
821 return layout;
822 }
823
824
835 @Override
836 public String getLayoutName(
837 long groupId, boolean privateLayout, long layoutId,
838 String languageId)
839 throws PortalException {
840
841 Layout layout = layoutLocalService.getLayout(
842 groupId, privateLayout, layoutId);
843
844 return layout.getName(languageId);
845 }
846
847
857 @Override
858 public LayoutReference[] getLayoutReferences(
859 long companyId, String portletId, String preferencesKey,
860 String preferencesValue) {
861
862 return layoutLocalService.getLayouts(
863 companyId, portletId, preferencesKey, preferencesValue);
864 }
865
866 @Override
867 public List<Layout> getLayouts(long groupId, boolean privateLayout) {
868 return layoutPersistence.filterFindByG_P(groupId, privateLayout);
869 }
870
871 @Override
872 public List<Layout> getLayouts(
873 long groupId, boolean privateLayout, long parentLayoutId) {
874
875 return layoutPersistence.filterFindByG_P_P(
876 groupId, privateLayout, parentLayoutId);
877 }
878
879 @Override
880 public List<Layout> getLayouts(
881 long groupId, boolean privateLayout, long parentLayoutId,
882 boolean incomplete, int start, int end) {
883
884 return layoutPersistence.filterFindByG_P_P(
885 groupId, privateLayout, parentLayoutId, start, end);
886 }
887
888 @Override
889 public int getLayoutsCount(
890 long groupId, boolean privateLayout, long parentLayoutId) {
891
892 return layoutPersistence.filterCountByG_P_P(
893 groupId, privateLayout, parentLayoutId);
894 }
895
896 @Override
897 public String[] getTempFileNames(long groupId, String folderName)
898 throws PortalException {
899
900 GroupPermissionUtil.check(
901 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
902
903 return TempFileEntryUtil.getTempFileNames(
904 groupId, getUserId(), folderName);
905 }
906
907
922 @Override
923 public void importLayouts(
924 long groupId, boolean privateLayout,
925 Map<String, String[]> parameterMap, byte[] bytes)
926 throws PortalException {
927
928 GroupPermissionUtil.check(
929 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
930
931 layoutLocalService.importLayouts(
932 getUserId(), groupId, privateLayout, parameterMap, bytes);
933 }
934
935
950 @Override
951 public void importLayouts(
952 long groupId, boolean privateLayout,
953 Map<String, String[]> parameterMap, File file)
954 throws PortalException {
955
956 GroupPermissionUtil.check(
957 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
958
959 layoutLocalService.importLayouts(
960 getUserId(), groupId, privateLayout, parameterMap, file);
961 }
962
963
978 @Override
979 public void importLayouts(
980 long groupId, boolean privateLayout,
981 Map<String, String[]> parameterMap, InputStream is)
982 throws PortalException {
983
984 GroupPermissionUtil.check(
985 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
986
987 layoutLocalService.importLayouts(
988 getUserId(), groupId, privateLayout, parameterMap, is);
989 }
990
991 @Override
992 public long importLayoutsInBackground(
993 String taskName, long groupId, boolean privateLayout,
994 Map<String, String[]> parameterMap, File file)
995 throws PortalException {
996
997 GroupPermissionUtil.check(
998 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
999
1000 return layoutLocalService.importLayoutsInBackground(
1001 getUserId(), taskName, groupId, privateLayout, parameterMap, file);
1002 }
1003
1004 @Override
1005 public long importLayoutsInBackground(
1006 String taskName, long groupId, boolean privateLayout,
1007 Map<String, String[]> parameterMap, InputStream inputStream)
1008 throws PortalException {
1009
1010 GroupPermissionUtil.check(
1011 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
1012
1013 return layoutLocalService.importLayoutsInBackground(
1014 getUserId(), taskName, groupId, privateLayout, parameterMap,
1015 inputStream);
1016 }
1017
1018
1034 @Override
1035 public void importPortletInfo(
1036 long plid, long groupId, String portletId,
1037 Map<String, String[]> parameterMap, File file)
1038 throws PortalException {
1039
1040 GroupPermissionUtil.check(
1041 getPermissionChecker(), groupId,
1042 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
1043
1044 layoutLocalService.importPortletInfo(
1045 getUserId(), plid, groupId, portletId, parameterMap, file);
1046 }
1047
1048
1064 @Override
1065 public void importPortletInfo(
1066 long plid, long groupId, String portletId,
1067 Map<String, String[]> parameterMap, InputStream is)
1068 throws PortalException {
1069
1070 GroupPermissionUtil.check(
1071 getPermissionChecker(), groupId,
1072 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
1073
1074 layoutLocalService.importPortletInfo(
1075 getUserId(), plid, groupId, portletId, parameterMap, is);
1076 }
1077
1078 @Override
1079 public void importPortletInfo(
1080 String portletId, Map<String, String[]> parameterMap, File file)
1081 throws PortalException {
1082
1083 User user = userPersistence.findByPrimaryKey(getUserId());
1084
1085 Group companyGroup = groupLocalService.getCompanyGroup(
1086 user.getCompanyId());
1087
1088 GroupPermissionUtil.check(
1089 getPermissionChecker(), companyGroup,
1090 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
1091
1092 layoutLocalService.importPortletInfo(
1093 getUserId(), portletId, parameterMap, file);
1094 }
1095
1096 @Override
1097 public void importPortletInfo(
1098 String portletId, Map<String, String[]> parameterMap,
1099 InputStream is)
1100 throws PortalException {
1101
1102 User user = userPersistence.findByPrimaryKey(getUserId());
1103
1104 Group companyGroup = groupLocalService.getCompanyGroup(
1105 user.getCompanyId());
1106
1107 GroupPermissionUtil.check(
1108 getPermissionChecker(), companyGroup,
1109 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
1110
1111 layoutLocalService.importPortletInfo(
1112 getUserId(), portletId, parameterMap, is);
1113 }
1114
1115 @Override
1116 public long importPortletInfoInBackground(
1117 String taskName, long plid, long groupId, String portletId,
1118 Map<String, String[]> parameterMap, File file)
1119 throws PortalException {
1120
1121 GroupPermissionUtil.check(
1122 getPermissionChecker(), groupId,
1123 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
1124
1125 return layoutLocalService.importPortletInfoInBackground(
1126 getUserId(), taskName, plid, groupId, portletId, parameterMap,
1127 file);
1128 }
1129
1130 @Override
1131 public long importPortletInfoInBackground(
1132 String taskName, long plid, long groupId, String portletId,
1133 Map<String, String[]> parameterMap, InputStream is)
1134 throws PortalException {
1135
1136 GroupPermissionUtil.check(
1137 getPermissionChecker(), groupId,
1138 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
1139
1140 return layoutLocalService.importPortletInfoInBackground(
1141 getUserId(), taskName, plid, groupId, portletId, parameterMap, is);
1142 }
1143
1144 @Override
1145 public void importPortletInfoInBackground(
1146 String taskName, String portletId,
1147 Map<String, String[]> parameterMap, File file)
1148 throws PortalException {
1149
1150 User user = userPersistence.findByPrimaryKey(getUserId());
1151
1152 Group companyGroup = groupLocalService.getCompanyGroup(
1153 user.getCompanyId());
1154
1155 GroupPermissionUtil.check(
1156 getPermissionChecker(), companyGroup,
1157 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
1158
1159 layoutLocalService.importPortletInfoInBackground(
1160 getUserId(), taskName, portletId, parameterMap, file);
1161 }
1162
1163 @Override
1164 public void importPortletInfoInBackground(
1165 String taskName, String portletId,
1166 Map<String, String[]> parameterMap, InputStream is)
1167 throws PortalException {
1168
1169 User user = userPersistence.findByPrimaryKey(getUserId());
1170
1171 Group companyGroup = groupLocalService.getCompanyGroup(
1172 user.getCompanyId());
1173
1174 GroupPermissionUtil.check(
1175 getPermissionChecker(), companyGroup,
1176 ActionKeys.EXPORT_IMPORT_PORTLET_INFO);
1177
1178 layoutLocalService.importPortletInfoInBackground(
1179 getUserId(), taskName, portletId, parameterMap, is);
1180 }
1181
1182
1208 @Override
1209 public void schedulePublishToLive(
1210 long sourceGroupId, long targetGroupId, boolean privateLayout,
1211 long[] layoutIds, Map<String, String[]> parameterMap, String scope,
1212 Date startDate, Date endDate, String groupName, String cronText,
1213 Date schedulerStartDate, Date schedulerEndDate, String description)
1214 throws PortalException {
1215
1216 GroupPermissionUtil.check(
1217 getPermissionChecker(), targetGroupId, ActionKeys.PUBLISH_STAGING);
1218
1219 Trigger trigger = new CronTrigger(
1220 PortalUUIDUtil.generate(), groupName, schedulerStartDate,
1221 schedulerEndDate, cronText);
1222
1223 User user = userPersistence.findByPrimaryKey(getUserId());
1224
1225 Map<String, Serializable> settingsMap =
1226 ExportImportConfigurationSettingsMapFactory.buildSettingsMap(
1227 getUserId(), sourceGroupId, targetGroupId, privateLayout,
1228 layoutIds, parameterMap, startDate, endDate, user.getLocale(),
1229 user.getTimeZone());
1230
1231 ExportImportConfiguration exportImportConfiguration =
1232 exportImportConfigurationLocalService.addExportImportConfiguration(
1233 getUserId(), sourceGroupId, trigger.getJobName(), description,
1234 ExportImportConfigurationConstants.
1235 TYPE_SCHEDULED_PUBLISH_LAYOUT_LOCAL,
1236 settingsMap, WorkflowConstants.STATUS_DRAFT,
1237 new ServiceContext());
1238
1239 SchedulerEngineHelperUtil.schedule(
1240 trigger, StorageType.PERSISTED, description,
1241 DestinationNames.LAYOUTS_LOCAL_PUBLISHER,
1242 exportImportConfiguration.getExportImportConfigurationId(), 0);
1243 }
1244
1245
1277 @Deprecated
1278 @Override
1279 public void schedulePublishToLive(
1280 long sourceGroupId, long targetGroupId, boolean privateLayout,
1281 Map<Long, Boolean> layoutIdMap, Map<String, String[]> parameterMap,
1282 String scope, Date startDate, Date endDate, String groupName,
1283 String cronText, Date schedulerStartDate, Date schedulerEndDate,
1284 String description)
1285 throws PortalException {
1286
1287 schedulePublishToLive(
1288 sourceGroupId, targetGroupId, privateLayout,
1289 ExportImportHelperUtil.getLayoutIds(layoutIdMap, targetGroupId),
1290 parameterMap, scope, startDate, endDate, groupName, cronText,
1291 schedulerStartDate, schedulerEndDate, description);
1292 }
1293
1294
1323 @Override
1324 public void schedulePublishToRemote(
1325 long sourceGroupId, boolean privateLayout,
1326 Map<Long, Boolean> layoutIdMap, Map<String, String[]> parameterMap,
1327 String remoteAddress, int remotePort, String remotePathContext,
1328 boolean secureConnection, long remoteGroupId,
1329 boolean remotePrivateLayout, Date startDate, Date endDate,
1330 String groupName, String cronText, Date schedulerStartDate,
1331 Date schedulerEndDate, String description)
1332 throws PortalException {
1333
1334 GroupPermissionUtil.check(
1335 getPermissionChecker(), sourceGroupId, ActionKeys.PUBLISH_STAGING);
1336
1337 Trigger trigger = new CronTrigger(
1338 PortalUUIDUtil.generate(), groupName, schedulerStartDate,
1339 schedulerEndDate, cronText);
1340
1341 User user = userPersistence.findByPrimaryKey(getUserId());
1342
1343 Map<String, Serializable> settingsMap =
1344 ExportImportConfigurationSettingsMapFactory.buildSettingsMap(
1345 getUserId(), sourceGroupId, privateLayout, layoutIdMap,
1346 parameterMap, remoteAddress, remotePort, remotePathContext,
1347 secureConnection, remoteGroupId, remotePrivateLayout, startDate,
1348 endDate, user.getLocale(), user.getTimeZone());
1349
1350 ExportImportConfiguration exportImportConfiguration =
1351 exportImportConfigurationLocalService.addExportImportConfiguration(
1352 getUserId(), sourceGroupId, trigger.getJobName(), description,
1353 ExportImportConfigurationConstants.
1354 TYPE_SCHEDULED_PUBLISH_LAYOUT_REMOTE,
1355 settingsMap, WorkflowConstants.STATUS_DRAFT,
1356 new ServiceContext());
1357
1358 SchedulerEngineHelperUtil.schedule(
1359 trigger, StorageType.PERSISTED, description,
1360 DestinationNames.LAYOUTS_REMOTE_PUBLISHER,
1361 exportImportConfiguration.getExportImportConfigurationId(), 0);
1362 }
1363
1364
1379 @Override
1380 public void setLayouts(
1381 long groupId, boolean privateLayout, long parentLayoutId,
1382 long[] layoutIds, ServiceContext serviceContext)
1383 throws PortalException {
1384
1385 GroupPermissionUtil.check(
1386 getPermissionChecker(), groupId, ActionKeys.UPDATE);
1387
1388 layoutLocalService.setLayouts(
1389 groupId, privateLayout, parentLayoutId, layoutIds, serviceContext);
1390 }
1391
1392
1403 @Override
1404 public void unschedulePublishToLive(
1405 long groupId, String jobName, String groupName)
1406 throws PortalException {
1407
1408 GroupPermissionUtil.check(
1409 getPermissionChecker(), groupId, ActionKeys.PUBLISH_STAGING);
1410
1411 SchedulerEngineHelperUtil.delete(
1412 jobName, groupName, StorageType.PERSISTED);
1413 }
1414
1415
1426 @Override
1427 public void unschedulePublishToRemote(
1428 long groupId, String jobName, String groupName)
1429 throws PortalException {
1430
1431 GroupPermissionUtil.check(
1432 getPermissionChecker(), groupId, ActionKeys.PUBLISH_STAGING);
1433
1434 SchedulerEngineHelperUtil.delete(
1435 jobName, groupName, StorageType.PERSISTED);
1436 }
1437
1438 @Override
1439 public Layout updateIconImage(long plid, byte[] bytes)
1440 throws PortalException {
1441
1442 LayoutPermissionUtil.check(
1443 getPermissionChecker(), plid, ActionKeys.UPDATE);
1444
1445 return layoutLocalService.updateIconImage(plid, bytes);
1446 }
1447
1448
1481 @Override
1482 public Layout updateLayout(
1483 long groupId, boolean privateLayout, long layoutId,
1484 long parentLayoutId, Map<Locale, String> localeNamesMap,
1485 Map<Locale, String> localeTitlesMap,
1486 Map<Locale, String> descriptionMap, Map<Locale, String> keywordsMap,
1487 Map<Locale, String> robotsMap, String type, boolean hidden,
1488 Map<Locale, String> friendlyURLMap, boolean iconImage,
1489 byte[] iconBytes, ServiceContext serviceContext)
1490 throws PortalException {
1491
1492 LayoutPermissionUtil.check(
1493 getPermissionChecker(), groupId, privateLayout, layoutId,
1494 ActionKeys.UPDATE);
1495
1496 return layoutLocalService.updateLayout(
1497 groupId, privateLayout, layoutId, parentLayoutId, localeNamesMap,
1498 localeTitlesMap, descriptionMap, keywordsMap, robotsMap, type,
1499 hidden, friendlyURLMap, iconImage, iconBytes, serviceContext);
1500 }
1501
1502
1540 @Deprecated
1541 @Override
1542 public Layout updateLayout(
1543 long groupId, boolean privateLayout, long layoutId,
1544 long parentLayoutId, Map<Locale, String> localeNamesMap,
1545 Map<Locale, String> localeTitlesMap,
1546 Map<Locale, String> descriptionMap, Map<Locale, String> keywordsMap,
1547 Map<Locale, String> robotsMap, String type, boolean hidden,
1548 String friendlyURL, Boolean iconImage, byte[] iconBytes,
1549 ServiceContext serviceContext)
1550 throws PortalException {
1551
1552 LayoutPermissionUtil.check(
1553 getPermissionChecker(), groupId, privateLayout, layoutId,
1554 ActionKeys.UPDATE);
1555
1556 return layoutLocalService.updateLayout(
1557 groupId, privateLayout, layoutId, parentLayoutId, localeNamesMap,
1558 localeTitlesMap, descriptionMap, keywordsMap, robotsMap, type,
1559 hidden, friendlyURL, iconImage, iconBytes, serviceContext);
1560 }
1561
1562
1575 @Override
1576 public Layout updateLayout(
1577 long groupId, boolean privateLayout, long layoutId,
1578 String typeSettings)
1579 throws PortalException {
1580
1581 LayoutPermissionUtil.check(
1582 getPermissionChecker(), groupId, privateLayout, layoutId,
1583 ActionKeys.UPDATE);
1584
1585 return layoutLocalService.updateLayout(
1586 groupId, privateLayout, layoutId, typeSettings);
1587 }
1588
1589
1604 @Override
1605 public Layout updateLookAndFeel(
1606 long groupId, boolean privateLayout, long layoutId, String themeId,
1607 String colorSchemeId, String css, boolean wapTheme)
1608 throws PortalException {
1609
1610 LayoutPermissionUtil.check(
1611 getPermissionChecker(), groupId, privateLayout, layoutId,
1612 ActionKeys.UPDATE);
1613
1614 if (Validator.isNotNull(themeId)) {
1615 pluginSettingLocalService.checkPermission(
1616 getUserId(), themeId, Plugin.TYPE_THEME);
1617 }
1618
1619 return layoutLocalService.updateLookAndFeel(
1620 groupId, privateLayout, layoutId, themeId, colorSchemeId, css,
1621 wapTheme);
1622 }
1623
1624
1639 @Override
1640 public Layout updateName(
1641 long groupId, boolean privateLayout, long layoutId, String name,
1642 String languageId)
1643 throws PortalException {
1644
1645 LayoutPermissionUtil.check(
1646 getPermissionChecker(), groupId, privateLayout, layoutId,
1647 ActionKeys.UPDATE);
1648
1649 return layoutLocalService.updateName(
1650 groupId, privateLayout, layoutId, name, languageId);
1651 }
1652
1653
1665 @Override
1666 public Layout updateName(long plid, String name, String languageId)
1667 throws PortalException {
1668
1669 LayoutPermissionUtil.check(
1670 getPermissionChecker(), plid, ActionKeys.UPDATE);
1671
1672 return layoutLocalService.updateName(plid, name, languageId);
1673 }
1674
1675
1689 @Override
1690 public Layout updateParentLayoutId(
1691 long groupId, boolean privateLayout, long layoutId,
1692 long parentLayoutId)
1693 throws PortalException {
1694
1695 LayoutPermissionUtil.check(
1696 getPermissionChecker(), groupId, privateLayout, layoutId,
1697 ActionKeys.UPDATE);
1698
1699 return layoutLocalService.updateParentLayoutId(
1700 groupId, privateLayout, layoutId, parentLayoutId);
1701 }
1702
1703
1717 @Override
1718 public Layout updateParentLayoutId(long plid, long parentPlid)
1719 throws PortalException {
1720
1721 LayoutPermissionUtil.check(
1722 getPermissionChecker(), plid, ActionKeys.UPDATE);
1723
1724 return layoutLocalService.updateParentLayoutId(plid, parentPlid);
1725 }
1726
1727
1736 @Override
1737 public Layout updateParentLayoutIdAndPriority(
1738 long plid, long parentPlid, int priority)
1739 throws PortalException {
1740
1741 return layoutLocalService.updateParentLayoutIdAndPriority(
1742 plid, parentPlid, priority);
1743 }
1744
1745
1757 @Override
1758 public Layout updatePriority(
1759 long groupId, boolean privateLayout, long layoutId, int priority)
1760 throws PortalException {
1761
1762 LayoutPermissionUtil.check(
1763 getPermissionChecker(), groupId, privateLayout, layoutId,
1764 ActionKeys.UPDATE);
1765
1766 return layoutLocalService.updatePriority(
1767 groupId, privateLayout, layoutId, priority);
1768 }
1769
1770
1784 @Override
1785 public Layout updatePriority(
1786 long groupId, boolean privateLayout, long layoutId,
1787 long nextLayoutId, long previousLayoutId)
1788 throws PortalException {
1789
1790 LayoutPermissionUtil.check(
1791 getPermissionChecker(), groupId, privateLayout, layoutId,
1792 ActionKeys.UPDATE);
1793
1794 return layoutLocalService.updatePriority(
1795 groupId, privateLayout, layoutId, nextLayoutId, previousLayoutId);
1796 }
1797
1798
1807 @Override
1808 public Layout updatePriority(long plid, int priority)
1809 throws PortalException {
1810
1811 LayoutPermissionUtil.check(
1812 getPermissionChecker(), plid, ActionKeys.UPDATE);
1813
1814 return layoutLocalService.updatePriority(plid, priority);
1815 }
1816
1817 @Override
1818 public MissingReferences validateImportLayoutsFile(
1819 long groupId, boolean privateLayout,
1820 Map<String, String[]> parameterMap, File file)
1821 throws PortalException {
1822
1823 GroupPermissionUtil.check(
1824 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
1825
1826 return layoutLocalService.validateImportLayoutsFile(
1827 getUserId(), groupId, privateLayout, parameterMap, file);
1828 }
1829
1830 @Override
1831 public MissingReferences validateImportLayoutsFile(
1832 long groupId, boolean privateLayout,
1833 Map<String, String[]> parameterMap, InputStream inputStream)
1834 throws PortalException {
1835
1836 GroupPermissionUtil.check(
1837 getPermissionChecker(), groupId, ActionKeys.EXPORT_IMPORT_LAYOUTS);
1838
1839 return layoutLocalService.validateImportLayoutsFile(
1840 getUserId(), groupId, privateLayout, parameterMap, inputStream);
1841 }
1842
1843 @Override
1844 public MissingReferences validateImportPortletInfo(
1845 long plid, long groupId, String portletId,
1846 Map<String, String[]> parameterMap, File file)
1847 throws PortalException {
1848
1849 PortletPermissionUtil.check(
1850 getPermissionChecker(), plid, portletId, ActionKeys.CONFIGURATION);
1851
1852 return layoutLocalService.validateImportPortletInfo(
1853 getUserId(), plid, groupId, portletId, parameterMap, file);
1854 }
1855
1856 @Override
1857 public MissingReferences validateImportPortletInfo(
1858 long plid, long groupId, String portletId,
1859 Map<String, String[]> parameterMap, InputStream inputStream)
1860 throws PortalException {
1861
1862 PortletPermissionUtil.check(
1863 getPermissionChecker(), plid, portletId, ActionKeys.CONFIGURATION);
1864
1865 return layoutLocalService.validateImportPortletInfo(
1866 getUserId(), plid, groupId, portletId, parameterMap, inputStream);
1867 }
1868
1869 protected List<Layout> filterLayouts(List<Layout> layouts)
1870 throws PortalException {
1871
1872 List<Layout> filteredLayouts = new ArrayList<Layout>();
1873
1874 for (Layout layout : layouts) {
1875 if (LayoutPermissionUtil.contains(
1876 getPermissionChecker(), layout, ActionKeys.VIEW)) {
1877
1878 filteredLayouts.add(layout);
1879 }
1880 }
1881
1882 return filteredLayouts;
1883 }
1884
1885 }