@@ 315-332 (lines=18) @@ | ||
312 | * @param Member|null $member |
|
313 | * @return boolean |
|
314 | */ |
|
315 | public function canDeploy($member = null) { |
|
316 | if (!$member) { |
|
317 | $member = Member::currentUser(); |
|
318 | } |
|
319 | if (!$member) { |
|
320 | return false; |
|
321 | } |
|
322 | // Must be logged in to check permissions |
|
323 | ||
324 | if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) { |
|
325 | if ($this->Project()->allowed(DNRoot::ALLOW_PROD_DEPLOYMENT, $member)) { |
|
326 | return true; |
|
327 | } |
|
328 | } else { |
|
329 | if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_DEPLOYMENT, $member)) { |
|
330 | return true; |
|
331 | } |
|
332 | } |
|
333 | ||
334 | return $this->Deployers()->byID($member->ID) |
|
335 | || $member->inGroups($this->DeployerGroups()); |
|
@@ 354-371 (lines=18) @@ | ||
351 | * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember(); |
|
352 | * @return boolean true if $member can restore, and false if they can't. |
|
353 | */ |
|
354 | public function canRestore($member = null) { |
|
355 | if (!$member) { |
|
356 | $member = Member::currentUser(); |
|
357 | } |
|
358 | if (!$member) { |
|
359 | return false; |
|
360 | } |
|
361 | // Must be logged in to check permissions |
|
362 | ||
363 | if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) { |
|
364 | if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { |
|
365 | return true; |
|
366 | } |
|
367 | } else { |
|
368 | if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { |
|
369 | return true; |
|
370 | } |
|
371 | } |
|
372 | ||
373 | return $this->CanRestoreMembers()->byID($member->ID) |
|
374 | || $member->inGroups($this->CanRestoreGroups()); |
|
@@ 458-475 (lines=18) @@ | ||
455 | * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember(); |
|
456 | * @return boolean true if $member can download archives from this environment, false if they can't. |
|
457 | */ |
|
458 | public function canDownloadArchive($member = null) { |
|
459 | if (!$member) { |
|
460 | $member = Member::currentUser(); |
|
461 | } |
|
462 | if (!$member) { |
|
463 | return false; |
|
464 | } |
|
465 | // Must be logged in to check permissions |
|
466 | ||
467 | if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) { |
|
468 | if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { |
|
469 | return true; |
|
470 | } |
|
471 | } else { |
|
472 | if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { |
|
473 | return true; |
|
474 | } |
|
475 | } |
|
476 | ||
477 | return $this->ArchiveDownloaders()->byID($member->ID) |
|
478 | || $member->inGroups($this->ArchiveDownloaderGroups()); |
|
@@ 488-505 (lines=18) @@ | ||
485 | * @param Member|null $member The {@link Member} object to test against. If null, uses Member::currentMember(); |
|
486 | * @return boolean true if $member can delete archives from this environment, false if they can't. |
|
487 | */ |
|
488 | public function canDeleteArchive($member = null) { |
|
489 | if (!$member) { |
|
490 | $member = Member::currentUser(); |
|
491 | } |
|
492 | if (!$member) { |
|
493 | return false; |
|
494 | } |
|
495 | // Must be logged in to check permissions |
|
496 | ||
497 | if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) { |
|
498 | if ($this->Project()->allowed(DNRoot::ALLOW_PROD_SNAPSHOT, $member)) { |
|
499 | return true; |
|
500 | } |
|
501 | } else { |
|
502 | if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_SNAPSHOT, $member)) { |
|
503 | return true; |
|
504 | } |
|
505 | } |
|
506 | ||
507 | return $this->ArchiveDeleters()->byID($member->ID) |
|
508 | || $member->inGroups($this->ArchiveDeleterGroups()); |