示例#1
0
 private function importPackage(Project $project, SimpleXMLElement $xml_pkg, $extraction_path)
 {
     $attrs = $xml_pkg->attributes();
     $rank = isset($attrs['rank']) ? $attrs['rank'] : 'end';
     $hidden = isset($attrs['hidden']) ? $attrs['hidden'] : 'false';
     $hidden = $hidden == 'true' || $hidden == '1';
     $package = new FRSPackage();
     $package->setGroupId($project->getId());
     $package->setName((string) $attrs['name']);
     $package->setStatusID($hidden ? FRSPackage::STATUS_HIDDEN : FRSPackage::STATUS_ACTIVE);
     $package->setRank($rank);
     $package->setApproveLicense(true);
     $package->setPackageID($this->package_factory->create($package->toArray()));
     $read_perms = array();
     foreach ($xml_pkg->{'read-access'} as $perm) {
         $ugroup_name = (string) $perm->ugroup;
         $ugroup = $this->getUGroupManager()->getUGroupByName($project, $ugroup_name);
         $read_perms[] = $ugroup->getId();
     }
     $this->getPermissionsManager()->savePermissions($project, $package->getPackageID(), FRSPackage::PERM_READ, $read_perms);
     foreach ($xml_pkg->children() as $xml_rel) {
         if ($xml_rel->getName() != "release") {
             continue;
         }
         $this->importRelease($project, $package, $xml_rel, $extraction_path);
     }
 }