/** * By default, a package is readable by all registered users * * @param FRSPackage $package Permissions will apply on this Package */ function setDefaultPermissions(FRSPackage $package) { $this->getPermissionsManager()->addPermission(FRSPackage::PERM_READ, $package->getPackageID(), $GLOBALS['UGROUP_REGISTERED']); permission_add_history($package->getGroupID(), FRSPackage::PERM_READ, $package->getPackageID()); }
/** * Notify after deleting monitoring for a user * * @param FRSPackage $package Id of th package * @param PFUser $user The deleted user * * @return Boolean */ function notifyAfterDelete(FRSPackage $package, PFUser $user) { $mail_builder = new MailBuilder(TemplateRendererFactory::build()); $htmlBody = $GLOBALS['Language']->getText('file_filemodule_monitor', 'delete_monitor_mail'); $htmlBody .= ' <a href="' . $goto_link . '" >' . $package->getName() . '</a>'; $htmlBody .= '<br /><br /><a href="' . get_server_url() . '/file/filemodule_monitor.php?group_id=' . $package->getGroupID() . '&filemodule_id=' . $package->getPackageID() . '" >' . $GLOBALS['Language']->getText('file_showfiles', 'start_monitoring') . '</a>'; $txtBody = $GLOBALS['Language']->getText('file_filemodule_monitor', 'delete_monitor_mail') . ' "' . $package->getName() . '" : '; $txtBody .= $goto_link; $txtBody .= "\n\n" . $GLOBALS['Language']->getText('file_showfiles', 'start_monitoring') . ': '; $txtBody .= get_server_url() . '/file/filemodule_monitor.php?group_id=' . $package->getGroupID() . '&filemodule_id=' . $package->getPackageID(); $notification = $this->getNotification($package, $user, $htmlBody, $txtBody); $project = ProjectManager::instance()->getProject($package->getGroupID()); return $mail_builder->buildAndSendEmail($project, $notification, new MailEnhancer()); }
private function getEmailBody(FRSRelease $release, FRSPackage $package) { $fileUrl = get_server_url() . "/file/showfiles.php?group_id=" . $package->getGroupID() . "&release_id=" . $release->getReleaseID(); $notifUrl = get_server_url() . "/file/filemodule_monitor.php?filemodule_id=" . $package->getPackageID() . "&group_id=" . $package->getGroupID(); $body = $GLOBALS['Language']->getText('file_admin_editreleases', 'download_explain_modified_package', array($release->getProject()->getPublicName(), $package->getName(), $release->getName(), $fileUrl)); if ($release->getNotes() != '') { $body .= $GLOBALS['Language']->getText('file_admin_editreleases', 'file_rel_notice_notes', array($release->getNotes())); } if ($release->getChanges() != '') { $body .= $GLOBALS['Language']->getText('file_admin_editreleases', 'file_rel_notice_changes', array($release->getChanges())); } $body .= $GLOBALS['Language']->getText('file_admin_editreleases', 'download_explain', array($notifUrl)); return $body; }
private function importRelease(Project $project, FRSPackage $package, SimpleXMLElement $xml_rel, $extraction_path) { $user = $this->user_finder->getUser($xml_rel->user); $attrs = $xml_rel->attributes(); $release = new FRSRelease(); $release->setProject($project); $release->setReleaseDate(strtotime($attrs['time'])); $release->setName((string) $attrs['name']); $release->setStatusID(FRSRelease::STATUS_ACTIVE); $release->setPackageID($package->getPackageID()); $release->setNotes((string) $xml_rel->notes); $release->setChanges((string) $xml_rel->changes); $release->setPreformatted($attrs['preformatted'] == '1' || $attrs['preformatted'] == 'true'); $release->setReleasedBy($user->getId()); $release->setReleaseID($this->release_factory->create($release->toArray())); $read_perms = array(); foreach ($xml_rel->{'read-access'} as $perm) { $ugroup_name = (string) $perm->ugroup; $ugroup = $this->getUGroupManager()->getUGroupByName($project, $ugroup_name); $read_perms[] = $ugroup->getId(); } $this->getPermissionsManager()->savePermissions($project, $release->getReleaseID(), FRSRelease::PERM_READ, $read_perms); foreach ($xml_rel->xpath('file') as $xml_file) { $this->importFile($project, $release, $user, $xml_file, $extraction_path); } }