@@ 563-577 (lines=15) @@ | ||
560 | * @param Member|null $member |
|
561 | * @return boolean |
|
562 | */ |
|
563 | public function canAbort($member = null) |
|
564 | { |
|
565 | if (!$member) { |
|
566 | $member = Member::currentUser(); |
|
567 | } |
|
568 | if (!$member) { |
|
569 | return false; |
|
570 | } |
|
571 | ||
572 | if (Permission::checkMember($member, 'ADMIN')) { |
|
573 | return true; |
|
574 | } |
|
575 | ||
576 | return $this->PipelineCancellers()->byID($member->ID) |
|
577 | || $member->inGroups($this->PipelineCancellerGroups()); |
|
578 | } |
|
579 | ||
580 | /** |
|
@@ 586-599 (lines=14) @@ | ||
583 | * @param Member|null $member |
|
584 | * @return boolean |
|
585 | */ |
|
586 | public function canApprove($member = null) |
|
587 | { |
|
588 | if (!$member) { |
|
589 | $member = Member::currentUser(); |
|
590 | } |
|
591 | if (!$member) { |
|
592 | return false; |
|
593 | } |
|
594 | ||
595 | if (Permission::checkMember($member, 'ADMIN')) { |
|
596 | return true; |
|
597 | } |
|
598 | return $this->PipelineApprovers()->byID($member->ID) |
|
599 | || $member->inGroups($this->PipelineApproverGroups()); |
|
600 | } |
|
601 | ||
602 | /** |