///////////////////////////////////////////////////////////////////////////// // // Project ProjectForge Community Edition // www.projectforge.org // // Copyright (C) 2001-2014 Kai Reinhard (k.reinhard@micromata.de) // // ProjectForge is dual-licensed. // // This community edition is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as published // by the Free Software Foundation; version 3 of the License. // // This community edition is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General // Public License for more details. // // You should have received a copy of the GNU General Public License along // with this program; if not, see http://www.gnu.org/licenses/. // ///////////////////////////////////////////////////////////////////////////// package org.projectforge.plugins.teamcal.rest; import org.apache.commons.lang.ObjectUtils; import org.projectforge.plugins.teamcal.admin.TeamCalDO; import org.projectforge.plugins.teamcal.admin.TeamCalDao; import org.projectforge.plugins.teamcal.admin.TeamCalRight; import org.projectforge.rest.objects.CalendarObject; import org.projectforge.user.PFUserContext; import org.projectforge.user.UserRights; import org.projectforge.web.rest.converter.DOConverter; /** * For conversion of TeamCalDO to CalendarObject. * @author Kai Reinhard (k.reinhard@micromata.de) * */ public class TeamCalDOConverter { public static CalendarObject getCalendarObject(final TeamCalDO src) { if (src == null) { return null; } final Integer userId = PFUserContext.getUserId(); final CalendarObject cal = new CalendarObject(); DOConverter.copyFields(cal, src); cal.setTitle(src.getTitle()); cal.setDescription(src.getDescription()); cal.setExternalSubscription(src.isExternalSubscription()); final TeamCalRight right = (TeamCalRight) UserRights.instance().getRight(TeamCalDao.USER_RIGHT_ID); cal.setMinimalAccess(right.hasMinimalAccess(src, userId)); cal.setReadonlyAccess(right.hasReadonlyAccess(src, userId)); cal.setFullAccess(right.hasFullAccess(src, userId)); cal.setOwner(ObjectUtils.equals(userId, src.getOwnerId())); return cal; } }