public function updateSharing($packageVersionUuid)
 {
     // remove previous sharing
     //
     $packageVersionSharings = PackageVersionSharing::where('package_version_uuid', '=', $packageVersionUuid)->get();
     foreach ($packageVersionSharings as $packageVersionSharing) {
         $packageVersionSharing->delete();
     }
     // create new sharing
     //
     $projects = Input::get('projects');
     $packageVersionSharings = array();
     if ($projects) {
         foreach ($projects as $project) {
             $projectUid = $project['project_uid'];
             $packageVersionSharing = new PackageVersionSharing(array('package_version_uuid' => $packageVersionUuid, 'project_uuid' => $projectUid));
             $packageVersionSharing->save();
             $packageVersionSharings[] = $packageVersionSharing;
         }
     }
     return $packageVersionSharings;
 }
Ejemplo n.º 2
0
 public function isSharedWith($project)
 {
     return PackageVersionSharing::where('package_version_uuid', '=', $this->package_version_uuid)->where('project_uuid', '=', $project->project_uid)->count() > 0;
 }
Ejemplo n.º 3
0
 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();
     }
 }