/** * @todo @project_access refactor * * @param Project $project * @param ProjectAccess $access * * @return boolean */ protected function grantProjectAccess(Project $project, ProjectAccess $access) { $args = ['auth:' . $project->getSlug()]; if ($this->feature_ip_access_list || $access->getIp() === '0.0.0.0') { $args[] = $access->getIp(); } if ($this->feature_token_access_list) { $args[] = $access->getToken(); } $args = array_filter($args, function ($arg) { return strlen($arg) > 0; }); return (bool) call_user_func_array([$this->redis, 'sadd'], $args); }
protected function isProjectAccessGranted(Project $project, ProjectAccess $access) { $authKey = 'auth:' . $project->getSlug(); $results = $this->get('app_core.redis')->multi()->sismember($authKey, $access->getIp())->sismember($authKey, $access->getToken())->exec(); return false !== array_search(true, $results); }