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; }
public function isSharedWith($project) { return PackageVersionSharing::where('package_version_uuid', '=', $this->package_version_uuid)->where('project_uuid', '=', $project->project_uid)->count() > 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(); } }