function addPackage($session_ser, $group_id, $package_name, $is_public) { continue_session($session_ser); $grp =& group_get_object($group_id); if (!$grp || !is_object($grp)) { return new soap_fault('', 'addPackage', 'Could Not Get Group', 'Could Not Get Group'); } elseif ($grp->isError()) { return new soap_fault('', 'addPackage', $grp->getErrorMessage(), $grp->getErrorMessage()); } $frsp = new FRSPackage($grp); if (!$frsp->create($package_name, $is_public)) { return new soap_fault('', 'addPackage', $frsp->getErrorMessage(), $frsp->getErrorMessage()); } else { return $frsp->getID(); } }
/** * 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()); }
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; }
/** * 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()); }
/** * Generates release list of the given package * * @param FRSPackage $package * * @return Array */ function getReleaseList($package) { $utils = $this->getUtils(); return $utils->getReleaseFactory()->getFRSReleasesFromDb($package->getPackageId()); }
/** * approve - Approve pending project. * * @param object The User object who is doing the updating. * @access public */ function approve(&$user) { if ($this->getStatus() == 'A') { $this->setError(_("Group already active")); return false; } db_begin(); // Step 1: Activate group and create LDAP entries if (!$this->setStatus($user, 'A')) { db_rollback(); return false; } // // // Tracker Integration // // $ats = new ArtifactTypes($this); if (!$ats || !is_object($ats)) { $this->setError(_('Error creating ArtifactTypes object')); db_rollback(); return false; } else { if ($ats->isError()) { $this->setError(sprintf(_('ATS%d: %s'), 1, $ats->getErrorMessage())); db_rollback(); return false; } } if (!$ats->createTrackers()) { $this->setError(sprintf(_('ATS%d: %s'), 2, $ats->getErrorMessage())); db_rollback(); return false; } // // // Forum Integration // // $f = new Forum($this); if (!$f->create('Open-Discussion', 'General Discussion', 1, '', 1, 0)) { $this->setError(sprintf(_('F%d: %s'), 1, $f->getErrorMessage())); db_rollback(); return false; } $f = new Forum($this); if (!$f->create('Help', 'Get Public Help', 1, '', 1, 0)) { $this->setError(sprintf(_('F%d: %s'), 2, $f->getErrorMessage())); db_rollback(); return false; } $f = new Forum($this); if (!$f->create('Developers', 'Project Developer Discussion', 0, '', 1, 0)) { $this->setError(sprintf(_('F%d: %s'), 3, $f->getErrorMessage())); db_rollback(); return false; } // // // Doc Mgr Integration // // $dg = new DocumentGroup($this); if (!$dg->create('Uncategorized Submissions')) { $this->setError(sprintf(_('DG: %s'), $dg->getErrorMessage())); db_rollback(); return false; } // // // FRS integration // // $frs = new FRSPackage($this); if (!$frs->create($this->getUnixName())) { $this->setError(sprintf(_('FRSP: %s'), $frs->getErrorMessage())); db_rollback(); return false; } // // // PM Integration // // $pg = new ProjectGroup($this); if (!$pg->create('To Do', 'Things We Have To Do', 1)) { $this->setError(sprintf(_('PG%d: %s'), 1, $pg->getErrorMessage())); db_rollback(); return false; } $pg = new ProjectGroup($this); if (!$pg->create('Next Release', 'Items For Our Next Release', 1)) { $this->setError(sprintf(_('PG%d: %s'), 2, $pg->getErrorMessage())); db_rollback(); return false; } // // // Set Default Roles // // $role = new Role($this); $todo = array_keys($role->defaults); for ($c = 0; $c < count($todo); $c++) { $role = new Role($this); if (!$role->createDefault($todo[$c])) { $this->setError(sprintf(_('R%d: %s'), $c, $role->getErrorMessage())); db_rollback(); return false; } } $admin_group = db_query("SELECT user_id FROM user_group \n\t\tWHERE group_id=" . $this->getID() . " AND admin_flags='A'"); if (db_numrows($admin_group) > 0) { $idadmin_group = db_result($admin_group, 0, 'user_id'); } else { $idadmin_group = 1; } // // // Create MailingList // // if ($GLOBALS['sys_use_mail']) { $mlist = new MailingList($this); if (!$mlist->create('commits', 'Commits', 1, $idadmin_group)) { $this->setError(sprintf(_('ML: %s'), $mlist->getErrorMessage())); db_rollback(); return false; } } db_commit(); $this->sendApprovalEmail(); $this->addHistory('Approved', 'x'); //plugin webcal //change assistant for webcal $params[0] = $idadmin_group; $params[1] = $this->getID(); plugin_hook('change_cal_permission_default', $params); return true; }
/** * Prepare mail * * @param FRSPackage $package Id of th package * @param PFUser $user The deleted user * * @return Codendi_Mail */ function prepareMail(FRSPackage $package, PFUser $user) { $subject = $GLOBALS['Language']->getText('file_filemodule_monitor', 'mail_subject', array($GLOBALS['sys_name'], $package->getName())); $mail = new Codendi_Mail(); $mail->getLookAndFeelTemplate()->set('title', $subject); $mail->setFrom($GLOBALS['sys_noreply']); $mail->setTo($user->getEmail()); $mail->setSubject($subject); return $mail; }
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); } }