DNEnvironment::canDeploy PHP 메소드

canDeploy() 공개 메소드

Allow deploy only to some people.
public canDeploy ( Member | null $member = null ) : boolean
$member Member | null
리턴 boolean
    public function canDeploy($member = null)
    {
        if (!$member) {
            $member = Member::currentUser();
        }
        if (!$member) {
            return false;
        }
        // Must be logged in to check permissions
        if ($this->Usage === self::PRODUCTION || $this->Usage === self::UNSPECIFIED) {
            if ($this->Project()->allowed(DNRoot::ALLOW_PROD_DEPLOYMENT, $member)) {
                return true;
            }
        } else {
            if ($this->Project()->allowed(DNRoot::ALLOW_NON_PROD_DEPLOYMENT, $member)) {
                return true;
            }
        }
        return $this->Deployers()->byID($member->ID) || $member->inGroups($this->DeployerGroups());
    }

Usage Example

 /**
  * @param \DNEnvironment $environment
  * @param \Member|null $member
  * @return bool
  */
 public static function can_bypass_approval(\DNEnvironment $environment, \Member $member = null)
 {
     if ($member === null) {
         $member = \Member::currentUser();
     }
     // special case for non-Production environments: users who can deploy are able to bypass approval.
     if ($environment->Usage !== \DNEnvironment::PRODUCTION && $environment->canDeploy($member)) {
         return true;
     }
     return $environment->Project()->allowed(self::ALLOW_APPROVAL_BYPASS, $member);
 }