14 namespace Fossology\Reuser;
22 use Symfony\Component\HttpFoundation\Request;
24 include_once(dirname(__DIR__) .
"/agent/version.php");
40 public function __construct()
42 $this->Name =
"agent_reuser";
43 $this->Title = _(
"Reuse of License Clearing");
44 $this->AgentName =
"reuser";
46 parent::__construct();
48 $this->uploadDao = $GLOBALS[
'container']->get(
'dao.upload');
59 return $reuserPlugin->renderContent($vars);
70 return $reuserPlugin->renderFoot($vars);
81 return $reuserPlugin->getScriptIncludes($vars);
90 menu_insert(
"ParmAgents::" . $this->Title, 0, $this->Name);
103 $reuseUploadPair = explode(
',',
104 $request->get(self::UPLOAD_TO_REUSE_SELECTOR_NAME), 2);
105 if (count($reuseUploadPair) == 2) {
106 list($reuseUploadId, $reuseGroupId) = $reuseUploadPair;
108 $errorMsg .=
'no reuse upload id given';
113 $getReuseValue = $request->get(self::REUSE_MODE) ?: array();
114 $reuserDependencies = array(
"agent_adj2nest");
116 $reuseMode = UploadDao::REUSE_NONE;
117 foreach ($getReuseValue as $currentReuseValue) {
118 switch ($currentReuseValue) {
120 $reuseMode |= UploadDao::REUSE_MAIN;
122 case 'reuseEnhanced':
123 $reuseMode |= UploadDao::REUSE_ENHANCED;
126 $reuseMode |= UploadDao::REUSE_CONF;
128 case 'reuseCopyright':
129 $reuseMode |= UploadDao::REUSE_COPYRIGHT;
134 list($agentDeps, $scancodeDeps) = $this->getReuserDependencies($request);
135 $reuserDependencies = array_unique(array_merge($reuserDependencies, $agentDeps));
136 if (!empty($scancodeDeps)) {
137 $reuserDependencies[] = $scancodeDeps;
143 return $this->
doAgentAdd($jobId, $uploadId, $errorMsg,
144 $reuserDependencies, $uploadId,
null, $request);
155 protected function createPackageLink($uploadId, $reuseUploadId, $groupId, $reuseGroupId, $reuseMode=0)
158 $packageDao = $GLOBALS[
'container']->get(
'dao.package');
159 $newUpload = $this->uploadDao->getUpload($uploadId);
160 $uploadForReuse = $this->uploadDao->getUpload($reuseUploadId);
162 $package = $packageDao->findPackageForUpload($reuseUploadId);
164 if ($package ===
null) {
166 $package = $packageDao->createPackage($packageName ?: $uploadForReuse->getFilename());
167 $packageDao->addUploadToPackage($reuseUploadId, $package);
170 $packageDao->addUploadToPackage($uploadId, $package);
172 $this->uploadDao->addReusedUpload($uploadId, $reuseUploadId, $groupId, $reuseGroupId, $reuseMode);
180 private function getReuserDependencies($request)
182 $dependencies = array();
184 if ($request->get(
"Check_agent_nomos",
false)) {
185 $dependencies[] =
"agent_nomos";
187 if ($request->get(
"Check_agent_monk",
false)) {
188 $dependencies[] =
"agent_monk";
190 if ($request->get(
"Check_agent_ojo",
false)) {
191 $dependencies[] =
"agent_ojo";
193 if ($request->get(
"Check_agent_ninka",
false)) {
194 $dependencies[] =
"agent_ninka";
196 if ($request->get(
"Check_agent_copyright",
false)) {
197 $dependencies[] =
"agent_copyright";
199 if (!empty($request->get(
"scancodeFlags", []))) {
204 $flags = $request->get(
'scancodeFlags');
205 $unpackArgs = intval($request->get(
'scm', 0)) == 1 ?
'I' :
'';
207 "name" =>
"agent_scancode",
208 "args" => $agentScanCode->getScanCodeArgs($flags, $unpackArgs)
211 return [$dependencies, $scancodeDeps];
215 register_plugin(
new ReuserAgentPlugin());
Contains the constants and helpers for authentication of user.
static getGroupId()
Get the current user's group id.
doAgentAdd($jobId, $uploadId, &$errorMsg, $dependencies, $jqargs="", $jq_cmd_args=null, $request=null)
static getCommonHead($a, $b)
UI element for reuser during Uploading new package.
scheduleAgent($jobId, $uploadId, &$errorMsg, $request)
Get parameters from request and add to job queue.
renderContent(&$vars)
Render twig templates for plugin_reuser.
const REUSE_MODE
Form element name for main license to reuse.
const UPLOAD_TO_REUSE_SELECTOR_NAME
Form element name for main license to reuse.
createPackageLink($uploadId, $reuseUploadId, $groupId, $reuseGroupId, $reuseMode=0)
Create links between old and new upload.
getScriptIncludes(&$vars)
Get script tags to include before rendering foot.
renderFoot(&$vars)
Render footer twig templates for plugin_reuser.
plugin_find($pluginName)
Given the official name of a plugin, return the $Plugins object.