public function canBackup($member = null)
{
$project = $this->Project();
if ($project->HasDiskQuota() && $project->HasExceededDiskQuota()) {
return false;
}
if (!$member) {
$member = Member::currentUser();
}
// Must be logged in to check permissions
if (!$member) {
return false;
}
if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) {
if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) {
return true;
}
} else {
if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) {
return true;
}
}
return $this->CanBackupMembers()->byID($member->ID) || $member->inGroups($this->CanBackupGroups());
}