14 namespace Fossology\Reuser;
22 use Symfony\Component\HttpFoundation\Request;
24 include_once(dirname(__DIR__) .
"/agent/version.php");
39 public function __construct()
41 $this->Name =
"agent_reuser";
42 $this->Title = _(
"Reuse of License Clearing");
43 $this->AgentName =
"reuser";
45 parent::__construct();
47 $this->uploadDao = $GLOBALS[
'container']->get(
'dao.upload');
58 return $reuserPlugin->renderContent($vars);
69 return $reuserPlugin->renderFoot($vars);
78 menu_insert(
"ParmAgents::" . $this->Title, 0, $this->Name);
91 $reuseUploadPair = explode(
',',
92 $request->get(self::UPLOAD_TO_REUSE_SELECTOR_NAME), 2);
93 if (count($reuseUploadPair) == 2) {
94 list($reuseUploadId, $reuseGroupId) = $reuseUploadPair;
96 $errorMsg .=
'no reuse upload id given';
101 $getReuseValue = $request->get(
'reuseMode') ?: array();
102 $reuserDependencies = array(
"agent_adj2nest");
104 $reuseMode = UploadDao::REUSE_NONE;
105 foreach ($getReuseValue as $currentReuseValue) {
106 switch ($currentReuseValue) {
108 $reuseMode |= UploadDao::REUSE_MAIN;
110 case 'reuseEnhanced':
111 $reuseMode |= UploadDao::REUSE_ENHANCED;
114 $reuseMode |= UploadDao::REUSE_CONF;
116 case 'reuseCopyright':
117 $reuseMode |= UploadDao::REUSE_COPYRIGHT;
122 $reuserDependencies = array_merge($reuserDependencies,
123 $this->getReuserDependencies($request));
128 return $this->
doAgentAdd($jobId, $uploadId, $errorMsg,
129 array_unique($reuserDependencies), $uploadId);
140 protected function createPackageLink($uploadId, $reuseUploadId, $groupId, $reuseGroupId, $reuseMode=0)
143 $packageDao = $GLOBALS[
'container']->get(
'dao.package');
144 $newUpload = $this->uploadDao->getUpload($uploadId);
145 $uploadForReuse = $this->uploadDao->getUpload($reuseUploadId);
147 $package = $packageDao->findPackageForUpload($reuseUploadId);
149 if ($package ===
null) {
151 $package = $packageDao->createPackage($packageName ?: $uploadForReuse->getFilename());
152 $packageDao->addUploadToPackage($reuseUploadId, $package);
155 $packageDao->addUploadToPackage($uploadId, $package);
157 $this->uploadDao->addReusedUpload($uploadId, $reuseUploadId, $groupId, $reuseGroupId, $reuseMode);
165 private function getReuserDependencies($request)
167 $dependencies = array();
168 if ($request->get(
"Check_agent_nomos",
false)) {
169 $dependencies[] =
"agent_nomos";
171 if ($request->get(
"Check_agent_monk",
false)) {
172 $dependencies[] =
"agent_monk";
174 if ($request->get(
"Check_agent_ojo",
false)) {
175 $dependencies[] =
"agent_ojo";
177 if ($request->get(
"Check_agent_ninka",
false)) {
178 $dependencies[] =
"agent_ninka";
180 if ($request->get(
"Check_agent_copyright",
false)) {
181 $dependencies[] =
"agent_copyright";
183 if (!empty($request->get(
"scancodeFlags", []))) {
188 $flags = $request->get(
'scancodeFlags');
189 $unpackArgs = intval($request->get(
'scm', 0)) == 1 ?
'I' :
'';
191 "name" =>
"agent_scancode",
192 "args" => $agentScanCode->getScanCodeArgs($flags, $unpackArgs)
195 return $dependencies;
199 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)
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 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.
renderFoot(&$vars)
Render footer twig templates for plugin_reuser.
plugin_find($pluginName)
Given the official name of a plugin, return the $Plugins object.