static function apply($query, $projectUuid) { // check for package name // $packageName = Input::get('package_name'); if ($packageName != '') { $query = $query->where('package_name', '=', $packageName); } // check for package uuid // $packageUuid = Input::get('package_uuid'); if ($packageUuid != '') { $packageVersions = PackageVersion::where('package_uuid', '=', $packageUuid)->get(); $query = $query->where(function ($query) use($packageVersions) { for ($i = 0; $i < sizeof($packageVersions); $i++) { if ($i == 0) { $query->where('package_version_uuid', '=', $packageVersions[$i]->package_version_uuid); } else { $query->orWhere('package_version_uuid', '=', $packageVersions[$i]->package_version_uuid); } } }); } // check for package version // $packageVersion = Input::get('package_version'); if ($packageVersion == 'latest') { $package = Package::where('package_uuid', '=', $packageUuid)->first(); if ($package) { $latestVersion = $package->getLatestVersion($projectUuid); if ($latestVersion) { $query = $query->where('package_version_uuid', '=', $latestVersion->package_version_uuid); } } } else { if ($packageVersion != '') { $query = $query->where('package_version_uuid', '=', $packageVersion); } } // check for package version uuid // $packageVersionUuid = Input::get('package_version_uuid'); if ($packageVersionUuid == 'latest') { $package = Package::where('package_uuid', '=', $packageUuid)->first(); if ($package) { $latestVersion = $package->getLatestVersion($projectUuid); if ($latestVersion) { $query = $query->where('package_version_uuid', '=', $latestVersion->package_version_uuid); } } } else { if ($packageVersionUuid != '') { $query = $query->where('package_version_uuid', '=', $packageVersionUuid); } } return $query; }
/** * accessor methods */ public function getPackageAttribute() { $packageVersion = PackageVersion::where('package_version_uuid', '=', $this->package_version_uuid)->first(); if ($packageVersion != null) { $package = Package::where('package_uuid', '=', $packageVersion->package_uuid)->first(); } else { $package = null; } // get package info from results // if (!$package || !$packageVersion) { $assessmentResult = AssessmentResult::where('execution_record_uuid', '=', $this->execution_record_uuid)->first(); } return array('name' => $package ? $package->name : ($assessmentResult ? $assessmentResult->package_name : ''), 'version_string' => $packageVersion ? $packageVersion->version_string : ($assessmentResult ? $assessmentResult->package_version : ''), 'package_uuid' => $package ? $package->package_uuid : '', 'package_version_uuid' => $packageVersion ? $packageVersion->package_version_uuid : ''); }
public function getLatestVersion($projectUuid) { if (!strpos($projectUuid, '+')) { // get by a single project // $packageVersionQuery = PackageVersion::where('package_uuid', '=', $this->package_uuid)->where(function ($query0) use($projectUuid) { $query0->whereRaw("upper(version_sharing_status)='PUBLIC'")->orWhere(function ($query1) use($projectUuid) { $query1->whereRaw("upper(version_sharing_status)='PROTECTED'")->whereExists(function ($query2) use($projectUuid) { $query2->select('package_version_uuid')->from('package_store.package_version_sharing')->whereRaw('package_store.package_version_sharing.package_version_uuid=package_version_uuid')->where('package_store.package_version_sharing.project_uuid', '=', $projectUuid); }); }); }); } else { // get by multiple projects // $projectUuids = explode('+', $projectUuid); foreach ($projectUuids as $projectUuid) { if (!isset($assessmentRunsQuery)) { $packageVersionQuery = PackageVersion::where('package_uuid', '=', $this->package_uuid)->where(function ($query0) use($projectUuid) { $query0->whereRaw("upper(version_sharing_status)='PUBLIC'")->orWhere(function ($query1) use($projectUuid) { $query1->whereRaw("upper(version_sharing_status)='PROTECTED'")->whereExists(function ($query2) use($projectUuid) { $query2->select('package_version_uuid')->from('package_store.package_version_sharing')->whereRaw('package_store.package_version_sharing.package_version_uuid=package_version_uuid')->where('package_store.package_version_sharing.project_uuid', '=', $projectUuid); }); }); }); } else { $packageVersionQuery = $packageVersionQuery->orWhere('package_uuid', '=', $this->package_uuid)->where(function ($query0) use($projectUuid) { $query0->whereRaw("upper(version_sharing_status)='PUBLIC'")->orWhere(function ($query1) use($projectUuid) { $query1->whereRaw("upper(version_sharing_status)='PROTECTED'")->whereExists(function ($query2) use($projectUuid) { $query2->select('package_version_uuid')->from('package_store.package_version_sharing')->whereRaw('package_store.package_version_sharing.package_version_uuid=package_version_uuid')->where('package_store.package_version_sharing.project_uuid', '=', $projectUuid); }); }); }); } } } // perform query // return $packageVersionQuery->orderBy('version_no', 'DESC')->first(); }
private function store() { $attributes = $this->getAttributes(); $packagePath = $attributes['package_path']; $packageUuid = $attributes['package_uuid']; // create stored procedure call // $connection = DB::connection('package_store'); $pdo = $connection->getPdo(); $stmt = $pdo->prepare("CALL store_package_version(\n\t\t\t:packageUuidIn, :packagePathIn, @packagePathOut, @checksum, @returnStatus, @returnMsg);"); // bind params // $stmt->bindParam(":packageUuidIn", $packageUuid, PDO::PARAM_STR, 45); $stmt->bindParam(":packagePathIn", $packagePath, PDO::PARAM_STR, 200); // set param values // $checksum = null; $returnStatus = null; $returnMsg = null; // call stored procedure // $results = $stmt->execute(); // fetch return parameters // $select = $pdo->query('SELECT @packagePathOut, @checksum, @returnStatus, @returnMsg'); $results = $select->fetchAll(); $packagePathOut = $results[0]["@packagePathOut"]; $checksum = $results[0]["@checksum"]; $returnStatus = $results[0]["@returnStatus"]; $returnMsg = $results[0]["@returnMsg"]; // remove file and directory // // unlink(PackageVersion::$incoming.$packagePath); // rmdir(dirname(PackageVersion::$incoming.$packagePath)); // create new package version if successful // if ($returnStatus == "SUCCESS") { // create new package version // $packageVersion = new PackageVersion($attributes); // set creation attributes // $packageVersion->package_version_uuid = GUID::create(); $packageVersion->package_path = $packagePathOut; $packageVersion->checksum = $checksum; $packageVersion->save(); return $packageVersion; } else { // return values // return Response::make($returnMsg, $returnStatus == 'ERROR' ? 500 : 200); } }
public function getPackageVersionStringAttribute() { $packageVersion = PackageVersion::where('package_version_uuid', '=', $this->package_version_uuid)->first(); return $packageVersion != null ? $packageVersion->version_string : 'latest'; }
// if ($package && !$package->isPublic()) { if (!$user->isAdmin() && !$package->isAvailableTo($user)) { return Response::make('Insufficient priveleges to access package.', 403); } } } } // check package version routes // $packageVersionUuid = $route->getParameter('package_version_uuid'); if ($packageVersionUuid) { // get relevant attributes // $user = User::getIndex(Session::get('user_uid')); $packageVersion = PackageVersion::where('package_version_uuid', '=', $packageVersionUuid)->first(); $isPublic = $packageVersion->version_sharing_status == 'public' || $packageVersion->version_sharing_status == 'PUBLIC'; $authenticationRequired = $method != 'get' && !$isPublic; // check to see if user is logged in // if ($authenticationRequired && !$user) { return Response::make('Authentication required to access package version.', 401); } else { // check to see if user has priveleges to view package version // if (!$isPublic) { if (!($user->isAdmin() || $packageVersion->getPackage()->isAvailableTo($user))) { return Response::make('Insufficient priveleges to access package version.', 403); } } }
public function applyToAll($packageUuid) { // get package // $package = $this->getIndex($packageUuid); // get default project sharings for package // $packageSharings = PackageSharing::where('package_uuid', '=', $packageUuid)->get(); // get all package versions // $packageVersions = PackageVersion::where('package_uuid', '=', $packageUuid)->get(); foreach ($packageVersions as $packageVersion) { // reset all package version sharings for current package version // $packageVersionSharings = PackageVersionSharing::where('package_version_uuid', '=', $packageVersion->package_version_uuid)->get(); foreach ($packageVersionSharings as $pvs) { $pvs->delete(); } // set all package version sharings for current package version // foreach ($packageSharings as $ps) { $packageVersionSharing = new PackageVersionSharing(array('project_uuid' => $ps->project_uuid, 'package_version_uuid' => $packageVersion->package_version_uuid)); $packageVersionSharing->save(); } // update sharing status // $packageVersion->version_sharing_status = $package->package_sharing_status; $packageVersion->save(); } }
/** * querying methods */ public function packageVersion() { return PackageVersion::where('package_version_uuid', '=', $this->package_version_uuid)->first(); }