Scalr\Model\Entity\Server::hasAccessPermissions PHP Method

hasAccessPermissions() public method

See also: AccessPermissionsInterface::hasAccessPermissions()
public hasAccessPermissions ( $user, $environment = null, $modify = null )
    public function hasAccessPermissions($user, $environment = null, $modify = null)
    {
        /* @var $user User */
        /* @var $environment Environment */
        $access = $environment && $this->envId == $environment->id;
        if ($access) {
            if ($this->farmId) {
                /* @var $farm Farm */
                $farm = Farm::findPk($this->farmId);
                if ($farm) {
                    $access = $farm->hasAccessPermissions($user, $environment, $modify ? Acl::PERM_FARMS_SERVERS : NULL);
                } else {
                    // farm not found, let's check access to all farms
                    $access = $user->getAclRolesByEnvironment($environment->id)->isAllowed(Acl::RESOURCE_FARMS);
                }
            } else {
                // image builder/import servers have farmId as null, for them we check another permissions
                $access = $user->getAclRolesByEnvironment($environment->id)->isAllowed(Acl::RESOURCE_IMAGES_ENVIRONMENT, Acl::PERM_IMAGES_ENVIRONMENT_MANAGE);
            }
        }
        return $access;
    }