Skip to content

Commit cdd0adb

Browse files
committed
FIX: Social integration exceptions
1 parent 54c84b5 commit cdd0adb

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

Dnn.CommunityForums/Classic.ascx.cs

+13-9
Original file line numberDiff line numberDiff line change
@@ -252,18 +252,22 @@ private void GetControl(string view, string options)
252252
if (string.IsNullOrEmpty(this.ForumIds))
253253
{
254254
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)
255+
Hashtable htSettings = DotNetNuke.Entities.Modules.ModuleController.Instance.GetModule(moduleId: this.ModuleId, tabId: this.TabId, ignoreCache: false).TabModuleSettings;
256+
if (htSettings == null || htSettings.Count == 0)
259257
{
260-
isPrivate = true;
258+
htSettings = DotNetNuke.Entities.Modules.ModuleController.Instance.GetModule(moduleId: this.ModuleId, tabId: this.TabId, ignoreCache: false).ModuleSettings;
261259
}
262260

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);
261+
if (htSettings == null || htSettings.Count == 0 || !htSettings.ContainsKey("ForumGroupTemplate"))
262+
{
263+
var ex = new Exception($"Unable to configure forum for Social Group: {this.SocialGroupId}");
264+
DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
265+
}
266+
else
267+
{
268+
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());
269+
this.ForumIds = DotNetNuke.Modules.ActiveForums.Controllers.ForumController.GetForumIdsBySocialGroup(this.PortalId, this.ForumModuleId, this.SocialGroupId);
270+
}
267271
}
268272
}
269273

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)