示例#1
0
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());
 }
示例#5
0
 /**
  * Generates release list of the given package
  *
  * @param FRSPackage $package
  *
  * @return Array
  */
 function getReleaseList($package)
 {
     $utils = $this->getUtils();
     return $utils->getReleaseFactory()->getFRSReleasesFromDb($package->getPackageId());
 }
示例#6
0
 /**
  *	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;
 }
示例#8
0
 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);
     }
 }