function show_newest_releases()
{
    global $Language;
    $return = "";
    $hp = Codendi_HTMLPurifier::instance();
    // Fetch releases that are no more than 3 months old
    $start_time = strval(time() - 3 * 30 * 24 * 3600);
    $query = new_utils_get_new_releases_short($start_time);
    $res_newrel = db_query($query);
    // print each one but only show one release per project
    $count = 0;
    $DONE = array();
    $frspf = new FRSPackageFactory();
    $frsrf = new FRSReleaseFactory();
    while (($row_newrel = db_fetch_array($res_newrel)) && $count < 10) {
        if (!isset($DONE[$row_newrel['group_id']])) {
            //if ((!permission_exist("PACKAGE_READ",$row_newrel['package_id'] ))&&
            //    (!permission_exist("RELEASE_READ",$row_newrel['release_id'] ))) {
            if ($frspf->userCanRead($row_newrel['group_id'], $row_newrel['package_id'], 100) && $frsrf->userCanRead($row_newrel['group_id'], $row_newrel['package_id'], $row_newrel['release_id'], 100)) {
                $return .= '(' . $hp->purify($row_newrel['release_version'], CODENDI_PURIFIER_CONVERT_HTML) . ')&nbsp;' . '<A href="/projects/' . $row_newrel['unix_group_name'] . '/">' . $hp->purify(util_unconvert_htmlspecialchars($row_newrel['group_name']), CODENDI_PURIFIER_CONVERT_HTML) . "</A><BR>\n";
                $count++;
                $DONE[$row_newrel['group_id']] = true;
            }
        }
    }
    $return .= '<center><A href="/new/?func=releases">[ ' . $Language->getText('include_features_boxes', 'more') . ' ]</A></center>';
    return $return;
}
 /**
  * Get one or more releases from the database
  * 
  * $extraFlags allow to define if you want to include deleted releases into
  * the search (thanks to FRSReleaseDao::INCLUDE_DELETED constant)
  * 
  * @param $release_id
  * @param $group_id
  * @param $package_id
  * @param $extraFlags
  *
  * @return FRSRelease
  */
 function getFRSReleaseFromDb($release_id, $group_id = null, $package_id = null, $extraFlags = 0)
 {
     $_id = (int) $release_id;
     $dao =& $this->_getFRSReleaseDao();
     if ($group_id && $package_id) {
         $_group_id = (int) $group_id;
         $_package_id = (int) $package_id;
         $dar = $dao->searchByGroupPackageReleaseID($_id, $_group_id, $package_id, $extraFlags);
     } else {
         if ($group_id) {
             $_group_id = (int) $group_id;
             $dar = $dao->searchInGroupById($_id, $_group_id, $extraFlags);
         } else {
             $dar = $dao->searchById($_id, $extraFlags);
         }
     }
     if ($dar->isError()) {
         return;
     }
     if (!$dar->valid()) {
         return;
     }
     $data_array =& $dar->current();
     return FRSReleaseFactory::getFRSReleaseFromArray($data_array);
 }
 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);
     }
 }
 function isValidForUpdate($release, $group_id)
 {
     $frspf = new FRSPackageFactory();
     $frsrf = new FRSReleaseFactory();
     $frsff = new FRSFileFactory();
     if (isset($release['package_id']) && $release['package_id'] != 'null') {
         if (!isset($release['name']) || !$release['name'] || $release['name'] == '') {
             $this->addError($GLOBALS['Language']->getText('file_admin_editreleases', 'rel_name_empty'));
         } else {
             //see if this package belongs to this project
             $res1 =& $frsrf->getFRSReleaseFromDb($release['release_id'], $group_id);
             if (!$res1 || count($res1) < 1) {
                 $this->addError($GLOBALS['Language']->getText('file_admin_editreleases', 'p_rel_not_yours'));
             } else {
                 if ($release['package_id'] != $res1->getPackageID()) {
                     //changing to a different package for this release
                     $res2 = $frspf->getFRSPackageFromDb($release['package_id'], $group_id);
                     if (!$res2 || count($res2) < 1) {
                         //new package_id isn't theirs
                         $this->addError($GLOBALS['Language']->getText('file_admin_editreleases', 'p_not_yours'));
                     }
                 }
                 //check if release name exists already
                 if ($res1->getPackageID() != $release['package_id'] || $res1->getPackageID() == $release['package_id'] && $res1->getName() != $release['name']) {
                     $release_exists = $frsrf->getReleaseIdByName($release['name'], $release['package_id']);
                 }
                 if (!isset($release_exists) || count($release_exists) < 1) {
                     //now check the date
                     if (!ereg("[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}", $release['date'])) {
                         $this->addError($GLOBALS['Language']->getText('file_admin_editreleases', 'data_not_parsed'));
                     }
                 } else {
                     $this->addError($GLOBALS['Language']->getText('file_admin_editreleases', 'rel_name_exists'));
                 }
             }
         }
     } else {
         $this->addError($GLOBALS['Language']->getText('file_admin_editreleases', 'create_p_before_rel_status'));
     }
     return count($this->_errors) ? false : true;
 }
 public function setUp()
 {
     $package_factory = new FRSPackageFactoryMock();
     $release_factory = new FRSReleaseFactory();
     $file_factory = new FRSXMLImporterTest_FRSFileFactory();
     $this->package_dao = mock('FRSPackageDao');
     $package_factory->dao = $this->package_dao;
     FRSPackageFactory::setInstance($package_factory);
     $this->permissions_manager = mock('PermissionsManager');
     PermissionsManager::setInstance($this->permissions_manager);
     $this->release_dao = mock('FRSReleaseDao');
     $release_factory->dao = $this->release_dao;
     $release_factory->package_factory = $package_factory;
     $release_factory->file_factory = $file_factory;
     FRSReleaseFactory::setInstance($release_factory);
     $this->file_dao = mock('FRSFileDao');
     $file_factory->dao = $this->file_dao;
     $file_factory->release_factory = $release_factory;
     $this->processor_dao = mock('FRSProcessorDao');
     $this->filetype_dao = mock('FRSFileTypeDao');
     $this->user_finder = mock('User\\XML\\Import\\IFindUserFromXMLReference');
     $this->user_manager = mock('UserManager');
     UserManager::setInstance($this->user_manager);
     $this->ugroup_dao = mock("UGroupDao");
     stub($this->ugroup_dao)->searchByGroupIdAndName()->returns(new DataAccessResultEmpty());
     $this->frs_importer = new FRSXMLImporter(mock('Logger'), new XML_RNGValidator(), $package_factory, $release_factory, $file_factory, $this->user_finder, new UGroupManager($this->ugroup_dao), $this->processor_dao, $this->filetype_dao);
     EventManager::setInstance(mock('EventManager'));
     $GLOBALS['Language'] = mock('BaseLanguage');
     if (isset($GLOBALS['ftp_incoming_dir'])) {
         $this->old_ftp_incoming_dir = $GLOBALS['ftp_incoming_dir'];
     }
     if (isset($GLOBALS['old_ftp_frs_dir_prefix'])) {
         $this->old_ftp_frs_dir_prefix = $GLOBALS['ftp_frs_dir_prefix'];
     }
     $GLOBALS['ftp_incoming_dir'] = parent::getTmpDir();
     $GLOBALS['ftp_frs_dir_prefix'] = parent::getTmpDir();
 }
Exemple #6
0
function frs_show_release_popup2($group_id, $name = 'release_id', $checked_val = "xzxz")
{
    /*
    	return a pop-up select box of releases for the project
    */
    $frsrf = new FRSReleaseFactory();
    if (!$group_id) {
        return $GLOBALS['Language']->getText('file_file_utils', 'g_id_err');
    } else {
        $hp =& Codendi_HTMLPurifier::instance();
        $res = $frsrf->getFRSReleasesInfoListFromDb($group_id);
        $p = array();
        foreach ($res as $release) {
            $p[$release['package_name']][$release['release_id']] = $release['release_name'];
        }
        $select = '<select name="' . $name . '">';
        foreach ($p as $package_name => $releases) {
            $select .= '<optgroup label="' . $package_name . '">';
            foreach ($releases as $id => $name) {
                $select .= '<option value="' . $id . '" ' . ($id == $checked_val ? 'selected="selected"' : '') . '>' . $hp->purify($name) . '</option>';
            }
            $select .= '</optgroup>';
        }
        $select .= '</select>';
        return $select;
    }
}
Exemple #7
0
define("FRS_COLLAPSED_ICON", util_get_image_theme("ic/toggle_plus.png"));
$authorized_user = false;
$hp = Codendi_HTMLPurifier::instance();
$request =& HTTPRequest::instance();
$vGroupId = new Valid_GroupId();
$vGroupId->required();
if ($request->valid($vGroupId)) {
    $group_id = $request->get('group_id');
} else {
    exit_no_group();
}
if (user_ismember($group_id, 'R2') || user_ismember($group_id, 'A')) {
    $authorized_user = true;
}
$frspf = new FRSPackageFactory();
$frsrf = new FRSReleaseFactory();
$frsff = new FRSFileFactory();
$packages = array();
$num_packages = 0;
// Retain only packages the user is authorized to access, or packages containing releases the user is authorized to access...
$res = $frspf->getFRSPackagesFromDb($group_id);
$user = UserManager::instance()->getCurrentUser();
foreach ($res as $package) {
    if ($frspf->userCanRead($group_id, $package->getPackageID(), $user->getId())) {
        if ($request->existAndNonEmpty('release_id')) {
            if ($request->valid(new Valid_UInt('release_id'))) {
                $release_id = $request->get('release_id');
                $row3 =& $frsrf->getFRSReleaseFromDb($release_id);
            }
        }
        if (!$request->existAndNonEmpty('release_id') || $row3->getPackageID() == $package->getPackageID()) {
 /**
  * Function userCanRead : determine if the user can view this release or not
  *
  * @param int $user_id if not given or 0 take the current user
  * @return boolean true if user has Read access to this release, false otherwise
  */
 function userCanRead($user_id = 0)
 {
     $release_factory = new FRSReleaseFactory();
     return $release_factory->userCanRead($this->getGroupID(), $this->getPackageID(), $this->getReleaseID(), $user_id);
 }
Exemple #9
0
$query = new_utils_get_new_releases_long(0, 0, $limit * 3);
$res = db_query($query);
// ## one time output
print " <channel>\n";
print "  <copyright>" . $Language->getText('export_rss_sfnewreleases', 'copyright', array($GLOBALS['sys_long_org_name'], $GLOBALS['sys_name'], date('Y', time()))) . "</copyright>\n";
print "  <pubDate>" . gmdate('D, d M Y g:i:s', time()) . " GMT</pubDate>\n";
print "  <description>" . $Language->getText('export_rss_sfnewreleases', 'new_releases', $GLOBALS['sys_name']) . "</description>\n";
print "  <link>" . get_server_url() . "</link>\n";
print "  <title>" . $Language->getText('export_rss_sfnewreleases', 'new_releases', $GLOBALS['sys_name']) . "</title>\n";
list($host, $port) = explode(':', $GLOBALS['sys_default_domain']);
print "  <webMaster>webmaster@" . $host . "</webMaster>\n";
print "  <language>en-us</language>\n";
// ## item outputs
$outputtotal = 0;
$frspf = new FRSPackageFactory();
$frsrf = new FRSReleaseFactory();
while ($row = db_fetch_array($res)) {
    if (!$G_RELEASE["{$row['group_id']}"]) {
        if ($frspf->userCanRead($row['group_id'], $row['package_id'], 100) && $frsrf->userCanRead($row['group_id'], $row['package_id'], $row_newrel['release_id'], 100)) {
            print "  <item>\n";
            print "   <title>" . htmlspecialchars($row['group_name'] . " " . $row['release_version']) . "</title>\n";
            print "   <link>" . get_server_url() . "/file/showfiles.php?group_id={$row['group_id']}</link>\n";
            print "   <description>" . rss_description($row['short_description']) . "</description>\n";
            print "  </item>\n";
            $outputtotal++;
            // ## eliminate dupes, only do $limit of these
            $G_RELEASE[$row['group_id']] = 1;
            if ($outputtotal >= $limit) {
                break;
            }
        }
Exemple #10
0
	If you pass the group_id plus the package_id, you will get the list of 
		releases with just the releases of that package shown
*/
$vGroupId = new Valid_GroupId();
$vGroupId->required();
if ($request->valid($vGroupId)) {
    $group_id = $request->get('group_id');
} else {
    exit_no_group();
}
$frspf = new FRSPackageFactory();
$user = UserManager::instance()->getCurrentUser();
if (!$frspf->userCanAdmin($user, $group_id)) {
    exit_permission_denied();
}
$frsrf = new FRSReleaseFactory();
$frsff = new FRSFileFactory();
$existing_packages = array();
$res = $frspf->getFRSPackagesFromDb($group_id);
foreach ($res as $p => $nop) {
    $existing_packages[] = array('id' => $res[$p]->getPackageId(), 'name' => $res[$p]->getName(), 'rank' => $res[$p]->getRank());
}
$vFunc = new Valid_WhiteList('func', array('delete', 'add', 'create', 'edit', 'update'));
$vFunc->required();
if ($request->valid($vFunc)) {
    switch ($request->get('func')) {
        case 'delete':
            //Not yet
            $vPackageId = new Valid_UInt('id');
            if ($request->valid($vPackageId)) {
                $package_id = $request->get('id');
Exemple #11
0
 /**
  * Returns the HTML content for tooltip when hover a reference with the nature file
  * @returns string HTML content for file tooltip
  */
 function getReferenceTooltip()
 {
     $tooltip = '';
     $rf = new FRSReleaseFactory();
     $pf = new FRSPackageFactory();
     $release_id = $this->getReleaseID();
     $release = $rf->getFRSReleaseFromDb($release_id);
     $package_id = $release->getPackageID();
     $package = $pf->getFRSPackageFromDb($package_id);
     $tooltip .= '<table>';
     $tooltip .= ' <tr>';
     $tooltip .= '  <td><strong>' . $GLOBALS['Language']->getText('file_admin_editreleases', 'filename') . ':</strong></td>';
     $tooltip .= '  <td>' . basename($this->getFileName()) . '</td>';
     $tooltip .= ' </tr>';
     $tooltip .= ' <tr>';
     $tooltip .= '  <td><strong>' . $GLOBALS['Language']->getText('file_ref_tooltip', 'package_release') . ':</strong></td>';
     $tooltip .= '  <td>' . $package->getName() . ' / ' . $release->getName() . '</td>';
     $tooltip .= ' </tr>';
     $tooltip .= ' <tr>';
     $tooltip .= '  <td><strong>' . $GLOBALS['Language']->getText('file_showfiles', 'date') . ':</strong></td>';
     $tooltip .= '  <td>' . format_date($GLOBALS['Language']->getText('system', 'datefmt_short'), $release->getReleaseDate()) . '</td>';
     $tooltip .= ' </tr>';
     $tooltip .= ' <tr>';
     $tooltip .= '  <td><strong>' . $GLOBALS['Language']->getText('file_showfiles', 'size') . ':</strong></td>';
     $tooltip .= '  <td>' . $this->getDisplayFileSize() . '</td>';
     $tooltip .= ' </tr>';
     $tooltip .= '</table>';
     return $tooltip;
 }
Exemple #12
0
define("FRS_EXPANDED_ICON", util_get_image_theme("ic/toggle_minus.png"));
define("FRS_COLLAPSED_ICON", util_get_image_theme("ic/toggle_plus.png"));
$authorized_user = false;
$request =& HTTPRequest::instance();
$vGroupId = new Valid_GroupId();
$vGroupId->required();
if ($request->valid($vGroupId)) {
    $group_id = $request->get('group_id');
} else {
    exit_no_group();
}
if (user_ismember($group_id, 'R2') || user_ismember($group_id, 'A')) {
    $authorized_user = true;
}
$frspf = new FRSPackageFactory();
$frsrf = new FRSReleaseFactory();
$frsff = new FRSFileFactory();
$packages = array();
$num_packages = 0;
// Retain only packages the user is authorized to access, or packages containing releases the user is authorized to access...
$res = $frspf->getFRSPackagesFromDb($group_id);
$user = UserManager::instance()->getCurrentUser();
foreach ($res as $package) {
    if ($frspf->userCanRead($group_id, $package->getPackageID(), $user->getId())) {
        if ($request->existAndNonEmpty('release_id')) {
            if ($request->valid(new Valid_UInt('release_id'))) {
                $release_id = $request->get('release_id');
                $row3 =& $frsrf->getFRSReleaseFromDb($release_id);
            }
        }
        if (!$request->existAndNonEmpty('release_id') || $row3->getPackageID() == $package->getPackageID()) {
Exemple #13
0
$vGroupId = new Valid_GroupId();
$vGroupId->required();
if ($request->valid($vGroupId)) {
    $group_id = $request->get('group_id');
} else {
    exit_no_group();
}
$frspf = new FRSPackageFactory();
$user = UserManager::instance()->getCurrentUser();
if (!$frspf->userCanAdmin($user, $group_id)) {
    exit_permission_denied();
}
$GLOBALS['HTML']->includeJavascriptFile("/scripts/scriptaculous/scriptaculous.js");
$GLOBALS['HTML']->includeCalendarScripts();
$GLOBALS['HTML']->includeJavascriptFile("../scripts/frs.js");
$frsrf = new FRSReleaseFactory();
$frsff = new FRSFileFactory();
$vFunc = new Valid_WhiteList('func', array('delete', 'add', 'create', 'edit', 'update'));
if (!$request->valid($vFunc)) {
    $GLOBALS['Response']->redirect('../showfiles.php?group_id=' . $group_id);
}
if ($request->valid(new Valid_UInt('package_id'))) {
    $package_id = $request->get('package_id');
    if ($package =& $frspf->getFRSPackageFromDb($package_id, $group_id)) {
        switch ($request->get('func')) {
            case 'delete':
                if ($request->valid(new Valid_UInt('id'))) {
                    $release_id = $request->get('id');
                    /*
                         Delete a release with all the files included
                         Delete the corresponding row from the database
 /**
  *	getReleases - gets Release objects for all the releases in this package.
  *
  *  return  array   Array of FRSRelease Objects.
  */
 function &getReleases()
 {
     if (!is_array($this->package_releases) || count($this->package_releases) < 1) {
         $this->package_releases = array();
         $frsrf = new FRSReleaseFactory();
         $this->package_releases = $frsrf->getFRSReleasesFromDb($this->getPackageID());
     }
     return $this->package_releases;
 }
Exemple #15
0
 /**
  * deleteEmptyRelease - Delete an empty release or all empty releases in package package_id in project group_id.
  *
  * @param String  $sessionKey  The session hash associated with the session opened by the person who calls the service
  * @param Integer $group_id    Id of the project in which we want to delete empty releases
  * @param Integer $package_id  Id of the package in which we want to delete empty releases
  * @param Integer $release_id  Id of the release to delete
  * @param Boolean $cleanup_all Set to true to delete all empty releases
  *
  * @return Array list of deleted releases, or a soap fault if:
  *                 - group_id does not match with a valid project
  *                 - the package_id does not match
  *                 - the user does not have permissions to delete releases
  *                 - the system was not able to delete the releases.
  */
 function deleteEmptyRelease($sessionKey, $group_id, $package_id, $release_id, $cleanup_all)
 {
     if (session_continue($sessionKey)) {
         try {
             $pm = ProjectManager::instance();
             $pm->getGroupByIdForSoap($group_id, 'deleteRelease');
         } catch (SoapFault $e) {
             return $e;
         }
         $packageFactory = new FRSPackageFactory();
         $package = $packageFactory->getFRSPackageFromDb($package_id);
         if (!$package || $package->getGroupID() != $group_id) {
             return new SoapFault(invalid_package_fault, 'Invalid Package', 'deleteRelease');
         }
         $releaseFactory = new FRSReleaseFactory();
         $releases = array();
         if ($release_id && !$cleanup_all) {
             $release = $releaseFactory->getFRSReleaseFromDb($release_id);
             if (!$release || $release->getPackageID() != $package_id) {
                 return new SoapFault(invalid_release_fault, 'Invalid Release', 'deleteRelease');
             }
             $releases[] = $release;
         } elseif ($cleanup_all) {
             // retrieve all the releases
             $releases = $releaseFactory->getFRSReleasesFromDb($package_id);
         }
         $deleted = array();
         foreach ($releases as $release) {
             $fileFactory = new FRSFileFactory();
             $files = $fileFactory->getFRSFilesFromDb($release->getReleaseID());
             if (empty($files)) {
                 if ($releaseFactory->userCanUpdate($group_id, $release->getReleaseID())) {
                     if ($releaseFactory->delete_release($group_id, $release->getReleaseID())) {
                         $deleted[] = release_to_soap($release);
                     } else {
                         return new SoapFault(invalid_package_fault, 'Release ' . $release->getReleaseID() . ' could not be deleted', 'deleteRelease');
                     }
                 } else {
                     return new SoapFault(invalid_package_fault, 'You don\'t have permission to delete package ' . $release->getReleaseID(), 'deleteRelease');
                 }
             }
         }
         return $deleted;
     } else {
         return new SoapFault(invalid_session_fault, 'Invalid Session', 'deleteRelease');
     }
 }
 /**
  * Return the list of Packages for given project
  * 
  * @param Integer $group_id
  * @param String  $status_id
  * 
  * @return Array
  */
 function getFRSPackagesFromDb($group_id, $status_id = null)
 {
     $_id = (int) $group_id;
     $dao = $this->_getFRSPackageDao();
     if ($status_id) {
         $_status_id = (int) $status_id;
         $dar = $dao->searchActivePackagesByGroupId($_id, $this->STATUS_ACTIVE);
     } else {
         $dar = $dao->searchByGroupId($_id);
     }
     if ($dar && !$dar->isError()) {
         $packages = array();
         $um = UserManager::instance();
         $user = $um->getCurrentUser();
         foreach ($dar as $data_array) {
             if ($status_id) {
                 if ($this->userCanRead($group_id, $data_array['package_id'], $user->getID())) {
                     $packages[] = $this->getFRSPackageFromArray($data_array);
                 } else {
                     $frsrf = new FRSReleaseFactory();
                     $authorised_releases = $frsrf->getFRSReleasesFromDb($data_array['package_id'], 1, $group_id);
                     if ($authorised_releases && count($authorised_releases) > 0) {
                         $packages[] = $this->getFRSPackageFromArray($data_array);
                     }
                 }
             } else {
                 $packages[] = $this->getFRSPackageFromArray($data_array);
             }
         }
         return $packages;
     }
     return;
 }
 private function getProjectIdForSystemReference($keyword, $value)
 {
     $ref_gid = null;
     $nature = $this->getSystemReferenceNatureByKeyword($keyword);
     switch ($nature) {
         case self::REFERENCE_NATURE_RELEASE:
             $release_factory = new FRSReleaseFactory();
             $release = $release_factory->getFRSReleaseFromDb($value);
             if ($release) {
                 $ref_gid = $release->getProject()->getID();
             }
             break;
         case self::REFERENCE_NATURE_FILE:
             $file_factory = new FRSFileFactory();
             $file = $file_factory->getFRSFileFromDb($value);
             if ($file) {
                 $ref_gid = $file->getGroup()->getID();
             }
             break;
         case self::REFERENCE_NATURE_FORUM:
             $forum_dao = new ForumDao();
             $forum_group_id_row = $forum_dao->searchByGroupForumId($value)->getRow();
             if ($forum_group_id_row) {
                 $ref_gid = $forum_group_id_row['group_id'];
             }
             break;
         case self::REFERENCE_NATURE_FORUMMESSAGE:
             $forum_dao = new ForumDao();
             $message_group_id_row = $forum_dao->getMessageProjectId($value);
             if ($message_group_id_row) {
                 $ref_gid = $message_group_id_row['group_id'];
             }
             break;
         case self::REFERENCE_NATURE_NEWS:
             $news_dao = new NewsBytesDao();
             $news_group_id_row = $news_dao->searchByForumId($value)->getRow();
             if ($news_group_id_row) {
                 $ref_gid = $news_group_id_row['group_id'];
             }
             break;
     }
     return $ref_gid;
 }