按代码创建日历并在Liferay中添加权限模型

时间:2015-12-11 04:35:19

标签: calendar liferay

我有Liferay 6.2 GA4 ...... 我想通过代码在portlet中创建生日日历...所以我在我的portlet中创建了一个日历,使用以下代码:

long calendarId = CounterLocalServiceUtil.increment(Calendar.class.getName());
calendar =  CalendarLocalServiceUtil.createCalendar(calendarId);
calendar.setName(BIRTHDAYS_CALENDAR_NAME);
calendar.setGroupId(themeDisplay.getScopeGroupId());
calendar.setUserId(themeDisplay.getUserId());
calendar.setCreateDate(new Date());
calendar.setCompanyId(themeDisplay.getCompanyId());
calendar.setUserName(themeDisplay.getUser().getFullName());
calendar.setModifiedDate(new Date());
calendar.setCalendarResourceId(getCalendarDefault(themeDisplay.getScopeGroupId()).getCalendarResourceId());
calendar.setColor(6663561);
CalendarLocalServiceUtil.addCalendar(calendar);

这样可以正常,日历会被创建......但在此之后我面临一个问题......

如果我尝试在portlet中设置日历的权限(在站点中),我会在日志中看到一个错误的空白页:

java.lang.IllegalArgumentException: Permissioned model is null

所以我的问题是: 如何创建具有权限的日历? 我想用默认权限创建它,当你在网站上创建一个日历时,这就是显示的内容,它们是:

权限

可查看者:网站会员

我该怎么做?

谢谢!!

修改

我在liferay论坛上问了同样的问题,并没有在那里得到答案......所以我在这里问,希望病得到答案:)

same question

2 个答案:

答案 0 :(得分:2)

你可以致电:

CalendarLocalServiceUtil.addCalendar(long userId, long groupId, long calendarResourceId, java.util.Map<java.util.Locale, java.lang.String> nameMap, java.util.Map<java.util.Locale, java.lang.String> descriptionMap, java.lang.String timeZoneId, int color, boolean defaultCalendar, boolean enableComments, boolean enableRatings, com.liferay.portal.service.ServiceContext serviceContext)

它将创建资源权限。

的Fabio。

答案 1 :(得分:0)

我找到了答案,你只需要在创建日历后调用addModelResource方法。

ResourceLocalServiceUtil.addModelResources(calendar, serviceContext);
希望它对某人有帮助!