Scalr\Stats\CostAnalytics\Projects::checkPermission PHP Method

checkPermission() public method

Checks if user has permissions to project in environment or account scope
public checkPermission ( string $projectId, array $criteria ) : boolean | mixed
$projectId string Identifier of the project
$criteria array ['envId' => '', 'clientid' => '']
return boolean | mixed
    public function checkPermission($projectId, array $criteria)
    {
        $and = '';
        foreach ($criteria as $name => $value) {
            $field = 'f.' . \Scalr::decamelize($name);
            $and .= " AND " . $field . "=" . $this->db->escape($value);
        }
        $projectEntity = new ProjectEntity();
        $projectId = $projectEntity->type('projectId')->toDb($projectId);
        $where = " WHERE p.project_id = UNHEX('" . $projectId . "') AND EXISTS (\n                SELECT * FROM farms f\n                LEFT JOIN farm_settings fs ON f.id = fs.farmid\n                WHERE fs.name = '" . Entity\FarmSetting::PROJECT_ID . "'\n                AND REPLACE(fs.value, '-', '') = HEX(p.project_id)\n                {$and})";
        $sql = "SELECT " . $projectEntity->fields('p') . "\n                FROM " . $projectEntity->table('p') . $where;
        return $this->db->GetOne($sql);
    }