14 namespace Fossology\UI\Api\Models;
20 use Symfony\Component\HttpFoundation\Request;
22 if (!class_exists(
"AgentAdder",
false)) {
23 require_once dirname(__DIR__, 2) .
"/agent-add.php";
25 require_once dirname(__DIR__, 4) .
"/lib/php/common-folders.php";
99 foreach ($uploadsAccessible as $singleUpload) {
100 if ($singleUpload[
'upload_pk'] == $uploadId) {
105 if ($found ===
false) {
107 "Folder id $folderId does not have upload id " .
108 "$uploadId or you do not have write access to the folder.");
112 $paramAgentRequest =
new Request();
117 $returnStatus = (new \AgentAdder())->
scheduleAgents($uploadId, $agentsToAdd, $paramAgentRequest);
118 if (is_numeric($returnStatus)) {
119 return new Info(201, $returnStatus, InfoType::INFO);
134 $apiVersion = ApiVersion::getVersionFromUri();
136 if ($apiVersion == ApiVersion::V2) {
137 foreach ($this->analysis->getArray($apiVersion) as $agent => $set) {
139 if ($agent ==
"copyrightEmailAuthor") {
140 $agentsToAdd[] =
"agent_copyright";
141 $request->request->set(
"Check_agent_copyright", 1);
142 } elseif ($agent ==
"ipra") {
143 $agentsToAdd[] =
"agent_ipra";
144 $request->request->set(
"Check_agent_ipra", 1);
145 } elseif ($agent ==
"pkgagent") {
146 $agentsToAdd[] =
"agent_pkgagent";
147 $request->request->set(
"Check_agent_pkgagent", 1);
148 } elseif ($agent ==
"softwareHeritage") {
149 $agentsToAdd[] =
"agent_shagent";
150 $request->request->set(
"Check_agent_shagent", 1);
152 $agentsToAdd[] =
"agent_$agent";
153 $request->request->set(
"Check_agent_$agent", 1);
158 foreach ($this->analysis->getArray($apiVersion) as $agent => $set) {
160 if ($agent ==
"copyright_email_author") {
161 $agentsToAdd[] =
"agent_copyright";
162 $request->request->set(
"Check_agent_copyright", 1);
163 } elseif ($agent ==
"patent") {
164 $agentsToAdd[] =
"agent_ipra";
165 $request->request->set(
"Check_agent_ipra", 1);
166 } elseif ($agent ==
"package") {
167 $agentsToAdd[] =
"agent_pkgagent";
168 $request->request->set(
"Check_agent_pkgagent", 1);
169 } elseif ($agent ==
"heritage") {
170 $agentsToAdd[] =
"agent_shagent";
171 $request->request->set(
"Check_agent_shagent", 1);
173 $agentsToAdd[] =
"agent_$agent";
174 $request->request->set(
"Check_agent_$agent", 1);
188 if ($this->reuse->getReuseUpload() == 0) {
193 if ($this->reuse->getReuseMain() ===
true) {
194 $reuserRules[] =
'reuseMain';
196 if ($this->reuse->getReuseEnhanced() ===
true) {
197 $reuserRules[] =
'reuseEnhanced';
199 if ($this->reuse->getReuseReport() ===
true) {
200 $reuserRules[] =
'reuseConf';
202 if ($this->reuse->getReuseCopyright() ===
true) {
203 $reuserRules[] =
'reuseCopyright';
205 $userDao = $GLOBALS[
'container']->get(
"dao.user");
206 $reuserSelector = $this->reuse->getReuseUpload() .
"," . $userDao->getGroupIdByName($this->reuse->getReuseGroup());
207 $request->request->set(
'uploadToReuse', $reuserSelector);
208 $request->request->set(
'reuseMode', $reuserRules);
218 if ($this->decider->getNomosMonk() ===
true) {
219 $deciderRules[] =
'nomosInMonk';
221 if ($this->decider->getBulkReused() ===
true) {
222 $deciderRules[] =
'reuseBulk';
224 if ($this->decider->getNewScanner() ===
true) {
225 $deciderRules[] =
'wipScannerUpdates';
227 if ($this->decider->getOjoDecider() ===
true) {
228 $deciderRules[] =
'ojoNoContradiction';
230 if ($this->decider->getCopyrightDeactivation() ===
true) {
231 $deciderRules[] =
'copyrightDeactivation';
233 if ($this->decider->getCopyrightClutterRemoval() ===
true) {
234 $deciderRules[] =
'copyrightDeactivationClutterRemoval';
236 if (! empty($this->decider->getConcludeLicenseType())) {
237 $deciderRules[] =
'licenseTypeConc';
238 $request->request->set(
'licenseTypeConc',
239 $this->decider->getConcludeLicenseType());
241 $request->request->set(
'deciderRules', $deciderRules);
242 if ($this->analysis->getNomos()) {
243 $request->request->set(
'Check_agent_nomos', 1);
254 if ($this->scancode->getScanLicense() ===
true) {
255 $scancodeRules[] =
'license';
257 if ($this->scancode->getScanCopyright() ===
true) {
258 $scancodeRules[] =
'copyright';
260 if ($this->scancode->getScanEmail() ===
true) {
261 $scancodeRules[] =
'email';
263 if ($this->scancode->getScanUrl() ===
true) {
264 $scancodeRules[] =
'url';
266 $request->request->set(
'scancodeFlags', $scancodeRules);
Contains the constants and helpers for authentication of user.
Info model to contain general error and return values.
Model to hold add settings for new scan.
prepareScancode(Request &$request)
scheduleAgents($folderId, $uploadId, $newUpload=true)
prepareReuser(Request &$request)
prepareAgents(Request &$request)
__construct($analysis, $reuse, $decider, $scancode)
prepareDecider(Request &$request)
FolderListUploads_perm($ParentFolder, $perm)
Returns an array of uploads in a folder.