[Fusionforge-commits] r14732 - in trunk: . src/common/forum src/common/include src/utils/fixscripts src/www/forum

Roland Mas lolando at fusionforge.org
Wed Oct 26 16:03:41 CEST 2011


Author: lolando
Date: 2011-10-26 16:03:41 +0200 (Wed, 26 Oct 2011)
New Revision: 14732

Modified:
   trunk/
   trunk/src/common/forum/ForumAdmin.class.php
   trunk/src/common/forum/ForumHTML.class.php
   trunk/src/common/include/Group.class.php
   trunk/src/utils/fixscripts/populate_template_project.php
   trunk/src/www/forum/new.php
Log:
Fixed implementation of forum permissions

Modified: trunk/src/common/forum/ForumAdmin.class.php
===================================================================
--- trunk/src/common/forum/ForumAdmin.class.php	2011-10-26 14:03:31 UTC (rev 14731)
+++ trunk/src/common/forum/ForumAdmin.class.php	2011-10-26 14:03:41 UTC (rev 14732)
@@ -159,9 +159,6 @@
 			$forum_name = getStringFromRequest('forum_name');
 			$description = getStringFromRequest('description');
 			$send_all_posts_to = getStringFromRequest('send_all_posts_to');
-			$allow_anonymous = getIntFromRequest('allow_anonymous');
-			$is_public = getIntFromRequest('is_public');
-			$moderation_level = getIntFromRequest('moderation_level');
 			$group_forum_id = getIntFromRequest('group_forum_id');
 			/*
 				Change a forum
@@ -175,7 +172,7 @@
 
 			session_require_perm ('forum_admin', $f->Group->getID()) ;
 
-			if (!$f->update($forum_name,$description,$allow_anonymous,$is_public,$send_all_posts_to,$moderation_level)) {
+			if (!$f->update($forum_name,$description,0,0,$send_all_posts_to,0)) {
 				exit_error($f->getErrorMessage(),'forums');
 			} else {
 				$feedback = _('Forum Info Updated Successfully');
@@ -185,10 +182,7 @@
 		if ($action == "add_forum") { //add forum
 			$forum_name = getStringFromRequest('forum_name');
 			$description = getStringFromRequest('description');
-			$is_public = getStringFromRequest('is_public');
 			$send_all_posts_to = getStringFromRequest('send_all_posts_to');
-			$allow_anonymous = getStringFromRequest('allow_anonymous');
-			$moderation_level = getIntFromRequest('moderation_level');
 			/*
 				Adding forums to this group
 			*/
@@ -204,7 +198,7 @@
 				form_release_key(getStringFromRequest("form_key"));
 				exit_error($f->getErrorMessage(),'forums');
 			}
-			if (!$f->create($forum_name,$description,$is_public,$send_all_posts_to,1,$allow_anonymous,$moderation_level)) {
+			if (!$f->create($forum_name,$description,0,$send_all_posts_to,1,0,0)) {
 				form_release_key(getStringFromRequest("form_key"));
 				exit_error($f->getErrorMessage(),'forums');
 			} else {

Modified: trunk/src/common/forum/ForumHTML.class.php
===================================================================
--- trunk/src/common/forum/ForumHTML.class.php	2011-10-26 14:03:31 UTC (rev 14731)
+++ trunk/src/common/forum/ForumHTML.class.php	2011-10-26 14:03:41 UTC (rev 14732)
@@ -552,6 +552,7 @@
 
 	$body = '';
 
+	$rl = RoleLoggedIn::getInstance() ;
 	if (forge_check_perm ('forum', $this->Forum->getID(), 'post')) {
 		if ($subject) {
 			//if this is a followup, put a RE: before it if needed
@@ -614,7 +615,7 @@
 </div>
 			<?php
 
-} elseif ($this->Forum->allowAnonymous()) {
+} elseif ($rl->hasPermission('forum', $this->Forum->getID(), 'post')) {
 	echo '<span class="error">';
 	printf(_('You could post if you were <a href="%1$s">logged in</a>.'), util_make_url ('/account/login.php?return_to='.urlencode(getStringFromServer('REQUEST_URI'))));
 	echo '</span>';

Modified: trunk/src/common/include/Group.class.php
===================================================================
--- trunk/src/common/include/Group.class.php	2011-10-26 14:03:31 UTC (rev 14731)
+++ trunk/src/common/include/Group.class.php	2011-10-26 14:03:41 UTC (rev 14732)
@@ -2273,7 +2273,7 @@
 					$oldff = new ForumFactory($template) ;
 					foreach ($oldff->getForums() as $o) {
 						$f = new Forum($this);
-						$f->create($this->replaceTemplateStrings($o->getName()),$this->replaceTemplateStrings($o->getDescription()),$o->isPublic(),$o->getSendAllPostsTo(),1,$o->allowAnonymous(),$o->getModerationLevel());
+						$f->create($this->replaceTemplateStrings($o->getName()),$this->replaceTemplateStrings($o->getDescription()),0,$o->getSendAllPostsTo(),1,0,0);
 						$id_mappings['forum'][$o->getID()] = $f->getID();
 					}
 				}

Modified: trunk/src/utils/fixscripts/populate_template_project.php
===================================================================
--- trunk/src/utils/fixscripts/populate_template_project.php	2011-10-26 14:03:31 UTC (rev 14731)
+++ trunk/src/utils/fixscripts/populate_template_project.php	2011-10-26 14:03:41 UTC (rev 14732)
@@ -70,23 +70,23 @@
 	}
 
 	if (forge_get_config ('use_forum')) {
-		$f = new Forum($project);
-		if (!$f->create(_('Open-Discussion'),_('General Discussion'),1,'',1,0)) {
-			$project->setError(sprintf (_('F%d: %s'), 1, $f->getErrorMessage()));
+		$f1 = new Forum($project);
+		if (!$f1->create(_('Open-Discussion'),_('General Discussion'),1,'',1,0)) {
+			$project->setError(sprintf (_('F%d: %s'), 1, $f1->getErrorMessage()));
 			db_rollback();
 			setup_gettext_from_context();
 			return false;
 		}
-		$f = new Forum($project);
-		if (!$f->create(_('Help'),_('Get Public Help'),1,'',1,0)) {
-			$project->setError(sprintf (_('F%d: %s'), 2, $f->getErrorMessage()));
+		$f2 = new Forum($project);
+		if (!$f2->create(_('Help'),_('Get Public Help'),1,'',1,0)) {
+			$project->setError(sprintf (_('F%d: %s'), 2, $f2->getErrorMessage()));
 			db_rollback();
 			setup_gettext_from_context();
 			return false;
 		}
-		$f = new Forum($project);
-		if (!$f->create(_('Developers-Discussion'),_('Project Developer Discussion'),0,'',1,0)) {
-			$project->setError(sprintf (_('F%d: %s'), 3, $f->getErrorMessage()));
+		$f3 = new Forum($project);
+		if (!$f3->create(_('Developers-Discussion'),_('Project Developer Discussion'),0,'',1,0)) {
+			$project->setError(sprintf (_('F%d: %s'), 3, $f3->getErrorMessage()));
 			db_rollback();
 			setup_gettext_from_context();
 			return false;
@@ -144,27 +144,12 @@
 	$ra->setSetting ('docman', $project->getID(), 1) ;
 	$rl->setSetting ('docman', $project->getID(), 1) ;
 
-	$ff = new ForumFactory ($project) ;
-	foreach ($ff->getAllForumIds() as $fid) {
-		$f = forum_get_object ($fid) ;
-		if ($f->isPublic()) {
-			$l = $f->getModerationLevel() ;
-			if ($l == 0) {
-				$rl->setSetting ('forum', $fid, 3) ;
-			} else {
-				$rl->setSetting ('forum', $fid, 2) ;
-			}
-			if ($f->allowAnonymous()) {
-				if ($l == 0) {
-					$ra->setSetting ('forum', $fid, 3) ;
-				} else {
-					$ra->setSetting ('forum', $fid, 2) ;
-				}
-			} else {
-				$ra->setSetting ('forum', $fid, 1) ;
-			}
-		}
-	}
+	$ra->setSetting ('forum', $f1->getID(), 3) ;
+	$rl->setSetting ('forum', $f1->getID(), 3) ;
+
+	$ra->setSetting ('forum', $f2->getID(), 3) ;
+	$rl->setSetting ('forum', $f2->getID(), 3) ;
+
 	$pgf = new ProjectGroupFactory ($project) ;
 	foreach ($pgf->getAllProjectGroupIds() as $pgid) {
 		$pg = projectgroup_get_object ($pgid) ;

Modified: trunk/src/www/forum/new.php
===================================================================
--- trunk/src/www/forum/new.php	2011-10-26 14:03:31 UTC (rev 14731)
+++ trunk/src/www/forum/new.php	2011-10-26 14:03:41 UTC (rev 14732)
@@ -57,8 +57,8 @@
 		exit_error($fh->getErrorMessage(),'forums');
 	}
 
-	if (session_loggedin() || $f->allowAnonymous()) {
-		if (!$f->allowAnonymous() && !$f->savePlace()) {
+	if (forge_check_perm('forum', $f->getID(), 'post')) {
+		if (session_loggedin() && !$f->savePlace()) {
 			exit_error($f->getErrorMessage(),'forums');
 		} else {
 			forum_header(array('title'=> _('Start New Thread for: ') . $f->getName(),'forum_id'=>$forum_id));




More information about the Fusionforge-commits mailing list