diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -178,6 +178,7 @@ 'AuthManageProvidersCapability' => 'applications/auth/capability/AuthManageProvidersCapability.php', 'CalendarTimeUtil' => 'applications/calendar/util/CalendarTimeUtil.php', 'CalendarTimeUtilTestCase' => 'applications/calendar/__tests__/CalendarTimeUtilTestCase.php', + 'CalendarDefaultEditCapability' => 'applications/calendar/capability/CalendarDefaultEditCapability.php', 'CelerityAPI' => 'applications/celerity/CelerityAPI.php', 'CelerityDefaultPostprocessor' => 'applications/celerity/postprocessor/CelerityDefaultPostprocessor.php', 'CelerityHighContrastPostprocessor' => 'applications/celerity/postprocessor/CelerityHighContrastPostprocessor.php', @@ -3680,6 +3681,7 @@ 'AuthManageProvidersCapability' => 'PhabricatorPolicyCapability', 'CalendarTimeUtil' => 'Phobject', 'CalendarTimeUtilTestCase' => 'PhabricatorTestCase', + 'CalendarDefaultEditCapability' => 'PhabricatorPolicyCapability', 'CelerityAPI' => 'Phobject', 'CelerityDefaultPostprocessor' => 'CelerityPostprocessor', 'CelerityHighContrastPostprocessor' => 'CelerityPostprocessor', diff --git a/src/applications/calendar/application/PhabricatorCalendarApplication.php b/src/applications/calendar/application/PhabricatorCalendarApplication.php --- a/src/applications/calendar/application/PhabricatorCalendarApplication.php +++ b/src/applications/calendar/application/PhabricatorCalendarApplication.php @@ -80,6 +80,14 @@ return $items; } + protected function getCustomCapabilities() { + return array( + CalendarDefaultEditCapability::CAPABILITY => array( + 'caption' => pht('Default edit policy for newly created events.') + ) + ); + } + public function getMailCommandObjects() { return array( 'event' => array( diff --git a/src/applications/calendar/capability/CalendarDefaultEditCapability.php b/src/applications/calendar/capability/CalendarDefaultEditCapability.php new file mode 100644 --- /dev/null +++ b/src/applications/calendar/capability/CalendarDefaultEditCapability.php @@ -0,0 +1,11 @@ +getPolicy(CalendarDefaultEditCapability::CAPABILITY); + return id(new PhabricatorCalendarEvent()) ->setUserPHID($actor->getPHID()) ->setIsCancelled(0) @@ -73,7 +75,7 @@ ->setIsRecurring($is_recurring) ->setIcon(self::DEFAULT_ICON) ->setViewPolicy($view_policy) - ->setEditPolicy($actor->getPHID()) + ->setEditPolicy($edit_policy) ->setSpacePHID($actor->getDefaultSpacePHID()) ->attachInvitees(array()) ->applyViewerTimezone($actor);