* You should have received a copy of the GNU General Public License * along with GForge; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ require_once '../env.inc.php'; require_once $gfwww . 'include/pre.php'; require_once $gfcommon . 'survey/SurveyFactory.class.php'; require_once $gfwww . 'survey/include/SurveyHTML.class.php'; $group_id = getIntFromRequest('group_id'); $survey_id = getIntFromRequest('survey_id'); /* We need a group_id */ if (!$group_id) { exit_no_group(); } $g =& group_get_object($group_id); if (!$g || !is_object($g) || $g->isError()) { exit_no_group(); } $user_id = user_getid(); /* Show header */ $sh = new SurveyHtml(); $sh->header(array('title' => _('Survey'))); /* Show list of Servey */ $sf = new SurveyFactory($g); $ss =& $sf->getSurveys(); if (!$ss) { echo '<h2>' . _('No Survey is found') . '</h2>'; } else { echo $sh->showSurveys($ss, 0, 0, 1, 1, 1, 0); } $sh->footer(array());
function delete($sure, $really_sure, $really_really_sure) { if (!$sure || !$really_sure || !$really_really_sure) { $this->setMissingParamsError(); return false; } if ($this->getID() == $GLOBALS['sys_news_group'] || $this->getID() == 1 || $this->getID() == $GLOBALS['sys_stats_group'] || $this->getID() == $GLOBALS['sys_peer_rating_group']) { $this->setError(_('Cannot Delete System Group')); return false; } $perm =& $this->getPermission(session_get_user()); if (!$perm || !is_object($perm)) { $this->setPermissionDeniedError(); return false; } elseif ($perm->isError()) { $this->setPermissionDeniedError(); return false; } elseif (!$perm->isSuperUser()) { $this->setPermissionDeniedError(); return false; } db_begin(); // // Remove all the members // $members =& $this->getMembers(); for ($i = 0; $i < count($members); $i++) { $this->removeUser($members[$i]->getID()); } // // Delete Trackers // $atf = new ArtifactTypeFactory($this); $at_arr =& $atf->getArtifactTypes(); for ($i = 0; $i < count($at_arr); $i++) { if (!is_object($at_arr[$i])) { printf(_("Not Object: ArtifactType: %d"), $i); continue; } $at_arr[$i]->delete(1, 1); } // // Delete Forums // $ff = new ForumFactory($this); $f_arr =& $ff->getForums(); for ($i = 0; $i < count($f_arr); $i++) { if (!is_object($f_arr[$i])) { printf(_("Not Object: Forum: %d"), $i); continue; } $f_arr[$i]->delete(1, 1); //echo 'ForumFactory'.db_error(); } // // Delete Subprojects // $pgf = new ProjectGroupFactory($this); $pg_arr =& $pgf->getProjectGroups(); for ($i = 0; $i < count($pg_arr); $i++) { if (!is_object($pg_arr[$i])) { printf(_("Not Object: ProjectGroup: %d"), $i); continue; } $pg_arr[$i]->delete(1, 1); //echo 'ProjectGroupFactory'.db_error(); } // // Delete FRS Packages // //$frspf = new FRSPackageFactory($this); $res = db_query("SELECT * FROM frs_package WHERE group_id='" . $this->getID() . "'"); //echo 'frs_package'.db_error(); //$frsp_arr =& $frspf->getPackages(); while ($arr = db_fetch_array($res)) { //if (!is_object($pg_arr[$i])) { // echo "Not Object: ProjectGroup: ".$i; // continue; //} $frsp = new FRSPackage($this, $arr['package_id'], $arr); $frsp->delete(1, 1); } // // Delete news // $news_group =& group_get_object($GLOBALS['sys_news_group']); $res = db_query("SELECT forum_id FROM news_bytes WHERE group_id='" . $this->getID() . "'"); for ($i = 0; $i < db_numrows($res); $i++) { $Forum = new Forum($news_group, db_result($res, $i, 'forum_id')); if (!$Forum->delete(1, 1)) { printf(_("Could Not Delete News Forum: %d"), $Forum->getID()); } } $res = db_query("DELETE FROM news_bytes WHERE group_id='" . $this->getID() . "'"); // // Delete docs // $res = db_query("DELETE FROM doc_data WHERE group_id='" . $this->getID() . "'"); //echo 'doc_data'.db_error(); $res = db_query("DELETE FROM doc_groups WHERE group_id='" . $this->getID() . "'"); //echo 'doc_groups'.db_error(); // // Delete group history // $res = db_query("DELETE FROM group_history WHERE group_id='" . $this->getID() . "'"); //echo 'group_history'.db_error(); // // Delete group plugins // $res = db_query("DELETE FROM group_plugin WHERE group_id='" . $this->getID() . "'"); //echo 'group_plugin'.db_error(); // // Delete group cvs stats // $res = db_query("DELETE FROM stats_cvs_group WHERE group_id='" . $this->getID() . "'"); //echo 'stats_cvs_group'.db_error(); // // Delete Surveys // $sf = new SurveyFactory($this); $s_arr =& $sf->getSurveys(); for ($i = 0; $i < count($s_arr); $i++) { if (!is_object($s_arr[$i])) { printf(_("Not Object: Survey: %d"), $i); continue; } $s_arr[$i]->delete(); //echo 'SurveyFactory'.db_error(); } // // Delete SurveyQuestions // $sqf = new SurveyQuestionFactory($this); $sq_arr =& $sqf->getSurveyQuestions(); for ($i = 0; $i < count($sq_arr); $i++) { if (!is_object($sq_arr[$i])) { printf(_("Not Object: SurveyQuestion: %d"), $i); continue; } $sq_arr[$i]->delete(); //echo 'SurveyQuestionFactory'.db_error(); } // // Delete Mailing List Factory // $mlf = new MailingListFactory($this); $ml_arr =& $mlf->getMailingLists(); for ($i = 0; $i < count($ml_arr); $i++) { if (!is_object($ml_arr[$i])) { printf(_("Not Object: MailingList: %d"), $i); continue; } if (!$ml_arr[$i]->delete(1, 1)) { $this->setError(_('Could not properly delete the mailing list')); } //echo 'MailingListFactory'.db_error(); } // // Delete trove // $res = db_query("DELETE FROM trove_group_link WHERE group_id='" . $this->getID() . "'"); $res = db_query("DELETE FROM trove_agg WHERE group_id='" . $this->getID() . "'"); // // Delete counters // $res = db_query("DELETE FROM project_sums_agg WHERE group_id='" . $this->getID() . "'"); //echo 'project_sums_agg'.db_error(); $res = db_query("INSERT INTO deleted_groups (\n\t\tunix_group_name,delete_date,isdeleted) VALUES \n\t\t('" . $this->getUnixName() . "','" . time() . "','0')"); //echo 'InsertIntoDeleteQueue'.db_error(); $res = db_query("DELETE FROM groups WHERE group_id='" . $this->getID() . "'"); //echo 'DeleteGroup'.db_error(); db_commit(); if (!$res) { return false; } $hook_params = array(); $hook_params['group'] = $this; $hook_params['group_id'] = $this->getID(); plugin_hook("group_delete", $hook_params); if (isset($GLOBALS['sys_upload_dir']) && $this->getUnixName()) { exec('/bin/rm -rf ' . $GLOBALS['sys_upload_dir'] . '/' . $this->getUnixName() . '/'); } if (isset($GLOBALS['sys_ftp_upload_dir']) && $this->getUnixName()) { exec('/bin/rm -rf ' . $GLOBALS['sys_ftp_upload_dir'] . '/' . $this->getUnixName() . '/'); } // // Delete reporting // $res = db_query("DELETE FROM rep_group_act_weekly WHERE group_id='" . $this->getID() . "'"); //echo 'rep_group_act_weekly'.db_error(); $res = db_query("DELETE FROM rep_group_act_monthly WHERE group_id='" . $this->getID() . "'"); //echo 'rep_group_act_monthly'.db_error(); $res = db_query("DELETE FROM rep_group_act_daily WHERE group_id='" . $this->getID() . "'"); //echo 'rep_group_act_daily'.db_error(); unset($this->data_array); return true; }