Skip to content

Commit bede81a

Browse files
authored
Merge pull request #1230 from johnhenley/issues/social-group-integration-1229
FIX: Social integration exceptions
2 parents 52858ad + cfbc96d commit bede81a

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

Dnn.CommunityForums/Classic.ascx.cs

+15-9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1919
// DEALINGS IN THE SOFTWARE.
2020

21+
using DotNetNuke.Services.Log.EventLog;
22+
2123
namespace DotNetNuke.Modules.ActiveForums
2224
{
2325
using System;
@@ -252,18 +254,22 @@ private void GetControl(string view, string options)
252254
if (string.IsNullOrEmpty(this.ForumIds))
253255
{
254256
RoleInfo role = DotNetNuke.Security.Roles.RoleController.Instance.GetRoleById(portalId: this.PortalId, roleId: this.SocialGroupId);
255-
256-
// Create new forum
257-
bool isPrivate = false;
258-
if (!role.IsPublic)
257+
Hashtable htSettings = DotNetNuke.Entities.Modules.ModuleController.Instance.GetModule(moduleId: this.ModuleId, tabId: this.TabId, ignoreCache: false).TabModuleSettings;
258+
if (htSettings == null || htSettings.Count == 0)
259259
{
260-
isPrivate = true;
260+
htSettings = DotNetNuke.Entities.Modules.ModuleController.Instance.GetModule(moduleId: this.ModuleId, tabId: this.TabId, ignoreCache: false).ModuleSettings;
261261
}
262262

263-
Hashtable htSettings = DotNetNuke.Entities.Modules.ModuleController.Instance.GetModule(moduleId: this.ModuleId, tabId: this.TabId, ignoreCache: false).TabModuleSettings;
264-
265-
DotNetNuke.Modules.ActiveForums.Controllers.ForumController.CreateSocialGroupForum(this.PortalId, this.ModuleId, this.SocialGroupId, Convert.ToInt32(htSettings["ForumGroupTemplate"].ToString()), role.RoleName + " Discussions", role.Description, isPrivate, htSettings["ForumConfig"].ToString());
266-
this.ForumIds = DotNetNuke.Modules.ActiveForums.Controllers.ForumController.GetForumIdsBySocialGroup(this.PortalId, this.ForumModuleId, this.SocialGroupId);
263+
if (htSettings == null || htSettings.Count == 0 || !htSettings.ContainsKey("ForumGroupTemplate"))
264+
{
265+
var ex = new Exception($"Unable to configure forum for Social Group: {this.SocialGroupId}");
266+
DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
267+
}
268+
else
269+
{
270+
DotNetNuke.Modules.ActiveForums.Controllers.ForumController.CreateSocialGroupForum(this.PortalId, this.ModuleId, this.SocialGroupId, Convert.ToInt32(htSettings["ForumGroupTemplate"].ToString()), role.RoleName + " Discussions", role.Description, !role.IsPublic, htSettings["ForumConfig"].ToString());
271+
this.ForumIds = DotNetNuke.Modules.ActiveForums.Controllers.ForumController.GetForumIdsBySocialGroup(this.PortalId, this.ForumModuleId, this.SocialGroupId);
272+
}
267273
}
268274
}
269275

Dnn.CommunityForums/Controllers/ForumController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public DotNetNuke.Modules.ActiveForums.Entities.ForumCollection GetSubForums(int
127127

128128
public static string GetForumIdsBySocialGroup(int portalId, int moduleId, int socialGroupId)
129129
{
130-
return socialGroupId > 0 ? string.Join(";", new DotNetNuke.Modules.ActiveForums.Controllers.ForumController().Find("WHERE SocialGroupId = @0", socialGroupId).Select(f => f.ForumID.ToString()).ToArray()) : string.Empty;
130+
return socialGroupId > 0 ? string.Join(";", new DotNetNuke.Modules.ActiveForums.Controllers.ForumController().Find("WHERE SocialGroupId = @0 AND ModuleId = @1", socialGroupId, moduleId).Select(f => f.ForumID.ToString()).ToArray()) : string.Empty;
131131
}
132132

133133
internal static DotNetNuke.Modules.ActiveForums.Entities.ForumInfo Forums_Get(int portalId, int moduleId, int forumId, bool useCache, int topicId)

0 commit comments

Comments
 (0)