From 136079b60b280ae7c2ee76f40c3303f5388af1d1 Mon Sep 17 00:00:00 2001
From: Jake Bentvelzen <jake@silverstripe.com.au>
Date: Thu, 12 Jan 2017 13:30:40 +1100
Subject: [PATCH] feat(CalendarDateTime): Allow extension hooks for
 canView/canCreate/canEdit/canView

---
 code/CalendarDateTime.php | 24 ++++++++++++++++++++----
 1 file changed, 20 insertions(+), 4 deletions(-)

diff --git a/code/CalendarDateTime.php b/code/CalendarDateTime.php
index cdbe03a..3a52795 100755
--- a/code/CalendarDateTime.php
+++ b/code/CalendarDateTime.php
@@ -200,19 +200,35 @@ public function getAllDatesInRange() {
 	}
 	
 	public function canCreate($member = null) {
-		return Permission::check("CMS_ACCESS_CMSMain");
+		$extended = $this->extendedCan(__FUNCTION__, $member);
+		if($extended !== null) {
+			return $extended;
+		}
+		return Permission::check('CMS_ACCESS_CMSMain', 'any', $member);
 	}
 
 	public function canEdit($member = null) {
-		return Permission::check("CMS_ACCESS_CMSMain");
+		$extended = $this->extendedCan(__FUNCTION__, $member);
+		if($extended !== null) {
+			return $extended;
+		}
+		return Permission::check('CMS_ACCESS_CMSMain', 'any', $member);
 	}
 
 	public function canDelete($member = null) {
-		return Permission::check("CMS_ACCESS_CMSMain");
+		$extended = $this->extendedCan(__FUNCTION__, $member);
+		if($extended !== null) {
+			return $extended;
+		}
+		return Permission::check('CMS_ACCESS_CMSMain', 'any', $member);
 	}
 
 	public function canView($member = null) {
-		return Permission::check("CMS_ACCESS_CMSMain");
+		$extended = $this->extendedCan(__FUNCTION__, $member);
+		if($extended !== null) {
+			return $extended;
+		}
+		return Permission::check('CMS_ACCESS_CMSMain', 'any', $member);
 	}
 
 }