public int Groups_Save(int portalId, ForumGroupInfo fg, bool isNew) { var rc = new Security.Roles.RoleController(); var db = new Data.Common(); var permissionsId = -1; if (fg.PermissionsId == -1) { var ri = rc.GetRoleByName(portalId, "Administrators"); if (ri != null) { fg.PermissionsId = db.CreatePermSet(ri.RoleID.ToString()); permissionsId = fg.PermissionsId; } } var groupId = DataProvider.Instance().Groups_Save(portalId, fg.ModuleId, fg.ForumGroupId, fg.GroupName, fg.SortOrder, fg.Active, fg.Hidden, fg.PermissionsId, fg.PrefixURL); if (isNew) { Permissions.CreateDefaultSets(portalId, permissionsId); var moduleId = fg.ModuleId; var sKey = "G:" + groupId.ToString(); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicsTemplateId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicTemplateId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicFormId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.ReplyFormId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.AllowRSS, "false"); } DataCache.CacheClear(string.Format(CacheKeys.ForumList, fg.ModuleId)); return(groupId); }
public int Groups_Save(int portalId, ForumGroupInfo fg, bool isNew) { var rc = new Security.Roles.RoleController(); var db = new Data.Common(); var permissionsId = -1; if (fg.PermissionsId == -1) { var ri = rc.GetRoleByName(portalId, "Administrators"); if (ri != null) { fg.PermissionsId = db.CreatePermSet(ri.RoleID.ToString()); permissionsId = fg.PermissionsId; } } var groupId = DataProvider.Instance().Groups_Save(portalId, fg.ModuleId, fg.ForumGroupId, fg.GroupName, fg.SortOrder, fg.Active, fg.Hidden, fg.PermissionsId, fg.PrefixURL); if (isNew) { Permissions.CreateDefaultSets(portalId, permissionsId); var moduleId = fg.ModuleId; var sKey = "G:" + groupId.ToString(); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicsTemplateId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicTemplateId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicFormId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.ReplyFormId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.AllowRSS, "false"); } DataCache.CacheClear(string.Format(CacheKeys.ForumList, fg.ModuleId)); return groupId; }
public int CreateGroupForum(int portalId, int moduleId, int socialGroupId, int forumGroupId, string forumName, string forumDescription, bool isPrivate, string forumConfig) { var forumId = -1; try { var rc = new RoleController(); var forumsDb = new Data.Common(); var fgc = new ForumGroupController(); var gi = fgc.Groups_Get(moduleId, forumGroupId); var socialGroup = rc.GetRole(socialGroupId, portalId); var groupAdmin = socialGroupId.ToString() + ":0"; var groupMember = socialGroupId.ToString(); var ri = rc.GetRoleByName(portalId, "Administrators"); var permissionsId = forumsDb.CreatePermSet(ri.RoleID.ToString()); moduleId = gi.ModuleId; var fi = new Forum { ForumDesc = forumDescription, Active = true, ForumGroupId = forumGroupId, ForumID = -1, ForumName = forumName, Hidden = isPrivate, ModuleId = gi.ModuleId, ParentForumId = 0, PortalId = portalId, PermissionsId = gi.PermissionsId, SortOrder = 0, SocialGroupId = socialGroupId }; forumId = Forums_Save(portalId, fi, true, true); fi = GetForum(portalId, moduleId, forumId); fi.PermissionsId = permissionsId; Forums_Save(portalId, fi, false, false); var xDoc = new XmlDocument(); xDoc.LoadXml(forumConfig); var xRoot = xDoc.DocumentElement; if (xRoot != null) { var xSecList = xRoot.SelectSingleNode("//security[@type='groupadmin']"); string permSet; string secKey; if (xSecList != null) { foreach (XmlNode n in xSecList.ChildNodes) { secKey = n.Name; if (n.Attributes == null || n.Attributes["value"].Value != "true") { continue; } permSet = forumsDb.GetPermSet(permissionsId, secKey); permSet = Permissions.AddPermToSet(groupAdmin, 2, permSet); forumsDb.SavePermSet(permissionsId, secKey, permSet); } } xSecList = xRoot.SelectSingleNode("//security[@type='groupmember']"); if (xSecList != null) { foreach (XmlNode n in xSecList.ChildNodes) { secKey = n.Name; if (n.Attributes == null || n.Attributes["value"].Value != "true") { continue; } permSet = forumsDb.GetPermSet(permissionsId, secKey); permSet = Permissions.AddPermToSet(groupMember, 0, permSet); forumsDb.SavePermSet(permissionsId, secKey, permSet); } } if (socialGroup.IsPublic) { xSecList = xRoot.SelectSingleNode("//security[@type='registereduser']"); ri = rc.GetRoleByName(portalId, "Registered Users"); if (xSecList != null) { foreach (XmlNode n in xSecList.ChildNodes) { secKey = n.Name; if (n.Attributes == null || n.Attributes["value"].Value != "true") { continue; } permSet = forumsDb.GetPermSet(permissionsId, secKey); permSet = Permissions.AddPermToSet(ri.RoleID.ToString(), 0, permSet); forumsDb.SavePermSet(permissionsId, secKey, permSet); } } xSecList = xRoot.SelectSingleNode("//security[@type='anon']"); if (xSecList != null) { foreach (XmlNode n in xSecList.ChildNodes) { secKey = n.Name; if (n.Attributes == null || n.Attributes["value"].Value != "true") { continue; } permSet = forumsDb.GetPermSet(permissionsId, secKey); permSet = Permissions.AddPermToSet("-1", 0, permSet); forumsDb.SavePermSet(permissionsId, secKey, permSet); } } } } } catch (Exception ex) { } DataCache.CacheClear(moduleId + "fv"); return(forumId); }
public int Forums_Save(int portalId, Forum fi, bool isNew, bool useGroup) { var rc = new RoleController(); var db = new Data.Common(); var permissionsId = -1; if (useGroup && (string.IsNullOrEmpty(fi.ForumSettingsKey) || fi.PermissionsId == -1)) { var fc = new ForumGroupController(); var fg = fc.Groups_Get(fi.ModuleId, fi.ForumGroupId); if (fg != null) { fi.ForumSettingsKey = fg.GroupSettingsKey; //fi.ModuleId = fg.ModuleId fi.PermissionsId = fg.PermissionsId; } } else if (fi.PermissionsId <= 0 && useGroup == false) { var ri = rc.GetRoleByName(portalId, "Administrators"); if (ri != null) { fi.PermissionsId = db.CreatePermSet(ri.RoleID.ToString()); permissionsId = fi.PermissionsId; isNew = true; } if (fi.ForumID > 0 & !(string.IsNullOrEmpty(fi.ForumSettingsKey))) { if (fi.ForumSettingsKey.Contains("G:")) { fi.ForumSettingsKey = string.Empty; } } if (fi.ForumSettingsKey == "" && fi.ForumID > 0) { fi.ForumSettingsKey = "F:" + fi.ForumID; } } else if (useGroup == false && string.IsNullOrEmpty(fi.ForumSettingsKey) && fi.ForumID > 0) { fi.ForumSettingsKey = "F:" + fi.ForumID; } var forumId = Convert.ToInt32(DataProvider.Instance().Forum_Save(portalId, fi.ForumID, fi.ModuleId, fi.ForumGroupId, fi.ParentForumId, fi.ForumName, fi.ForumDesc, fi.SortOrder, fi.Active, fi.Hidden, fi.ForumSettingsKey, fi.PermissionsId, fi.PrefixURL, fi.SocialGroupId, fi.HasProperties)); if (String.IsNullOrEmpty(fi.ForumSettingsKey)) { fi.ForumSettingsKey = "F:" + forumId; } if (fi.ForumSettingsKey.Contains("G:")) { DataProvider.Instance().Forum_ConfigCleanUp(fi.ModuleId, "F:" + fi.ForumID, "F:" + fi.ForumID); } if (isNew && useGroup == false) { var moduleId = fi.ModuleId; Permissions.CreateDefaultSets(portalId, permissionsId); var sKey = "F:" + forumId.ToString(); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicsTemplateId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicTemplateId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicFormId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.ReplyFormId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.AllowRSS, "false"); } // Clear the caches DataCache.CacheClear(string.Format(CacheKeys.ForumList, fi.ModuleId)); var cachekey = string.Format(forumInfoCacheKey, portalId, fi.ModuleId, forumId); DataCache.CacheClear(cachekey); return(forumId); }
public int CreateGroupForum(int portalId, int moduleId, int socialGroupId, int forumGroupId, string forumName, string forumDescription, bool isPrivate, string forumConfig) { var forumId = -1; try { var rc = new RoleController(); var forumsDb = new Data.Common(); var fgc = new ForumGroupController(); var gi = fgc.Groups_Get(moduleId, forumGroupId); var socialGroup = rc.GetRole(socialGroupId, portalId); var groupAdmin = socialGroupId.ToString() + ":0"; var groupMember = socialGroupId.ToString(); var ri = rc.GetRoleByName(portalId, "Administrators"); var permissionsId = forumsDb.CreatePermSet(ri.RoleID.ToString()); moduleId = gi.ModuleId; var fi = new Forum { ForumDesc = forumDescription, Active = true, ForumGroupId = forumGroupId, ForumID = -1, ForumName = forumName, Hidden = isPrivate, ModuleId = gi.ModuleId, ParentForumId = 0, PortalId = portalId, PermissionsId = gi.PermissionsId, SortOrder = 0, SocialGroupId = socialGroupId }; forumId = Forums_Save(portalId, fi, true, true); fi = GetForum(portalId, moduleId, forumId); fi.PermissionsId = permissionsId; Forums_Save(portalId, fi, false, false); var xDoc = new XmlDocument(); xDoc.LoadXml(forumConfig); var xRoot = xDoc.DocumentElement; if (xRoot != null) { var xSecList = xRoot.SelectSingleNode("//security[@type='groupadmin']"); string permSet; string secKey; if (xSecList != null) { foreach (XmlNode n in xSecList.ChildNodes) { secKey = n.Name; if (n.Attributes == null || n.Attributes["value"].Value != "true") continue; permSet = forumsDb.GetPermSet(permissionsId, secKey); permSet = Permissions.AddPermToSet(groupAdmin, 2, permSet); forumsDb.SavePermSet(permissionsId, secKey, permSet); } } xSecList = xRoot.SelectSingleNode("//security[@type='groupmember']"); if (xSecList != null) { foreach (XmlNode n in xSecList.ChildNodes) { secKey = n.Name; if (n.Attributes == null || n.Attributes["value"].Value != "true") continue; permSet = forumsDb.GetPermSet(permissionsId, secKey); permSet = Permissions.AddPermToSet(groupMember, 0, permSet); forumsDb.SavePermSet(permissionsId, secKey, permSet); } } if (socialGroup.IsPublic) { xSecList = xRoot.SelectSingleNode("//security[@type='registereduser']"); ri = rc.GetRoleByName(portalId, "Registered Users"); if (xSecList != null) { foreach (XmlNode n in xSecList.ChildNodes) { secKey = n.Name; if (n.Attributes == null || n.Attributes["value"].Value != "true") continue; permSet = forumsDb.GetPermSet(permissionsId, secKey); permSet = Permissions.AddPermToSet(ri.RoleID.ToString(), 0, permSet); forumsDb.SavePermSet(permissionsId, secKey, permSet); } } xSecList = xRoot.SelectSingleNode("//security[@type='anon']"); if (xSecList != null) { foreach (XmlNode n in xSecList.ChildNodes) { secKey = n.Name; if (n.Attributes == null || n.Attributes["value"].Value != "true") continue; permSet = forumsDb.GetPermSet(permissionsId, secKey); permSet = Permissions.AddPermToSet("-1", 0, permSet); forumsDb.SavePermSet(permissionsId, secKey, permSet); } } } } } catch (Exception ex) { } DataCache.CacheClear(moduleId + "fv"); return forumId; }
public int Forums_Save(int portalId, Forum fi, bool isNew, bool useGroup) { var rc = new RoleController(); var db = new Data.Common(); var permissionsId = -1; if (useGroup && (string.IsNullOrEmpty(fi.ForumSettingsKey) || fi.PermissionsId == -1)) { var fc = new ForumGroupController(); var fg = fc.Groups_Get(fi.ModuleId, fi.ForumGroupId); if (fg != null) { fi.ForumSettingsKey = fg.GroupSettingsKey; //fi.ModuleId = fg.ModuleId fi.PermissionsId = fg.PermissionsId; } } else if (fi.PermissionsId <= 0 && useGroup == false) { var ri = rc.GetRoleByName(portalId, "Administrators"); if (ri != null) { fi.PermissionsId = db.CreatePermSet(ri.RoleID.ToString()); permissionsId = fi.PermissionsId; isNew = true; } if (fi.ForumID > 0 & ! (string.IsNullOrEmpty(fi.ForumSettingsKey))) { if (fi.ForumSettingsKey.Contains("G:")) fi.ForumSettingsKey = string.Empty; } if (fi.ForumSettingsKey == "" && fi.ForumID > 0) { fi.ForumSettingsKey = "F:" + fi.ForumID; } } else if (useGroup == false && string.IsNullOrEmpty(fi.ForumSettingsKey) && fi.ForumID > 0) { fi.ForumSettingsKey = "F:" + fi.ForumID; } var forumId = Convert.ToInt32(DataProvider.Instance().Forum_Save(portalId, fi.ForumID, fi.ModuleId, fi.ForumGroupId, fi.ParentForumId, fi.ForumName, fi.ForumDesc, fi.SortOrder, fi.Active, fi.Hidden, fi.ForumSettingsKey, fi.PermissionsId, fi.PrefixURL, fi.SocialGroupId, fi.HasProperties)); if (String.IsNullOrEmpty(fi.ForumSettingsKey)) fi.ForumSettingsKey = "F:" + forumId; if (fi.ForumSettingsKey.Contains("G:")) DataProvider.Instance().Forum_ConfigCleanUp(fi.ModuleId, "F:" + fi.ForumID, "F:" + fi.ForumID); if (isNew && useGroup == false) { var moduleId = fi.ModuleId; Permissions.CreateDefaultSets(portalId, permissionsId); var sKey = "F:" + forumId.ToString(); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicsTemplateId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicTemplateId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.TopicFormId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.ReplyFormId, "0"); Settings.SaveSetting(moduleId, sKey, ForumSettingKeys.AllowRSS, "false"); } // Clear the caches DataCache.CacheClear(string.Format(CacheKeys.ForumList, fi.ModuleId)); var cachekey = string.Format(forumInfoCacheKey, portalId, fi.ModuleId, forumId); DataCache.CacheClear(cachekey); return forumId; }