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;
}