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);
151 } elseif ($agent ==
"kotoba") {
152 $agentsToAdd[] =
"agent_kotoba";
153 $request->request->set(
"Check_agent_kotoba", 1);
155 $agentsToAdd[] =
"agent_$agent";
156 $request->request->set(
"Check_agent_$agent", 1);
161 foreach ($this->analysis->getArray($apiVersion) as $agent => $set) {
163 if ($agent ==
"copyright_email_author") {
164 $agentsToAdd[] =
"agent_copyright";
165 $request->request->set(
"Check_agent_copyright", 1);
166 } elseif ($agent ==
"patent") {
167 $agentsToAdd[] =
"agent_ipra";
168 $request->request->set(
"Check_agent_ipra", 1);
169 } elseif ($agent ==
"package") {
170 $agentsToAdd[] =
"agent_pkgagent";
171 $request->request->set(
"Check_agent_pkgagent", 1);
172 } elseif ($agent ==
"heritage") {
173 $agentsToAdd[] =
"agent_shagent";
174 $request->request->set(
"Check_agent_shagent", 1);
175 } elseif ($agent ==
"kotoba_bulk") {
176 $agentsToAdd[] =
"agent_kotoba";
177 $request->request->set(
"Check_agent_kotoba", 1);
179 $agentsToAdd[] =
"agent_$agent";
180 $request->request->set(
"Check_agent_$agent", 1);
194 $reuseUploads = $this->reuse->getReuseUploads();
195 $reuseUploads = array_filter($reuseUploads,
function ($id) {
198 if (empty($reuseUploads)) {
201 foreach ($reuseUploads as $reuseUploadId) {
202 if (!$GLOBALS[
'container']->
get(
"dao.upload")->isAccessible($reuseUploadId,
Auth::getGroupId())) {
207 if ($this->reuse->getReuseMain() ===
true) {
208 $reuserRules[] =
'reuseMain';
210 if ($this->reuse->getReuseEnhanced() ===
true) {
211 $reuserRules[] =
'reuseEnhanced';
213 if ($this->reuse->getReuseReport() ===
true) {
214 $reuserRules[] =
'reuseConf';
216 if ($this->reuse->getReuseCopyright() ===
true) {
217 $reuserRules[] =
'reuseCopyright';
219 $userDao = $GLOBALS[
'container']->get(
"dao.user");
220 $groupId = $userDao->getGroupIdByName($this->reuse->getReuseGroup());
221 $reuserSelectors = [];
222 foreach ($reuseUploads as $uploadId) {
223 $reuserSelectors[] = $uploadId .
"," . $groupId;
225 if (count($reuserSelectors) === 1) {
226 $request->request->set(
'uploadToReuse', $reuserSelectors[0]);
228 $request->request->set(
'uploadToReuse', $reuserSelectors);
230 $request->request->set(
'reuseMode', $reuserRules);
240 if ($this->decider->getNomosMonk() ===
true) {
241 $deciderRules[] =
'nomosInMonk';
243 if ($this->decider->getBulkReused() ===
true) {
244 $deciderRules[] =
'reuseBulk';
246 if ($this->decider->getNewScanner() ===
true) {
247 $deciderRules[] =
'wipScannerUpdates';
249 if ($this->decider->getOjoDecider() ===
true) {
250 $deciderRules[] =
'ojoNoContradiction';
252 if ($this->decider->getCopyrightDeactivation() ===
true) {
253 $deciderRules[] =
'copyrightDeactivation';
255 if ($this->decider->getCopyrightClutterRemoval() ===
true) {
256 $deciderRules[] =
'copyrightDeactivationClutterRemoval';
258 if (! empty($this->decider->getConcludeLicenseType())) {
259 $deciderRules[] =
'licenseTypeConc';
260 $request->request->set(
'licenseTypeConc',
261 $this->decider->getConcludeLicenseType());
263 $request->request->set(
'deciderRules', $deciderRules);
264 if ($this->analysis->getNomos()) {
265 $request->request->set(
'Check_agent_nomos', 1);
276 if ($this->scancode->getScanLicense() ===
true) {
277 $scancodeRules[] =
'license';
279 if ($this->scancode->getScanCopyright() ===
true) {
280 $scancodeRules[] =
'copyright';
282 if ($this->scancode->getScanEmail() ===
true) {
283 $scancodeRules[] =
'email';
285 if ($this->scancode->getScanUrl() ===
true) {
286 $scancodeRules[] =
'url';
288 $request->request->set(
'scancodeFlags', $scancodeRules);
Contains the constants and helpers for authentication of user.
static getGroupId()
Get the current user's group id.
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.