[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gforge-commits] gforge/www/forum/admin index.php,1.9,1.10
From: |
tperdue |
Subject: |
[Gforge-commits] gforge/www/forum/admin index.php,1.9,1.10 |
Date: |
Wed, 04 Aug 2004 11:18:47 -0500 |
Update of /cvsroot/gforge/gforge/www/forum/admin
In directory db.perdue.net:/home/tperdue/share/dev.gforge.org/www/forum/admin
Modified Files:
index.php
Log Message:
RBAC, DELETION, AND FORUM EMAIL GATEWAY
Index: index.php
===================================================================
RCS file: /cvsroot/gforge/gforge/www/forum/admin/index.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- index.php 6 May 2003 15:41:45 -0000 1.9
+++ index.php 4 Aug 2004 16:18:37 -0000 1.10
@@ -16,6 +16,8 @@
Massive rewrite by Tim Perdue 7/2000 (nested/views/save)
Complete OO rewrite by Tim Perdue 12/2002
+
+ Heavy RBAC changes 3/17/2004
*/
require_once('pre.php');
@@ -25,11 +27,6 @@
require_once('common/forum/ForumMessageFactory.class');
require_once('common/forum/ForumMessage.class');
-function showAdminRow() {
-
$tablearr=array($Language->getText('forum_admin_addforum','existing_forums'));
- echo $HTML->listTableTop($tablearr);
-}
-
if ($group_id) {
//
// Set up local objects
@@ -40,7 +37,7 @@
}
$p =& $g->getPermission( session_get_user() );
- if (!$p || !is_object($p) || $p->isError() || !$p->isForumAdmin()) {
+ if (!$p || !is_object($p) || $p->isError()) {
exit_permission_denied();
}
@@ -49,23 +46,40 @@
Update the DB to reflect the changes
*/
- if ($delete) {
+ if ($deleteforum) {
/*
- Deleting messages or threads
+ Deleting entire forum
*/
- $res=db_query("SELECT group_forum_id
- FROM forum
- WHERE msg_id='$msg_id'");
-
- if (!$res || db_numrows($res) < 1) {
-
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_determining_forum_id'));
+ $f=new Forum($g,$group_forum_id);
+ if (!$f || !is_object($f)) {
+
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
+ } elseif ($f->isError()) {
+
exit_error($Language->getText('general','error'),$f->getErrorMessage());
}
- $f=new Forum($g,db_result($res,0,'group_forum_id'));
+ if (!$f->userIsAdmin()) {
+ exit_permission_denied();
+ }
+ if (!$f->delete($sure,$really_sure)) {
+
exit_error($Language->getText('general','error'),$f->getErrorMessage());
+ } else {
+ $feedback .=
$Language->getText('forum_admin','deleted');
+ $group_forum_id=0;
+ $deleteforum=0;
+ }
+ } elseif ($delete) {
+ /*
+ Deleting messages or threads
+ */
+ $f=new Forum($g,$group_forum_id);
if (!$f || !is_object($f)) {
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
} elseif ($f->isError()) {
exit_error($Language->getText('general','error'),$f->getErrorMessage());
}
+ if (!$f->userIsAdmin()) {
+ exit_permission_denied();
+ }
+
$fm=new ForumMessage($f,$msg_id);
if (!$fm || !is_object($fm)) {
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
@@ -83,6 +97,9 @@
/*
Adding forums to this group
*/
+ if (!$p->isForumAdmin()) {
+ exit_permission_denied();
+ }
$f=new Forum($g);
if (!$f || !is_object($f)) {
exit_error($Language->getText('general','error'),$Language->getText('forum_errors','error_getting_forum'));
@@ -97,7 +114,7 @@
} else if ($change_status) {
/*
- Change a forum to public/private
+ Change a forum
*/
$f=new Forum($g,$group_forum_id);
if (!$f || !is_object($f)) {
@@ -105,7 +122,10 @@
} elseif ($f->isError()) {
exit_error($Language->getText('general','error'),$f->getErrorMessage());
}
- if
(!$f->update($forum_name,$description,$is_public,$send_all_posts_to,$allow_anonymous))
{
+ if (!$f->userIsAdmin()) {
+ exit_permission_denied();
+ }
+ if
(!$f->update($forum_name,$description,$send_all_posts_to)) {
exit_error($Language->getText('general','error'),$f->getErrorMessage());
} else {
$feedback .=
$Language->getText('forum_admin_changestatus','update_successful');
@@ -114,70 +134,12 @@
}
- if ($delete) {
- /*
- Show page for deleting messages
- */
-
forum_header(array('title'=>$Language->getText('forum_admin_delete_message','title'),'pagename'=>'forum_admin_delete','sectionvals'=>group_getname($group_id)));
-
- echo '
- <span
style="color:red">'.$Language->getText('forum_admin_delete_message','warning').'
- </span>
- <form method="post" action="'.$PHP_SELF.'">
- <input type="hidden" name="post_changes" value="y" />
- <input type="hidden" name="delete" value="y" />
- <input type="hidden" name="group_id"
value="'.$group_id.'" />
-
<strong>'.$Language->getText('forum_admin_delete_message','enter_message_id').'</strong><br
/>
- <input type="text" name="msg_id" value="" />
- <input type="submit" name="submit"
value="'.$Language->getText('general','submit').'" />
- </form>';
-
- forum_footer(array());
-
- } else if ($add_forum) {
+ if ($add_forum) {
/*
Show the form for adding forums
*/
forum_header(array('title'=>$Language->getText('forum_admin_addforum','title'),'pagename'=>'forum_admin_addforum','sectionvals'=>group_getname($group_id)));
-// $sql="SELECT forum_name FROM forum_group_list WHERE
group_id='$group_id'";
-// $result=db_query($sql);
-//
ShowResultSet($result,$Language->getText('forum_admin_addforum','existing_forums'));
- $ff=new ForumFactory($g);
- if (!$ff || !is_object($ff) || $ff->isError()) {
-
exit_error($Language->getText('general','error'),$ff->getErrorMessage());
- }
-
- $farr =& $ff->getForums();
-
- if ($ff->isError()) {
-
$tablearr=array($Language->getText('forum_admin_addforum','existing_forums'));
- echo $HTML->listTableTop($tablearr);
- echo
'<h1>'.$Language->getText('forum','error_no_forums_found',
array($g->getPublicName())) .'</h1>';
- echo $ff->getErrorMessage();
- forum_footer(array());
- exit;
- }
-
-
$tablearr=array($Language->getText('forum_admin_addforum','existing_forums'));
- echo $HTML->listTableTop($tablearr);
-
- /*
- Put the result set (list of forums for this group) into
a column with folders
- */
-
- for ($j = 0; $j < count($farr); $j++) {
- if ($farr[$j]->isError()) {
- echo $farr->getErrorMessage();
- } else {
- echo '<tr '. $HTML->boxGetAltRowStyle($j) .
'><td><a href="/forum/forum.php?forum_id='. $farr[$j]->getID() .'">'.
-
html_image("ic/forum20w.png","20","20",array("border"=>"0")) .
- ' ' .
- $farr[$j]->getName() .'</a><br
/>'.$farr[$j]->getDescription().'</td></tr>';
- }
- }
- echo $HTML->listTableBottom();
-
echo '
<br>
<form method="post" action="'.$PHP_SELF.'">
@@ -207,96 +169,147 @@
} else if ($change_status) {
/*
- Change a forum to public/private
+ Change a forum
*/
- $ff = new ForumFactory($g);
- if (!$ff || !is_object($ff) || $ff->isError()) {
-
exit_error($Language->getText('general','error'),$ff->getErrorMessage());
+ $f = new Forum ($g,$group_forum_id);
+ if (!$f || !is_object($f)) {
+ exit_error('Error','Could Not Get Forum Object');
+ } elseif ($f->isError()) {
+ exit_error('Error',$f->getErrorMessage());
+ } elseif (!$f->userIsAdmin()) {
+ exit_permission_denied();
}
- $farr =& $ff->getForums();
- $rows=count($farr);
- if ($ff->isError()) {
-
exit_error($Language->getText('general','error'),$Language->getText('forum_admin_changestatus','no_forums_found').$ff->getErrorMessage());
- } else {
-
- if ($rows > 0) {
- $title_arr=array();
-
forum_header(array('title'=>$Language->getText('forum_admin_changestatus','change_status'),'pagename'=>'forum_admin_changestatus','sectionvals'=>group_getname($group_id)));
- echo
'<p>'.$Language->getText('forum_admin_changestatus','intro').'.</p>';
-
$title_arr[]=$Language->getText('forum_admin_changestatus','forum');
-
$title_arr[]=$Language->getText('forum_admin_changestatus','status');
-
$title_arr[]=$Language->getText('forum_admin_changestatus','update');
- echo $GLOBALS['HTML']->listTableTop
($title_arr);
- } else {
- global
$DOCUMENT_ROOT,$HTML,$group_id,$forum_name,$forum_id,$sys_datefmt,$sys_news_group,$Language,$f;
- $params['group']=$group_id;
- $params['toptab']='forums';
- site_project_header($params);
- echo '<strong><a
href="/forum/admin/?group_id='.$group_id.'">'.$Language->getText('forum_utils','admin').'</a></strong>';
- }
+
forum_header(array('title'=>$Language->getText('forum_admin_changestatus','change_status')));
+ echo
'<p>'.$Language->getText('forum_admin_changestatus','intro').'</p>';
- for ($i=0; $i<$rows; $i++) {
- echo '
- <tr '.
$GLOBALS['HTML']->boxGetAltRowStyle($i) .'><td colspan="3"><strong>'.
$farr[$i]->getName() .'</strong></td></tr>';
- echo '
- <tr '.
$GLOBALS['HTML']->boxGetAltRowStyle($i) .'>
- <td colspan="3">
- <form action="'.$PHP_SELF.'"
method="post">
- <input type="hidden"
name="post_changes" value="y" />
- <input type="hidden"
name="change_status" value="y" />
- <input type="hidden"
name="group_forum_id" value="'. $farr[$i]->getID() .'" />
- <input type="hidden"
name="group_id" value="'.$group_id.'" />
- <table width="100%"><tr><td
valign="top">
- <span style="font-size:-1">
-
<strong>'.$Language->getText('forum_admin_addforum','allow_anonymous').'</strong><br
/>
- <input type="radio"
name="allow_anonymous" value="1"'.(($farr[$i]->AllowAnonymous() == 1)?'
checked="checked"':'').' /> '.$Language->getText('general','yes').'<br />
- <input type="radio"
name="allow_anonymous" value="0"'.(($farr[$i]->AllowAnonymous() == 0)?'
checked="checked"':'').'/> '.$Language->getText('general','no').'<br />
- </span>
- </td>
- <td valign="top">
- <span style="font-size:-1">
-
<strong>'.$Language->getText('forum_admin_addforum','is_public').'</strong><br
/>
- <input type="radio"
name="is_public" value="1"'.(($farr[$i]->isPublic() == 1)?'
checked="checked"':'').' /> '.$Language->getText('general','yes').'<br />
- <input type="radio"
name="is_public" value="0"'.(($farr[$i]->isPublic() == 0)?'
checked="checked"':'').' /> '.$Language->getText('general','no').'<br />
- <input type="radio"
name="is_public" value="9"'.(($farr[$i]->isPublic() == 9)?'
checked="checked"':'').' />'.$Language->getText('general','deleted').'<br />
- </span></td><td>
- <span style="font-size:-1">
- <input type="submit"
name="submit" value="'.$Language->getText('general','update').'" /></span>
- </td></tr>
- <tr '.
$GLOBALS['HTML']->boxGetAltRowStyle($i) .'><td>
-
<strong>'.$Language->getText('forum_admin_addforum','forum_name').':</strong><br
/>
- <input type="text"
name="forum_name" value="'. $farr[$i]->getName() .'" size="20" maxlength="30" />
- </td><td colspan="2">
-
<strong>'.$Language->getText('forum_admin_addforum','email_posts').'</strong><br
/>
- <input type="text"
name="send_all_posts_to" value="'. $farr[$i]->getSendAllPostsTo() .'" size="30"
maxlength="50" />
- </td></tr>
- <tr '.
$GLOBALS['HTML']->boxGetAltRowStyle($i) .'><td colspan="3">
-
<strong>'.$Language->getText('forum_admin_addforum','forum_description').':</strong><br
/>
- <input type="text"
name="description" value="'. $farr[$i]->getDescription() .'" size="40"
maxlength="80" /><br />
- </td></tr></table></form>
- </td></tr>';
- }
+ echo '
+ <form action="'.$PHP_SELF.'" method="post">
+ <input type="hidden" name="post_changes"
value="y" />
+ <input type="hidden" name="change_status"
value="y" />
+ <input type="hidden" name="group_forum_id"
value="'. $f->getID() .'" />
+ <input type="hidden" name="group_id"
value="'.$group_id.'" />
+<!-- <span style="font-size:-1">
+
<strong>'.$Language->getText('forum_admin_addforum','allow_anonymous').'</strong><br
/>
+ <input type="radio" name="allow_anonymous"
value="1"'.(($f->AllowAnonymous() == 1)?' checked="checked"':'').' />
'.$Language->getText('general','yes').'<br />
+ <input type="radio" name="allow_anonymous"
value="0"'.(($f->AllowAnonymous() == 0)?' checked="checked"':'').'/>
'.$Language->getText('general','no').'<br />
+ </span>
+ <span style="font-size:-1">
+
<strong>'.$Language->getText('forum_admin_addforum','is_public').'</strong><br
/>
+ <input type="radio" name="is_public"
value="1"'.(($f->isPublic() == 1)?' checked="checked"':'').' />
'.$Language->getText('general','yes').'<br />
+ <input type="radio" name="is_public"
value="0"'.(($f->isPublic() == 0)?' checked="checked"':'').' />
'.$Language->getText('general','no').'<br />
+ <input type="radio" name="is_public"
value="9"'.(($f->isPublic() == 9)?' checked="checked"':'').'
/>'.$Language->getText('general','deleted').'<br />
+ </span></td><td>
+ <span style="font-size:-1">
+-->
+
<strong>'.$Language->getText('forum_admin_addforum','forum_name').':</strong><br
/>
+ <input type="text" name="forum_name" value="'.
$f->getName() .'" size="20" maxlength="30" />
+ <p>
+
<strong>'.$Language->getText('forum_admin_addforum','email_posts').'</strong><br
/>
+ <input type="text" name="send_all_posts_to"
value="'. $f->getSendAllPostsTo() .'" size="30" maxlength="50" />
+ <p>
+
<strong>'.$Language->getText('forum_admin_addforum','forum_description').':</strong><br
/>
+ <input type="text" name="description" value="'.
$f->getDescription() .'" size="40" maxlength="80" /><br />
+ <p>
+ <input type="submit" name="submit"
value="'.$Language->getText('general','update').'" /></span>
+ </form><p>';
+ echo '<a
href="'.$PHP_SELF.'?group_id='.$group_id.'&group_forum_id='.$group_forum_id.'&delete=1">'.$Language->getText('forum_admin','delete_message').'</a><br
/>';
+ echo '<a
href="'.$PHP_SELF.'?group_id='.$group_id.'&group_forum_id='.$group_forum_id.'&deleteforum=1">'.$Language->getText('forum_admin','delete_forum').'</a><br
/>';
+ forum_footer(array());
- echo $GLOBALS['HTML']->listTableBottom();
+ } elseif ($deleteforum && $group_forum_id) {
+ $f = new Forum ($g,$group_forum_id);
+ if (!$f || !is_object($f)) {
+ exit_error('Error','Could Not Get Forum Object');
+ } elseif ($f->isError()) {
+ exit_error('Error',$f->getErrorMessage());
+ } elseif (!$f->userIsAdmin()) {
+ exit_permission_denied();
}
+
forum_header(array('title'=>$Language->getText('forum_admin','delete')));
+ echo '<p>
+
<strong>'.$Language->getText('forum_admin','delete_warning').'</strong><br />
+ <form method="post" action="'.$PHP_SELF.'">
+ <input type="hidden" name="post_changes" value="y" />
+ <input type="hidden" name="deleteforum" value="y" />
+ <input type="hidden" name="group_id"
value="'.$group_id.'" />
+ <input type="hidden" name="group_forum_id"
value="'.$group_forum_id.'" />
+ <input type="checkbox" name="sure" value="1"
/>'.$Language->getText('forum_admin','sure').'<br />
+ <input type="checkbox" name="really_sure" value="1"
/>'.$Language->getText('forum_admin','really_sure').'<br />
+ <input type="submit" name="submit"
value="'.$Language->getText('forum_admin','delete').'" />
+ </form>';
+ forum_footer(array());
+
+ } elseif ($delete && $group_forum_id) {
+ $f = new Forum ($g,$group_forum_id);
+ if (!$f || !is_object($f)) {
+ exit_error('Error','Could Not Get Forum Object');
+ } elseif ($f->isError()) {
+ exit_error('Error',$f->getErrorMessage());
+ } elseif (!$f->userIsAdmin()) {
+ exit_permission_denied();
+ }
+
forum_header(array('title'=>$Language->getText('forum_admin_changestatus','change_status')));
+ echo '<p>
+
<strong>'.$Language->getText('general','delete').'</strong><br />
+ <form method="post" action="'.$PHP_SELF.'">
+ <input type="hidden" name="post_changes" value="y" />
+ <input type="hidden" name="delete" value="y" />
+ <input type="hidden" name="group_id"
value="'.$group_id.'" />
+ <input type="hidden" name="group_forum_id"
value="'.$group_forum_id.'" />
+
<strong>'.$Language->getText('forum_admin_delete_message','enter_message_id').'</strong><br
/>
+ <input type="text" name="msg_id" value="" />
+ <input type="submit" name="submit"
value="'.$Language->getText('general','delete').'" />
+ </form>';
forum_footer(array());
} else {
/*
Show main page for choosing
- either moderotor or delete
+ either moderator or delete
*/
forum_header(array('title'=>$Language->getText('forum_admin','title'),'pagename'=>'forum_admin','sectionvals'=>group_getname($group_id)));
- echo '
+ //
+ // Add new forum
+ //
+ if ($p->isForumAdmin()) {
+ echo '
<p>
- <a
href="'.$PHP_SELF.'?group_id='.$group_id.'&add_forum=1">'.$Language->getText('forum_admin','add_forum').'</a><br
/>
- <a
href="'.$PHP_SELF.'?group_id='.$group_id.'&delete=1">'.$Language->getText('forum_admin','delete_message').'</a><br
/>
- <a
href="'.$PHP_SELF.'?group_id='.$group_id.'&change_status=1">'.$Language->getText('forum_admin','update_forum').'</a></p>';
+ <a
href="'.$PHP_SELF.'?group_id='.$group_id.'&add_forum=1">'.$Language->getText('forum_admin','add_forum').'</a><br
/></p>';
+ }
+ //
+ // Get existing forums
+ //
+ $ff=new ForumFactory($g);
+ if (!$ff || !is_object($ff) || $ff->isError()) {
+
exit_error($Language->getText('general','error'),$ff->getErrorMessage());
+ }
+
+ $farr =& $ff->getForums();
+
+ if ($ff->isError()) {
+ echo
'<h1>'.$Language->getText('forum','error_no_forums_found',
array($g->getPublicName())) .'</h1>';
+ echo $ff->getErrorMessage();
+ forum_footer(array());
+ exit;
+ }
+
+ /*
+ List the existing forums so they can be edited.
+ */
+
+ for ($j = 0; $j < count($farr); $j++) {
+ if ($farr[$j]->isError()) {
+ echo $farr->getErrorMessage();
+ } else {
+ echo '<a
href="'.$PHP_SELF.'?group_id='.$group_id.'&change_status=1&group_forum_id='.
$farr[$j]->getID() .'">'.
+ $farr[$j]->getName() .'</a><br
/>'.$farr[$j]->getDescription().'<p>';
+ }
+ }
forum_footer(array());
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gforge-commits] gforge/www/forum/admin index.php,1.9,1.10,
tperdue <=
- Prev by Date:
[Gforge-commits] gforge/www/news submit.php,1.13,1.14
- Next by Date:
[Gforge-commits] gforge/www/project/admin database.php, 1.8, 1.9 editgroupinfo.php, 1.19, 1.20 index.php, 1.19, 1.20 massadd.php, NONE, 1.1 massfinish.php, NONE, 1.1 project_admin_utils.php, 1.14, 1.15 rmuser.php, 1.5, NONE roleedit.php, NONE, 1.1 userpermedit.php, 1.10, NONE userperms.php, 1.6, NONE vhost.php, 1.7, 1.8
- Previous by thread:
[Gforge-commits] gforge/www/news submit.php,1.13,1.14
- Next by thread:
[Gforge-commits] gforge/www/project/admin database.php, 1.8, 1.9 editgroupinfo.php, 1.19, 1.20 index.php, 1.19, 1.20 massadd.php, NONE, 1.1 massfinish.php, NONE, 1.1 project_admin_utils.php, 1.14, 1.15 rmuser.php, 1.5, NONE roleedit.php, NONE, 1.1 userpermedit.php, 1.10, NONE userperms.php, 1.6, NONE vhost.php, 1.7, 1.8
- Index(es):