NEW best way to keep extended 'can' functions effected with DataObject's own 'can' functions. MIN make possible to use DataExtension defined 'can' functions' signature without Strict level warning

This commit is contained in:
Normann Lou 2013-11-14 17:37:55 +13:00
parent fd81f964e2
commit d64fe9ba13
1 changed files with 34 additions and 17 deletions

View File

@ -38,31 +38,48 @@ class DMSDocument extends DataObject implements DMSDocumentInterface {
public function canView($member = null) {
$canView = false;
if($member == null) $member = Member::currentUser();
if($member->ID){
$canView = true;
if(!$member || !(is_a($member, 'Member')) || is_numeric($member)) $member = Member::currentUser();
// extended access checks
$results = $this->extend('canView', $member);
if($results && is_array($results)) {
if(!min($results)) return false;
}
$this->extend('canView', $canView);
return $canView;
if($member->ID){
return true;
}
return false;
}
public function canEdit($member = null) {
$canEdit = $this->canView();
$this->extend('canEdit', $canEdit);
return $canEdit;
if(!$member || !(is_a($member, 'Member')) || is_numeric($member)) $member = Member::currentUser();
$results = $this->extend('canEdit', $member);
if($results && is_array($results)) {
if(!min($results)) return false;
}
return $this->canView();
}
public function canCreate($member = null) {
$canCreate = $this->canView();
$this->extend('canCreate', $canCreate);
return $canCreate;
if(!$member || !(is_a($member, 'Member')) || is_numeric($member)) $member = Member::currentUser();
$results = $this->extend('canCreate', $member);
if($results && is_array($results)) {
if(!min($results)) return false;
}
return $this->canView();
}
public function canDelete($member = null) {
$canDelete = $this->canView();
$this->extend('canDelete', $canDelete);
return $canDelete;
if(!$member || !(is_a($member, 'Member')) || is_numeric($member)) $member = Member::currentUser();
$results = $this->extend('canDelete', $member);
if($results && is_array($results)) {
if(!min($results)) return false;
}
return $this->canView();
}