public boolean hasMinimalAccess(final TeamEventDO event, final Integer userId) { if (event.getCalendar() == null) { return true; } return teamCalRight.hasMinimalAccess(event.getCalendar(), userId); } }
event.setTooltip(eventDO.getCalendar().getTitle(), createTooltipLabelValues(eventDO)); title = teamEvent.getSubject(); if (right.hasMinimalAccess(eventDO.getCalendar(), user.getId()) == true) {
/** * Owners of the given calendar and users with full access hav update access to the given calendar: obj.getCalendar(). * * @see org.projectforge.business.user.UserRightAccessCheck#hasUpdateAccess(org.projectforge.framework.persistence.user.entities.PFUserDO, * java.lang.Object, java.lang.Object) */ @Override public boolean hasUpdateAccess(final PFUserDO user, final TeamEventDO obj, final TeamEventDO oldObj) { if (obj == null) { return false; } final TeamCalDO calendar = obj.getCalendar(); if (calendar == null) { return false; } return hasUpdateAccess(user, calendar); }
@Transient public TeamEventDO createMinimalCopy() { final TeamEventDO result = new TeamEventDO(); result.setId(this.getId()); result.setCalendar(this.getCalendar()); result.startDate = this.startDate; result.endDate = this.endDate; result.dtStamp = this.dtStamp; result.allDay = this.allDay; result.recurrenceExDate = this.recurrenceExDate; result.recurrenceRule = this.recurrenceRule; result.recurrenceReferenceDate = this.recurrenceReferenceDate; result.recurrenceReferenceId = this.recurrenceReferenceId; result.recurrenceUntil = this.recurrenceUntil; result.sequence = this.sequence; result.ownership = this.ownership; result.organizer = this.organizer; result.organizer_additional_params = this.organizer_additional_params; return result; }
/** * @see org.projectforge.web.wicket.CellItemListenerPropertyColumn#populateItem(org.apache.wicket.markup.repeater.Item, * java.lang.String, org.apache.wicket.model.IModel) */ @Override public void populateItem(final Item<ICellPopulator<TeamEventDO>> item, final String componentId, final IModel<TeamEventDO> rowModel) { final TeamEventDO teamEvent = rowModel.getObject(); final TeamCalDO calendar = teamEvent.getCalendar(); item.add( new ListSelectActionPanel(componentId, rowModel, TeamEventEditPage.class, teamEvent.getId(), returnToPage, calendar != null ? calendar.getTitle() : "")); cellItemListener.populateItem(item, componentId, rowModel); addRowClick(item); } });
/** * Sets midnight (UTC) of all day events. * * @see org.projectforge.framework.persistence.api.BaseDao#onSaveOrModify(org.projectforge.core.ExtendedBaseDO) */ @Override protected void onSaveOrModify(final TeamEventDO event) { super.onSaveOrModify(event); Validate.notNull(event.getCalendar()); // If is all day event, set start and stop to midnight if (event.isAllDay() == true) { final Date startDate = event.getStartDate(); if (startDate != null) { event.setStartDate(CalendarUtils.getUTCMidnightTimestamp(startDate)); } final Date endDate = event.getEndDate(); if (endDate != null) { event.setEndDate(CalendarUtils.getUTCMidnightTimestamp(endDate)); } } }
/** * if has access: create drop down with teamCals else create label * * @param fieldSet */ private void initTeamCalPicker(final FieldsetPanel fieldSet) { if (access == false) { final TeamCalDO calendar = data.getCalendar(); final Label teamCalTitle = new Label(fieldSet.newChildId(), calendar != null ? new PropertyModel<String>(data.getCalendar(), "title") : ""); fieldSet.add(teamCalTitle); } else { final List<TeamCalDO> list = teamCalDao.getAllCalendarsWithFullAccess(); calendarsWithFullAccess = list.toArray(new TeamCalDO[0]); final LabelValueChoiceRenderer<TeamCalDO> calChoiceRenderer = new LabelValueChoiceRenderer<TeamCalDO>(); for (final TeamCalDO cal : list) { calChoiceRenderer.addValue(cal, cal.getTitle()); } final DropDownChoice<TeamCalDO> calDropDownChoice = new DropDownChoice<>(fieldSet.getDropDownChoiceId(), new PropertyModel<TeamCalDO>(data, "calendar"), calChoiceRenderer.getValues(), calChoiceRenderer); calDropDownChoice.setNullValid(false); calDropDownChoice.setRequired(true); fieldSet.add(calDropDownChoice); } }
/** * Owners of the given calendar and users with full and read-only access have update access to the given calendar: * obj.getCalendar(). * * @see org.projectforge.business.user.UserRightAccessCheck#hasHistoryAccess(org.projectforge.framework.persistence.user.entities.PFUserDO, * java.lang.Object) */ @Override public boolean hasHistoryAccess(final PFUserDO user, final TeamEventDO obj) { if (obj == null) { return true; } final TeamCalDO calendar = obj.getCalendar(); if (calendar == null) { return false; } if (ObjectUtils.equals(user.getId(), calendar.getOwnerId()) == true) { // User has full access to it's own calendars. return true; } final Integer userId = user.getId(); if (teamCalRight.hasFullAccess(calendar, userId) == true || teamCalRight.hasReadonlyAccess(calendar, userId) == true) { return true; } return false; }
/** * @return true if user is assignee or reporter. If not, the task access is checked. * @see org.projectforge.business.user.UserRightAccessCheck#hasSelectAccess(org.projectforge.framework.persistence.user.entities.PFUserDO, * java.lang.Object) */ @Override public boolean hasSelectAccess(final PFUserDO user, final TeamEventDO obj) { final TeamCalDO calendar = obj.getCalendar(); if (calendar == null) { return false; } if (ObjectUtils.equals(user.getId(), calendar.getOwnerId()) == true) { // User has full access to it's own calendars. return true; } final Integer userId = user.getId(); if (teamCalRight.hasFullAccess(calendar, userId) == true || teamCalRight.hasReadonlyAccess(calendar, userId) == true) { return true; } else if (teamCalRight.hasMinimalAccess(calendar, userId) == true) { // Clear fields for users with minimal access. obj.clearFields(); return true; } return false; }
Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("ICAL_IMPORT_UID_VALUE_UPDATE_IF_REQUIRED", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 15:07:52.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime());
Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("ICAL_IMPORT_UID_VALUE_UPDATE_IF_REQUIRED", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-22 15:07:52.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime());
diff.calendar = computeFieldDiff(diff, TeamEventField.CALENDAR, fieldFilter, eventNewState.getCalendar(), eventOldState.getCalendar()); diff.creator = computeFieldDiff(diff, TeamEventField.CREATOR, fieldFilter, eventNewState.getCreator(), eventOldState.getCreator()); diff.startDate = computeFieldDiff(diff, TeamEventField.START_DATE, fieldFilter, eventNewState.getStartDate(), eventOldState.getStartDate());
Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("170FA3B6-D786-43DC-A78F-BED563CCD411", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:54:55.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime());
Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("ICAL_UID_NORMAL_EVENT_TEST", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 06:34:14.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("ICAL_UID_NORMAL_EVENT_TEST", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-06-21 06:49:49.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime());
Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("bc939c07-4128-1647-acea-46345412e2e4", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:43:34.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime());
Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("08C6BECA-AFF3-4363-870A-CB642436E69A", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("08C6BECA-AFF3-4363-870A-CB642436E69A", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("08C6BECA-AFF3-4363-870A-CB642436E69A", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 12:59:07.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals(null, event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-07 13:02:24.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime());
Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("6c7950a6-209b-7343-bff7-e356b18bc4aa", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:49:51.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("6c7950a6-209b-7343-bff7-e356b18bc4aa", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:50:16.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("6c7950a6-209b-7343-bff7-e356b18bc4aa", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:50:42.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals(null, event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-08-08 05:50:42.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime());
Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("366F19E0-1602-4D58-B303-E1D58AF4D227", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-04 15:13:03.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals(null, event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-04 15:13:44.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals(null, event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-05 05:28:46.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime()); Assert.assertNotNull(event); Assert.assertEquals(calendar, event.getCalendar()); Assert.assertEquals("366F19E0-1602-4D58-B303-E1D58AF4D227", event.getUid()); Assert.assertEquals(DateHelper.parseIsoTimestamp("2017-07-05 05:28:46.000", DateHelper.UTC).getTime(), event.getDtStamp().getTime());
clone.setCalendar(this.getCalendar()); clone.setCreator(this.getCreator()); clone.startDate = this.startDate;
final TeamCalDO teamCal = data.getCalendar();