private void AddEditorRole() { if (ModuleContext.PortalSettings.UserId > 0) { string OpenContent_EditorsRoleId = PortalController.GetPortalSetting("OpenContent_EditorsRoleId", ModuleContext.PortalId, ""); if (!string.IsNullOrEmpty(OpenContent_EditorsRoleId)) { int roleId = int.Parse(OpenContent_EditorsRoleId); var objModule = ModuleContext.Configuration; //todo: probable DNN bug. objModule.ModulePermissions doesn't return correct permissions for attached multi-lingual modules //don't alter permissions of modules that are non-default language and that are attached var permExist = objModule.ModulePermissions.Where(tp => tp.RoleID == roleId).Any(); if (!permExist) { //todo sacha: add two permissions, read and write; Or better still add all permissions that are available. eg if you installed extra permissions var permissionController = new PermissionController(); // view permission var arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); var permission = (PermissionInfo)arrSystemModuleViewPermissions[0]; var objModulePermission = new ModulePermissionInfo { ModuleID = ModuleContext.Configuration.ModuleID, //ModuleDefID = permission.ModuleDefID, //PermissionCode = permission.PermissionCode, PermissionID = permission.PermissionID, PermissionKey = permission.PermissionKey, RoleID = roleId, //UserID = userId, AllowAccess = true }; objModule.ModulePermissions.Add(objModulePermission); // edit permission arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "EDIT"); permission = (PermissionInfo)arrSystemModuleViewPermissions[0]; objModulePermission = new ModulePermissionInfo { ModuleID = ModuleContext.Configuration.ModuleID, //ModuleDefID = permission.ModuleDefID, //PermissionCode = permission.PermissionCode, PermissionID = permission.PermissionID, PermissionKey = permission.PermissionKey, RoleID = roleId, //UserID = userId, AllowAccess = true }; objModule.ModulePermissions.Add(objModulePermission); try { ModulePermissionController.SaveModulePermissions(objModule); } catch (Exception ex) { //Log.Logger.ErrorFormat("Failed to automaticly set the permission. It already exists? tab={0}, moduletitle={1} ", objModule.TabID ,objModule.ModuleTitle); } } } } }
private void AutoSetPermission(ModuleInfo objModule, int roleId) { //todo sacha: add two permissions, read and write; Or better still add all permissions that are available. eg if you installed extra permissions var permissionController = new PermissionController(); // view permission var arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); var permission = (PermissionInfo)arrSystemModuleViewPermissions[0]; var objModulePermission = new ModulePermissionInfo { ModuleID = ModuleContext.Configuration.ModuleID, //ModuleDefID = permission.ModuleDefID, //PermissionCode = permission.PermissionCode, PermissionID = permission.PermissionID, PermissionKey = permission.PermissionKey, RoleID = roleId, //UserID = userId, AllowAccess = true }; objModule.ModulePermissions.Add(objModulePermission); // edit permission arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "EDIT"); permission = (PermissionInfo)arrSystemModuleViewPermissions[0]; objModulePermission = new ModulePermissionInfo { ModuleID = ModuleContext.Configuration.ModuleID, //ModuleDefID = permission.ModuleDefID, //PermissionCode = permission.PermissionCode, PermissionID = permission.PermissionID, PermissionKey = permission.PermissionKey, RoleID = roleId, //UserID = userId, AllowAccess = true }; objModule.ModulePermissions.Add(objModulePermission); try { ModulePermissionController.SaveModulePermissions(objModule); } catch (Exception) { //App.Services.Logger.Error($"Failed to automaticly set the permission. It already exists? tab={0}, moduletitle={1} ", objModule.TabID ,objModule.ModuleTitle); } }
protected void OnUpdateClick(object sender, EventArgs e) { try { if (this.Page.IsValid) { this.Module.ModulePermissions.Clear(); this.Module.ModulePermissions.AddRange(this.dgPermissions.Permissions); ModulePermissionController.SaveModulePermissions(this.Module); // Navigate back to admin page this.Response.Redirect(this.ReturnURL, true); } } catch (Exception exc) { Exceptions.ProcessModuleLoadException(this, exc); } }
private void DoAddExistingModule(int moduleId, int tabId, string paneName, int position, string align, bool cloneModule) { ModuleInfo moduleInfo = ModuleController.Instance.GetModule(moduleId, tabId, false); int userID = -1; if (this.Request.IsAuthenticated) { UserInfo user = UserController.Instance.GetCurrentUserInfo(); if (user != null) { userID = user.UserID; } } if (moduleInfo != null) { // Is this from a site other than our own? (i.e., is the user requesting "module sharing"?) var remote = moduleInfo.PortalID != PortalSettings.Current.PortalId; if (remote) { switch (moduleInfo.DesktopModule.Shareable) { case ModuleSharing.Unsupported: // Should never happen since the module should not be listed in the first place. throw new ApplicationException(string.Format( "Module '{0}' does not support Shareable and should not be listed in Add Existing Module from a different source site", moduleInfo.DesktopModule.FriendlyName)); case ModuleSharing.Supported: break; default: case ModuleSharing.Unknown: break; } } // clone the module object ( to avoid creating an object reference to the data cache ) ModuleInfo newModule = moduleInfo.Clone(); newModule.UniqueId = Guid.NewGuid(); // Cloned Module requires a different uniqueID newModule.TabModuleID = Null.NullInteger; newModule.TabID = PortalSettings.Current.ActiveTab.TabID; newModule.ModuleOrder = position; newModule.PaneName = paneName; newModule.Alignment = align; if (cloneModule) { newModule.ModuleID = Null.NullInteger; // copy module settings and tab module settings newModule.ModuleSettings.Clear(); foreach (var key in moduleInfo.ModuleSettings.Keys) { newModule.ModuleSettings.Add(key, moduleInfo.ModuleSettings[key]); } newModule.TabModuleSettings.Clear(); foreach (var key in moduleInfo.TabModuleSettings.Keys) { newModule.TabModuleSettings.Add(key, moduleInfo.TabModuleSettings[key]); } // reset the module id newModule.ModuleID = ModuleController.Instance.AddModule(newModule); if (!string.IsNullOrEmpty(newModule.DesktopModule.BusinessControllerClass)) { object objObject = Reflection.CreateObject(newModule.DesktopModule.BusinessControllerClass, newModule.DesktopModule.BusinessControllerClass); if (objObject is IPortable) { try { SetCloneModuleContext(true); string content = Convert.ToString(((IPortable)objObject).ExportModule(moduleId)); if (!string.IsNullOrEmpty(content)) { ((IPortable)objObject).ImportModule(newModule.ModuleID, content, newModule.DesktopModule.Version, userID); } } finally { SetCloneModuleContext(false); } } } } else { // copy tab module settings newModule.TabModuleSettings.Clear(); foreach (var key in moduleInfo.TabModuleSettings.Keys) { newModule.TabModuleSettings.Add(key, moduleInfo.TabModuleSettings[key]); } ModuleController.Instance.AddModule(newModule); } if (remote) { // Ensure the Portal Admin has View rights var permissionController = new PermissionController(); ArrayList arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); AddModulePermission( newModule, (PermissionInfo)arrSystemModuleViewPermissions[0], PortalSettings.Current.AdministratorRoleId, Null.NullInteger, true); // Set PortalID correctly newModule.OwnerPortalID = newModule.PortalID; newModule.PortalID = PortalSettings.Current.PortalId; ModulePermissionController.SaveModulePermissions(newModule); } // Add Event Log EventLogController.Instance.AddLog(newModule, PortalSettings.Current, userID, string.Empty, EventLogController.EventLogType.MODULE_CREATED); } }
public static void DeserializeModule(XmlNode nodeModule, XmlNode nodePane, int portalId, int tabId, PortalTemplateModuleAction mergeTabs, Hashtable hModules) { var moduleController = new ModuleController(); var objModuleDefinition = GetModuleDefinition(nodeModule); // will be instance or module var templateModuleId = XmlUtils.GetNodeValueInt(nodeModule, "moduleID"); var isInstance = CheckIsInstance(templateModuleId, hModules); //remove containersrc node if container is missing var containerNode = nodeModule.SelectSingleNode("containersrc"); if (containerNode != null) { var container = containerNode.Value; if (!File.Exists(HttpContext.Current.Server.MapPath(container))) { nodeModule.RemoveChild(containerNode); } } if (objModuleDefinition != null) { //If Mode is Merge Check if Module exists if (!FindModule(nodeModule, tabId, mergeTabs)) { var module = DeserializeModule(nodeModule, nodePane, portalId, tabId, objModuleDefinition.ModuleDefID); int intModuleId; if (!isInstance) { //Add new module intModuleId = moduleController.AddModule(module); if (templateModuleId > 0) { hModules.Add(templateModuleId, intModuleId); } } else { //Add instance module.ModuleID = Convert.ToInt32(hModules[templateModuleId]); intModuleId = moduleController.AddModule(module); } if (XmlUtils.GetNodeValue(nodeModule, "content", "") != "") { GetModuleContent(nodeModule, intModuleId, tabId, portalId, isInstance); } // Process permissions and moduleSettings only once if (!isInstance) { var nodeModulePermissions = nodeModule.SelectNodes("modulepermissions/permission"); DeserializeModulePermissions(nodeModulePermissions, portalId, module); //Persist the permissions to the Data base ModulePermissionController.SaveModulePermissions(module); var nodeModuleSettings = nodeModule.SelectNodes("modulesettings/setting"); DeserializeModuleSettings(nodeModuleSettings, intModuleId); } //apply TabModuleSettings var nodeTabModuleSettings = nodeModule.SelectNodes("tabmodulesettings/setting"); DeserializeTabModuleSettings(nodeTabModuleSettings, intModuleId, tabId); } } }
private void MakeModerator_Editor() { try { bool blEditor; var arrRoles = new ArrayList(); var arrUsers = new ArrayList(); var objPermission = default(ModulePermissionInfo); var objPermissionController = new PermissionController(); var objModules = new ModuleController(); // Get existing module permissions var objModule = objModules.GetModule(this.ModuleId, this.TabId); var objModulePermissions2 = new ModulePermissionCollection(); foreach (ModulePermissionInfo perm in objModule.ModulePermissions) { if (perm.PermissionKey == "EVENTSMOD" && perm.AllowAccess || perm.PermissionKey == "EDIT" && perm.AllowAccess) { blEditor = false; foreach (ModulePermissionInfo perm2 in objModule.ModulePermissions) { if (perm2.PermissionKey == "EVENTSEDT" && ((perm.RoleID == perm2.RoleID) & (perm.RoleID >= 0) || (perm.UserID == perm2.UserID) & (perm.UserID >= 0))) { if (perm2.AllowAccess) { blEditor = true; } else { objModulePermissions2.Add(perm2); } } } if (blEditor == false) { if (perm.UserID >= 0) { arrUsers.Add(perm.UserID); } else { arrRoles.Add(perm.RoleID); } } } } // Remove negative edit permissions where user is moderator foreach (ModulePermissionInfo perm in objModulePermissions2) { objModule.ModulePermissions.Remove(perm); } var objEditPermissions = objPermissionController.GetPermissionByCodeAndKey("EVENTS_MODULE", "EVENTSEDT"); var objEditPermission = (PermissionInfo)objEditPermissions[0]; foreach (int iRoleID in arrRoles) { // Add Edit Permission for Moderator Role objPermission = new ModulePermissionInfo(); objPermission.RoleID = iRoleID; objPermission.ModuleID = this.ModuleId; objPermission.PermissionKey = objEditPermission.PermissionKey; objPermission.PermissionName = objEditPermission.PermissionName; objPermission.PermissionCode = objEditPermission.PermissionCode; objPermission.PermissionID = objEditPermission.PermissionID; objPermission.AllowAccess = true; objModule.ModulePermissions.Add(objPermission); } foreach (int iUserID in arrUsers) { objPermission = new ModulePermissionInfo(); objPermission.UserID = iUserID; objPermission.ModuleID = this.ModuleId; objPermission.PermissionKey = objEditPermission.PermissionKey; objPermission.PermissionName = objEditPermission.PermissionName; objPermission.PermissionCode = objEditPermission.PermissionCode; objPermission.PermissionID = objEditPermission.PermissionID; objPermission.AllowAccess = true; objModule.ModulePermissions.Add(objPermission); } ModulePermissionController.SaveModulePermissions(objModule); } catch (Exception exc) { Exceptions.ProcessModuleLoadException(this, exc); } }
private int DoAddExistingModule(int moduleId, int tabId, string paneName, int position, string align, bool cloneModule) { ModuleInfo moduleInfo = ModuleController.Instance.GetModule(moduleId, tabId, false); int userID = -1; UserInfo user = UserController.Instance.GetCurrentUserInfo(); if (user != null) { userID = user.UserID; } if ((moduleInfo != null)) { // Is this from a site other than our own? (i.e., is the user requesting "module sharing"?) var remote = moduleInfo.PortalID != PortalSettings.Current.PortalId; if (remote) { switch (moduleInfo.DesktopModule.Shareable) { case ModuleSharing.Unsupported: // Should never happen since the module should not be listed in the first place. throw new ApplicationException(string.Format("Module '{0}' does not support Shareable and should not be listed in Add Existing Module from a different source site", moduleInfo.DesktopModule.FriendlyName)); case ModuleSharing.Supported: break; case ModuleSharing.Unknown: break; } } // clone the module object ( to avoid creating an object reference to the data cache ) ModuleInfo newModule = moduleInfo.Clone(); newModule.UniqueId = Guid.NewGuid(); // Cloned Module requires a different uniqueID newModule.TabID = PortalSettings.Current.ActiveTab.TabID; newModule.ModuleOrder = position; newModule.PaneName = paneName; newModule.Alignment = align; if ((cloneModule)) { newModule.ModuleID = Null.NullInteger; //reset the module id newModule.ModuleID = ModuleController.Instance.AddModule(newModule); if (!string.IsNullOrEmpty(newModule.DesktopModule.BusinessControllerClass)) { object objObject = DotNetNuke.Framework.Reflection.CreateObject(newModule.DesktopModule.BusinessControllerClass, newModule.DesktopModule.BusinessControllerClass); if (objObject is IPortable) { string content = Convert.ToString(((IPortable)objObject).ExportModule(moduleId)); if (!string.IsNullOrEmpty(content)) { ((IPortable)objObject).ImportModule(newModule.ModuleID, content, newModule.DesktopModule.Version, userID); } } } } else { ModuleController.Instance.AddModule(newModule); } //if the tab of original module has custom stylesheet defined, then also copy the stylesheet //to the destination tab if its custom stylesheet is empty. var originalTab = TabController.Instance.GetTab(moduleInfo.TabID, moduleInfo.PortalID); var targetTab = PortalSettings.Current.ActiveTab; if (originalTab != null && originalTab.TabSettings.ContainsKey("CustomStylesheet") && !string.IsNullOrEmpty(originalTab.TabSettings["CustomStylesheet"].ToString()) && (!targetTab.TabSettings.ContainsKey("CustomStylesheet") || string.IsNullOrEmpty(targetTab.TabSettings["CustomStylesheet"].ToString()))) { TabController.Instance.UpdateTabSetting(targetTab.TabID, "CustomStylesheet", originalTab.TabSettings["CustomStylesheet"].ToString()); } if (remote) { //Ensure the Portal Admin has View rights var permissionController = new PermissionController(); ArrayList arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); AddModulePermission(newModule, (PermissionInfo)arrSystemModuleViewPermissions[0], PortalSettings.Current.AdministratorRoleId, Null.NullInteger, true); //Set PortalID correctly newModule.OwnerPortalID = newModule.PortalID; newModule.PortalID = PortalSettings.Current.PortalId; ModulePermissionController.SaveModulePermissions(newModule); } //Add Event Log EventLogController.Instance.AddLog(newModule, PortalSettings.Current, userID, "", EventLogController.EventLogType.MODULE_CREATED); return(newModule.ModuleID); } return(-1); }
private void CopyModulesFromSourceTab(TabInfo tab, TabInfo sourceTab) { foreach (var module in sourceTab.ChildModules.Values) { if (module.IsDeleted || module.AllTabs) { continue; } var newModule = module.Clone(); newModule.TabID = tab.TabID; newModule.DefaultLanguageGuid = Null.NullGuid; newModule.CultureCode = tab.CultureCode; newModule.VersionGuid = Guid.NewGuid(); newModule.LocalizedVersionGuid = Guid.NewGuid(); newModule.ModuleID = Null.NullInteger; _moduleController.InitialModulePermission(newModule, newModule.TabID, 0); newModule.InheritViewPermissions = module.InheritViewPermissions; newModule.ModuleID = _moduleController.AddModule(newModule); //Copy each setting to the new TabModule instance foreach (DictionaryEntry setting in module.ModuleSettings) { _moduleController.UpdateModuleSetting(newModule.ModuleID, Convert.ToString(setting.Key), Convert.ToString(setting.Value)); } foreach (DictionaryEntry setting in module.TabModuleSettings) { _moduleController.UpdateTabModuleSetting(newModule.TabModuleID, Convert.ToString(setting.Key), Convert.ToString(setting.Value)); } //copy permissions from source module foreach (ModulePermissionInfo permission in module.ModulePermissions) { newModule.ModulePermissions.Add(new ModulePermissionInfo { ModuleID = newModule.ModuleID, PermissionID = permission.PermissionID, RoleID = permission.RoleID, UserID = permission.UserID, PermissionKey = permission.PermissionKey, AllowAccess = permission.AllowAccess }, true); } ModulePermissionController.SaveModulePermissions(newModule); if (!string.IsNullOrEmpty(newModule.DesktopModule.BusinessControllerClass)) { var moduleBizClass = Reflection.CreateObject(newModule.DesktopModule.BusinessControllerClass, newModule.DesktopModule.BusinessControllerClass) as IPortable; if (moduleBizClass != null) { var content = Convert.ToString(moduleBizClass.ExportModule(module.ModuleID)); if (!string.IsNullOrEmpty(content)) { content = XmlUtils.RemoveInvalidXmlCharacters(content); moduleBizClass.ImportModule(newModule.ModuleID, content, newModule.DesktopModule.Version, UserController.Instance.GetCurrentUserInfo().UserID); } } } } }
public string UpgradeModule(string version) { string[] _version = version.Split(new char[] { '.' }); int major = Convert.ToInt32(_version[0]); int minor = Convert.ToInt32(_version[1]); int maintenance = Convert.ToInt32(_version[2]); if (major == 9) { if (minor == 0) { if (maintenance == 0) { List <ModuleInfo> modulesList = ModuleController.GetAllModules().Cast <ModuleInfo>().ToList(); foreach (object m in modulesList) { ModuleInfo module = (ModuleInfo)m; if (module.DesktopModule.FriendlyName == "Survey") { ModulePermissionCollection modulePermissions = module.ModulePermissions; // Setting surveyresultstype: 0 = Public, 1 = Private // goes to Permission string surveyResultsTypeSetting = module.ModuleSettings["surveyresultstype"].ToString(); if (string.IsNullOrEmpty(surveyResultsTypeSetting)) { // if not defined: make it private to be safe... surveyResultsTypeSetting = "1"; } // If it is public: All Users (RoleID: -1) have the permission to view the results if (surveyResultsTypeSetting == "0") { List <ModulePermissionInfo> viewResultsPermissions = modulePermissions.Where(mp => mp.ModuleID == module.ModuleID && mp.PermissionCode == ModuleSecurity.PERMISSION_CODE && mp.PermissionKey == ModuleSecurity.VIEW_RESULTS_PERMISSION && mp.RoleID == -1).ToList(); if (viewResultsPermissions.Count() == 0) { ModulePermissionInfo viewResultPermission = new ModulePermissionInfo(); viewResultPermission.AllowAccess = true; viewResultPermission.RoleID = -1; viewResultPermission.PermissionID = ((PermissionInfo)PermissionController.GetPermissionByCodeAndKey(ModuleSecurity.PERMISSION_CODE, ModuleSecurity.VIEW_RESULTS_PERMISSION)[0]).PermissionID; viewResultPermission.ModuleID = module.ModuleID; modulePermissions.Add(viewResultPermission); ModulePermissionController.SaveModulePermissions(module); } } // All roles and user who have edit permissions get the View results permission as well List <ModulePermissionInfo> editModulePermissions = modulePermissions.Where(mp => mp.ModuleID == module.ModuleID && mp.PermissionCode == "SYSTEM_MODULE_DEFINITION" && mp.PermissionKey == "EDIT").ToList(); foreach (ModulePermissionInfo editModulePermission in editModulePermissions) { List <ModulePermissionInfo> viewResultsPermissions; ModulePermissionInfo viewResultPermission = new ModulePermissionInfo(); if (String.IsNullOrEmpty(editModulePermission.RoleName)) { // when the role name is empty it is a user poermission viewResultsPermissions = modulePermissions.Where(mp => mp.PermissionCode == ModuleSecurity.PERMISSION_CODE && mp.PermissionKey == ModuleSecurity.VIEW_RESULTS_PERMISSION && mp.UserID == editModulePermission.UserID).ToList(); viewResultPermission.UserID = editModulePermission.UserID; viewResultPermission.Username = editModulePermission.Username; } else { // role permission viewResultsPermissions = modulePermissions.Where(mp => mp.PermissionCode == ModuleSecurity.PERMISSION_CODE && mp.PermissionKey == ModuleSecurity.VIEW_RESULTS_PERMISSION && mp.RoleID == editModulePermission.RoleID).ToList(); viewResultPermission.RoleID = editModulePermission.RoleID; viewResultPermission.RoleName = editModulePermission.RoleName; } if (viewResultsPermissions.Count() == 0) { // if the permission for this user/role is not already set... viewResultPermission.AllowAccess = true; viewResultPermission.PermissionID = ((PermissionInfo)PermissionController.GetPermissionByCodeAndKey(ModuleSecurity.PERMISSION_CODE, ModuleSecurity.VIEW_RESULTS_PERMISSION)[0]).PermissionID; viewResultPermission.ModuleID = module.ModuleID; modulePermissions.Add(viewResultPermission); ModulePermissionController.SaveModulePermissions(module); } } // Setting surveytracking: 0 = Cookie, 1 = Registered user // goes to Permission string surveyTrackingSetting = module.ModuleSettings["surveytracking"].ToString(); if (string.IsNullOrEmpty(surveyTrackingSetting)) { // if not defined: make it per user surveyTrackingSetting = "1"; } // If it is Cookie tracking: All users (RoleId: -1) have the permissions to participate in the survey // Otherwise: Registered Users have the permission to participate in the survey // Is there a better way than using the hard coded role IDs? int permittedRoleID = (surveyTrackingSetting == "0" ? -1 : 1); List <ModulePermissionInfo> participatePermissions = modulePermissions.Where(mp => mp.ModuleID == module.ModuleID && mp.PermissionCode == ModuleSecurity.PERMISSION_CODE && mp.PermissionKey == ModuleSecurity.PARTICIPATE_PERMISSION && mp.RoleID == permittedRoleID).ToList(); if (participatePermissions.Count() == 0) { ModulePermissionInfo participatePermission = new ModulePermissionInfo(); participatePermission.AllowAccess = true; participatePermission.RoleID = permittedRoleID; participatePermission.PermissionID = ((PermissionInfo)PermissionController.GetPermissionByCodeAndKey(ModuleSecurity.PERMISSION_CODE, ModuleSecurity.PARTICIPATE_PERMISSION)[0]).PermissionID; participatePermission.ModuleID = module.ModuleID; modulePermissions.Add(participatePermission); ModulePermissionController.SaveModulePermissions(module); } // Is Module a quiz? List <SurveysInfo> surveys = SurveysController.GetAll(module.ModuleID); bool isQuiz = false; List <SurveysInfo> statisticalSurveys = new List <SurveysInfo>(); foreach (SurveysInfo survey in surveys) { List <SurveyOptionsInfo> surveyOptions = SurveyOptionsController.GetAll(survey.SurveyID); int countCorrect = surveyOptions.Where(so => so.IsCorrect).Count(); if (countCorrect > 0) { isQuiz = true; } else { statisticalSurveys.Add(survey); } } if (isQuiz) { ModuleController.Instance.UpdateModuleSetting(module.ModuleID, "SurveyType", ((int)SurveyType.Quiz).ToString()); foreach (SurveysInfo statisticalSurvey in statisticalSurveys) { statisticalSurvey.IsStatistical = true; SurveysController.AddOrChange(statisticalSurvey, XmlDataProvider.SurveyOptionsToXml(SurveyOptionsController.GetAll(statisticalSurvey.SurveyID)), -1); } } string surveyClosingDate = module.ModuleSettings["surveyclosingdate"].ToString(); if (!(string.IsNullOrEmpty(surveyClosingDate))) { ModuleController.Instance.DeleteModuleSetting(module.ModuleID, "surveyclosingdate"); ModuleController.Instance.UpdateModuleSetting(module.ModuleID, "SurveyClosingDate", surveyClosingDate); } // Remove unused old settings ModuleController.Instance.DeleteModuleSetting(module.ModuleID, "surveyresultstype"); ModuleController.Instance.DeleteModuleSetting(module.ModuleID, "surveytracking"); ModuleController.Instance.DeleteModuleSetting(module.ModuleID, "surveyresulttemplate"); ModuleController.Instance.DeleteTabModuleSetting(module.TabModuleID, "surveygraphwidth"); } } } } } return(string.Format("Upgrading to version {0}.", version)); }
public string UpgradeModule(string Version) { try { switch (Version) { case "01.00.00": ModuleDefinitionInfo moduleDefinition = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("Messaging"); if (moduleDefinition != null) { //Add Module to User Profile Page for all Portals var objPortalController = new PortalController(); var objTabController = new TabController(); var objModuleController = new ModuleController(); ArrayList portals = objPortalController.GetPortals(); foreach (PortalInfo portal in portals) { int tabID = TabController.GetTabByTabPath(portal.PortalID, "//UserProfile", Null.NullString); if ((tabID != Null.NullInteger)) { TabInfo tab = objTabController.GetTab(tabID, portal.PortalID, true); if ((tab != null)) { int moduleId = Upgrade.AddModuleToPage(tab, moduleDefinition.ModuleDefID, "My Inbox", "", true); ModuleInfo objModule = objModuleController.GetModule(moduleId, tabID, false); var settings = new PortalSettings(portal); var modulePermission = (from ModulePermissionInfo p in objModule.ModulePermissions where p.ModuleID == moduleId && p.RoleID == settings.RegisteredRoleId && p.UserID == Null.NullInteger && p.PermissionKey == "EDIT" select p).SingleOrDefault(); if (modulePermission == null) { ArrayList permissions = new PermissionController().GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "EDIT"); PermissionInfo permission = null; if (permissions.Count == 1) { permission = permissions[0] as PermissionInfo; } if (permission != null) { modulePermission = new ModulePermissionInfo(permission) { ModuleID = moduleId, RoleID = settings.RegisteredRoleId, UserID = Null.NullInteger, AllowAccess = true }; objModule.ModulePermissions.Add(modulePermission); ModulePermissionController.SaveModulePermissions(objModule); } } } } } } break; } return("Success"); } catch (Exception exc) { DnnLog.Error(exc); return("Failed"); } }