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); } } } } }
public IActionResult Update([FromBody] ModuleModel model) { // Save module ModuleInfo module = new ModuleInfo(); module.ModuleId = model.Id; module.ModuleDefId = model.DefinitionId; module.PageId = model.PageId; module.PlaceId = model.PlaceId; module.Name = model.Name; module.IsDisabled = model.IsDisabled; _viewManager.SaveModule(module); // Handle static module if (model.IsStatic) { PlaceInfo place = _viewManager.GetPlace(model.PlaceId); place.ModuleId = module.ModuleId; _viewManager.SavePlace(place); } else if (model.Id > 0) { PlaceInfo place = _viewManager.GetPlace(model.PlaceId); if (place.ModuleId == module.ModuleId) { place.ModuleId = null; _viewManager.SavePlace(place); } } #region Permissions ModulePermissionInfo modulePermission = null; IList <ModulePermissionInfo> modulePermissions = _securityManager.GetModulePermissionsByModuleId(module.ModuleId); IList <PermissionInfo> permissions = _securityManager.GetPermissionsList(); foreach (var permission in permissions) { if (model.Permissions.Contains(permission.PermissionId) && !modulePermissions.Any(mp => mp.PermissionId == permission.PermissionId)) { modulePermission = new ModulePermissionInfo(); modulePermission.ModuleId = module.ModuleId; modulePermission.PermissionId = permission.PermissionId; _securityManager.SaveModulePermission(modulePermission); } else if (!model.Permissions.Contains(permission.PermissionId) && modulePermissions.Any(mp => mp.PermissionId == permission.PermissionId)) { _securityManager.DeleteModulePermission(module.ModuleId, permission.PermissionId); } } #endregion return(Ok(new { module.ModuleId })); }
/// <summary> /// Updates a Permission /// </summary> /// <param name="permission">The permission being updated</param> /// <param name="roleName">The name of the role</param> /// <param name="roleid">The id of the role</param> /// <param name="allowAccess">The value of the permission</param> protected override void UpdatePermission(PermissionInfo permission, int roleid, string roleName, bool allowAccess) { bool isMatch = false; ModulePermissionInfo objPermission; int permissionId = permission.PermissionID; //Search ModulePermission Collection for the permission to Update foreach (ModulePermissionInfo tempLoopVar_objPermission in ModulePermissions) { objPermission = tempLoopVar_objPermission; if (objPermission.PermissionID == permissionId && objPermission.RoleID == roleid) { //ModulePermission is in collection if (!allowAccess) { //Remove from collection as we only keep AllowAccess permissions ModulePermissions.Remove(objPermission); } isMatch = true; break; } } //ModulePermission not found so add new if (!isMatch && allowAccess) { objPermission = new ModulePermissionInfo(); objPermission.PermissionID = permissionId; objPermission.RoleName = roleName; objPermission.RoleID = roleid; objPermission.AllowAccess = allowAccess; objPermission.ModuleID = ModuleID; ModulePermissions.Add(objPermission); } }
/// <summary> /// Gets the Value of the permission /// </summary> /// <param name="objPerm">The permission being loaded</param> /// <param name="role">The role</param> /// <param name="column">The column of the Grid</param> /// <returns>A Boolean (True or False)</returns> protected override bool GetPermission(PermissionInfo objPerm, RoleInfo role, int column) { bool permission; if (InheritViewPermissionsFromTab && column == _ViewColumnIndex) { permission = false; } else { if (role.RoleID == AdministratorRoleId) { permission = true; } else { ModulePermissionInfo objModulePermission = ModuleHasPermission(objPerm.PermissionID, role.RoleID); if (objModulePermission != null) { permission = objModulePermission.AllowAccess; } else { permission = false; } } } return(permission); }
static void DeserializeModulePermissions(XmlNodeList nodeModulePermissions, int portalId, ModuleInfo module) { var objRoleController = new RoleController(); var objPermissionController = new PermissionController(); foreach (XmlNode node in nodeModulePermissions) { var permissionKey = XmlUtils.GetNodeValue(node, "permissionkey", ""); var permissionCode = XmlUtils.GetNodeValue(node, "permissioncode", ""); var roleName = XmlUtils.GetNodeValue(node, "rolename", ""); var allowAccess = XmlUtils.GetNodeValueBoolean(node, "allowaccess"); var roleId = int.MinValue; switch (roleName) { case Globals.glbRoleAllUsersName: roleId = Convert.ToInt32(Globals.glbRoleAllUsers); break; case Globals.glbRoleUnauthUserName: roleId = Convert.ToInt32(Globals.glbRoleUnauthUser); break; default: var objRole = objRoleController.GetRoleByName(portalId, roleName); if (objRole != null) { roleId = objRole.RoleID; } break; } if (roleId != int.MinValue) { var permissionId = Convert.ToInt32(-1); var arrPermissions = objPermissionController.GetPermissionByCodeAndKey(permissionCode, permissionKey); int i; for (i = 0; i <= arrPermissions.Count - 1; i++) { var permission = (PermissionInfo)(arrPermissions[i]); permissionId = permission.PermissionID; } // if role was found add, otherwise ignore if (permissionId != -1) { var modulePermission = new ModulePermissionInfo { ModuleID = module.ModuleID, PermissionID = permissionId, RoleID = roleId, AllowAccess = allowAccess }; module.ModulePermissions.Add(modulePermission); } } } }
private static void AddModulePermission(ModulePermissionCollection permissions, string key, int roleId) { var permissionController = new PermissionController(); var permission = (PermissionInfo)permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", key)[0]; var modulePermission = new ModulePermissionInfo { PermissionID = permission.PermissionID, RoleID = roleId, AllowAccess = true }; permissions.Add(modulePermission); }
/// <summary> /// Check if the Role has the permission specified /// </summary> /// <param name="permissionID">The Id of the Permission to check</param> /// <param name="roleId">The role id to check</param> private ModulePermissionInfo ModuleHasPermission(int permissionID, int roleId) { int i; for (i = 0; i <= ModulePermissions.Count - 1; i++) { ModulePermissionInfo objModulePermission = ModulePermissions[i]; if (objModulePermission.RoleID == roleId && permissionID == objModulePermission.PermissionID) { return(objModulePermission); } } return(null); }
/// <summary> /// Convert ModulePermissionInfo to ModulePermission. /// </summary> /// <param name="modulePermissionInfo">Module permission info</param> /// <returns>Module permission</returns> public static ModulePermission ToModulePermission(this ModulePermissionInfo modulePermissionInfo) { if (modulePermissionInfo is null) { return(null); } return(new ModulePermission() { ModulePermissionId = modulePermissionInfo.ModulePermissionId, ModuleId = modulePermissionInfo.ModuleId, PermissionId = modulePermissionInfo.PermissionId }); }
protected override void AddPermission(PermissionInfo permission, int roleId, string roleName, int userId, string displayName, bool allowAccess) { var objPermission = new ModulePermissionInfo(permission); objPermission.ModuleID = ModuleID; objPermission.RoleID = roleId; objPermission.RoleName = roleName; objPermission.AllowAccess = allowAccess; objPermission.UserID = userId; objPermission.DisplayName = displayName; _ModulePermissions.Add(objPermission, true); //Clear Permission List _PermissionsList = null; }
private ModulePermissionInfo AddModulePermission(ModuleInfo objModule, PermissionInfo permission, int roleId, int userId, bool allowAccess) { ModulePermissionInfo objModulePermission = new ModulePermissionInfo(); objModulePermission.ModuleID = objModule.ModuleID; objModulePermission.PermissionID = permission.PermissionID; objModulePermission.RoleID = roleId; objModulePermission.UserID = userId; objModulePermission.PermissionKey = permission.PermissionKey; objModulePermission.AllowAccess = allowAccess; if (!objModule.ModulePermissions.Contains(objModulePermission)) { objModule.ModulePermissions.Add(objModulePermission); } return(objModulePermission); }
protected override void AddPermission(PermissionInfo permission, int roleId, string roleName, int userId, string displayName, bool allowAccess) { var objPermission = new ModulePermissionInfo(permission) { ModuleID = this.ModuleID, RoleID = roleId, RoleName = roleName, AllowAccess = allowAccess, UserID = userId, DisplayName = displayName, }; this._ModulePermissions.Add(objPermission, true); // Clear Permission List this._PermissionsList = null; }
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); } }
/// ----------------------------------------------------------------------------- /// <summary> /// Parse the Permission Keys used to persist the Permissions in the ViewState /// </summary> /// <param name="Settings">A string array of settings</param> /// ----------------------------------------------------------------------------- private ModulePermissionInfo ParseKeys(string[] Settings) { var objModulePermission = new ModulePermissionInfo(); //Call base class to load base properties base.ParsePermissionKeys(objModulePermission, Settings); if (String.IsNullOrEmpty(Settings[2])) { objModulePermission.ModulePermissionID = -1; } else { objModulePermission.ModulePermissionID = Convert.ToInt32(Settings[2]); } objModulePermission.ModuleID = ModuleID; return(objModulePermission); }
private static ModulePermissionInfo AddModulePermission(ModuleInfo objModule, PermissionInfo permission, int roleId, int userId, bool allowAccess) { var objModulePermission = new ModulePermissionInfo { ModuleID = objModule.ModuleID, PermissionID = permission.PermissionID, RoleID = roleId, UserID = userId, PermissionKey = permission.PermissionKey, AllowAccess = allowAccess, }; // add the permission to the collection if (!objModule.ModulePermissions.Contains(objModulePermission)) { objModule.ModulePermissions.Add(objModulePermission); } return(objModulePermission); }
/// <inheritdoc cref="ISecurityManager.SaveModulePermissionAsync(ModulePermissionInfo)" /> public async Task <bool> SaveModulePermissionAsync(ModulePermissionInfo modulePermissionInfo) { ModulePermission modulePermission = modulePermissionInfo.ToModulePermission(); if (modulePermissionInfo.ModulePermissionId > 0) { _dbContext.KastraModulePermissions.Update(modulePermission); } else { _dbContext.KastraModulePermissions.Add(modulePermission); } await _dbContext.SaveChangesAsync(); // Clear cache _cacheEngine.ClearCacheContains("Module"); return(true); }
/// <summary> /// Parse the Permission Keys used to persist the Permissions in the ViewState /// </summary> /// <param name="Settings">A string array of settings</param> /// <param name="arrPermisions">An Arraylist to add the Permission object to</param> private void ParsePermissionKeys(string[] Settings, ArrayList arrPermisions) { ModulePermissionInfo objModulePermission; objModulePermission = new ModulePermissionInfo(); objModulePermission.PermissionID = Convert.ToInt32(Settings.Length > 1 ? Settings[1] : "1"); objModulePermission.RoleID = Convert.ToInt32(Settings.Length > 4 ? Settings[4] : "0"); if (Settings.Length < 2) { objModulePermission.ModulePermissionID = -1; } else { objModulePermission.ModulePermissionID = Convert.ToInt32(Settings[2].Equals("") ? "-1" : Settings[2]); } objModulePermission.RoleName = Settings.Length > 3 ? Settings[3] : String.Empty; objModulePermission.AllowAccess = true; objModulePermission.ModuleID = ModuleID; arrPermisions.Add(objModulePermission); }
private ModulePermissionInfo AddModulePermission(ModuleInfo objModule, PermissionInfo permission, int roleId, int userId, bool allowAccess) { var objModulePermission = new ModulePermissionInfo(); objModulePermission.ModuleID = objModule.ModuleID; objModulePermission.PermissionID = permission.PermissionID; objModulePermission.RoleID = roleId; objModulePermission.UserID = userId; objModulePermission.PermissionKey = permission.PermissionKey; objModulePermission.AllowAccess = allowAccess; // add the permission to the collection if (objModule.ModulePermissions == null) { objModule.ModulePermissions = new ModulePermissionCollection(); } if (!objModule.ModulePermissions.Contains(objModulePermission)) { objModule.ModulePermissions.Add(objModulePermission); } return(objModulePermission); }
private ModulePermissionInfo AddModulePermission(int moduleId, PermissionInfo permission, int roleId) { RoleController objRoles = new RoleController(); string roleName = Null.NullString; ModulePermissionInfo objModulePermission = new ModulePermissionInfo(); objModulePermission.ModuleID = moduleId; objModulePermission.PermissionID = permission.PermissionID; objModulePermission.RoleID = roleId; objModulePermission.PermissionKey = permission.PermissionKey; objModulePermission.AllowAccess = false; if (roleId == int.Parse(Globals.glbRoleUnauthUser)) { roleName = Globals.glbRoleUnauthUserName; } else if (roleId == int.Parse(Globals.glbRoleAllUsers)) { roleName = Globals.glbRoleAllUsersName; } else { RoleInfo objRole = objRoles.GetRole(objModulePermission.RoleID, PortalSettings.PortalId); if (objRole != null) { roleName = objRole.RoleName; } } if (!(string.IsNullOrEmpty(roleName))) { if (PortalSettings.ActiveTab.AdministratorRoles.IndexOf(roleName) != -1) { objModulePermission.AllowAccess = true; } } return(objModulePermission); }
private TabInfo CreateSubTab(string tabName, int departmentId, string settingsName = "department", int?parentTabID = null) { //Create Tab TabController tabController = new TabController(); TabInfo tab = new TabInfo(); tab.PortalID = PortalId; tab.TabName = tabName; tab.Title = tabName; //works for include in menu option. if true, will be shown in menus, else will not be shown, we have to redirect internally tab.IsVisible = true; tab.DisableLink = false; //if this tab has any parents provide parent tab id, so that it will be shown in parent tab menus sub menu list, else is NULL //and will be in main menu list if (parentTabID == null) { tab.ParentId = TabId; } else { tab.ParentId = parentTabID.Value; } tab.IsDeleted = false; tab.Url = ""; tab.IsSuperTab = false; //if true, it has no parents, else false tab.SkinSrc = "[G]Skins/Artfolio001/page.ascx"; //provide skin src, else will take default skin tab.ContainerSrc = "[G]Containers/Artfolio001/Block.ascx"; int tabId = tabController.AddTab(tab, true); //true to load defalut modules //Set Tab Permission TabPermissionController objTPC = new TabPermissionController(); TabPermissionInfo tpi = new TabPermissionInfo(); tpi.TabID = tabId; tpi.PermissionID = 3; //for view tpi.PermissionKey = "VIEW"; tpi.PermissionName = "View Tab"; tpi.AllowAccess = true; tpi.RoleID = 0; //Role ID of administrator objTPC.AddTabPermission(tpi); TabPermissionInfo tpi1 = new TabPermissionInfo(); tpi1.TabID = tabId; tpi1.PermissionID = 4; //for edit tpi1.PermissionKey = "EDIT"; tpi1.PermissionName = "Edit Tab"; tpi1.AllowAccess = true; tpi1.RoleID = 0; //Role ID of administrator objTPC.AddTabPermission(tpi1); TabPermissionInfo tpi4 = new TabPermissionInfo(); tpi4.TabID = tabId; tpi4.PermissionID = 3; tpi4.PermissionKey = "VIEW"; tpi4.PermissionName = "View Tab"; tpi4.AllowAccess = true; tpi4.RoleID = -1; //All users objTPC.AddTabPermission(tpi4); //Add Module DesktopModuleController objDMC = new DesktopModuleController(); DesktopModuleInfo desktopModuleInfo = objDMC.GetDesktopModuleByName("Clothes"); ModuleDefinitionInfo moduleDefinitionInfo = new ModuleDefinitionInfo(); ModuleInfo moduleInfo = new ModuleInfo(); moduleInfo.PortalID = PortalId; moduleInfo.TabID = tabId; moduleInfo.ModuleOrder = 1; moduleInfo.ModuleTitle = "Clothes"; moduleInfo.PaneName = "Clothes"; moduleInfo.ModuleDefID = 160; moduleInfo.CacheTime = moduleDefinitionInfo.DefaultCacheTime; //Default Cache Time is 0 moduleInfo.InheritViewPermissions = true; //Inherit View Permissions from Tab moduleInfo.AllTabs = false; moduleInfo.ModuleSettings[settingsName] = departmentId; ModuleController moduleController = new ModuleController(); int moduleId = moduleController.AddModule(moduleInfo); //Set Module Permission ModulePermissionController objMPC = new ModulePermissionController(); ModulePermissionInfo mpi1 = new ModulePermissionInfo(); mpi1.ModuleID = moduleId; mpi1.PermissionID = 1; //View Permission mpi1.AllowAccess = true; mpi1.RoleID = 0; //Role ID of Administrator objMPC.AddModulePermission(mpi1); ModulePermissionInfo mpi2 = new ModulePermissionInfo(); mpi2.ModuleID = moduleId; mpi2.PermissionID = 2; //Edit Permission mpi2.AllowAccess = true; mpi2.RoleID = 0; //Role ID of Administrator objMPC.AddModulePermission(mpi2); ModulePermissionInfo mpi5 = new ModulePermissionInfo(); mpi5.ModuleID = moduleId; mpi5.PermissionID = 1; //View Permission mpi5.AllowAccess = true; mpi5.RoleID = 1; //Role ID of Registered User objMPC.AddModulePermission(mpi5); return(tab); }
private static void DoAddNewModule(string title, int desktopModuleId, string paneName, int position, int permissionType, string align) { TabPermissionCollection objTabPermissions = PortalSettings.Current.ActiveTab.TabPermissions; var objPermissionController = new PermissionController(); var objModules = new ModuleController(); new EventLogController(); try { DesktopModuleInfo desktopModule; if (!DesktopModuleController.GetDesktopModules(PortalSettings.Current.PortalId).TryGetValue(desktopModuleId, out desktopModule)) { throw new ArgumentException("desktopModuleId"); } } catch (Exception ex) { Exceptions.LogException(ex); } foreach (ModuleDefinitionInfo objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values) { var objModule = new ModuleInfo(); objModule.Initialize(PortalSettings.Current.ActiveTab.PortalID); objModule.PortalID = PortalSettings.Current.ActiveTab.PortalID; objModule.TabID = PortalSettings.Current.ActiveTab.TabID; objModule.ModuleOrder = position; objModule.ModuleTitle = string.IsNullOrEmpty(title) ? objModuleDefinition.FriendlyName : title; objModule.PaneName = paneName; objModule.ModuleDefID = objModuleDefinition.ModuleDefID; if (objModuleDefinition.DefaultCacheTime > 0) { objModule.CacheTime = objModuleDefinition.DefaultCacheTime; if (PortalSettings.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger) { ModuleInfo defaultModule = objModules.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true); if ((defaultModule != null)) { objModule.CacheTime = defaultModule.CacheTime; } } } switch (permissionType) { case 0: objModule.InheritViewPermissions = true; break; case 1: objModule.InheritViewPermissions = false; break; } // get the default module view permissions ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); // get the permissions from the page foreach (TabPermissionInfo objTabPermission in objTabPermissions) { if (objTabPermission.PermissionKey == "VIEW" && permissionType == 0) { //Don't need to explicitly add View permisisons if "Same As Page" continue; } // get the system module permissions for the permissionkey ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey); // loop through the system module permissions int j; for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++) { // create the module permission var objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j]; if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == 1 && objTabPermission.PermissionKey != "EDIT") { //Only Page Editors get View permissions if "Page Editors Only" continue; } ModulePermissionInfo objModulePermission = AddModulePermission(objModule, objSystemModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); // ensure that every EDIT permission which allows access also provides VIEW permission if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess) { AddModulePermission(objModule, (PermissionInfo)arrSystemModuleViewPermissions[0], objModulePermission.RoleID, objModulePermission.UserID, true); } } //Get the custom Module Permissions, Assume that roles with Edit Tab Permissions //are automatically assigned to the Custom Module Permissions if (objTabPermission.PermissionKey == "EDIT") { ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID); // loop through the custom module permissions for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++) { // create the module permission var objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j]; AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); } } } if (PortalSettings.Current.ContentLocalizationEnabled) { Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalSettings.Current.PortalId); //check whether original tab is exists, if true then set culture code to default language, //otherwise set culture code to current. if (new TabController().GetTabByCulture(objModule.TabID, PortalSettings.Current.PortalId, defaultLocale) != null) { objModule.CultureCode = defaultLocale.Code; } else { objModule.CultureCode = PortalSettings.Current.CultureCode; } } else { objModule.CultureCode = Null.NullString; } objModule.AllTabs = false; objModule.Alignment = align; objModules.AddModule(objModule); } }
/// ----------------------------------------------------------------------------- /// <summary> /// Adds a New Module to a Pane. /// </summary> /// <param name="align">The alignment for the Modue.</param> /// <param name="desktopModuleId">The Id of the DesktopModule.</param> /// <param name="permissionType">The View Permission Type for the Module.</param> /// <param name="title">The Title for the resulting module.</param> /// <param name="paneName">The pane to add the module to.</param> /// <param name="position">The relative position within the pane for the module.</param> /// ----------------------------------------------------------------------------- protected void AddNewModule(string title, int desktopModuleId, string paneName, int position, ViewPermissionType permissionType, string align) { TabPermissionCollection objTabPermissions = this.PortalSettings.ActiveTab.TabPermissions; var objPermissionController = new PermissionController(); try { DesktopModuleInfo desktopModule; if (!DesktopModuleController.GetDesktopModules(this.PortalSettings.PortalId).TryGetValue(desktopModuleId, out desktopModule)) { throw new ArgumentException("desktopModuleId"); } } catch (Exception ex) { Exceptions.LogException(ex); } int UserId = -1; if (this.Request.IsAuthenticated) { UserInfo objUserInfo = UserController.Instance.GetCurrentUserInfo(); UserId = objUserInfo.UserID; } foreach (ModuleDefinitionInfo objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values) { var objModule = new ModuleInfo(); objModule.Initialize(this.PortalSettings.PortalId); objModule.PortalID = this.PortalSettings.PortalId; objModule.TabID = this.PortalSettings.ActiveTab.TabID; objModule.ModuleOrder = position; if (string.IsNullOrEmpty(title)) { objModule.ModuleTitle = objModuleDefinition.FriendlyName; } else { objModule.ModuleTitle = title; } objModule.PaneName = paneName; objModule.ModuleDefID = objModuleDefinition.ModuleDefID; if (objModuleDefinition.DefaultCacheTime > 0) { objModule.CacheTime = objModuleDefinition.DefaultCacheTime; if (PortalSettings.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger) { ModuleInfo defaultModule = ModuleController.Instance.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true); if (defaultModule != null) { objModule.CacheTime = defaultModule.CacheTime; } } } switch (permissionType) { case ViewPermissionType.View: objModule.InheritViewPermissions = true; break; case ViewPermissionType.Edit: objModule.InheritViewPermissions = false; break; } // get the default module view permissions ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); // get the permissions from the page foreach (TabPermissionInfo objTabPermission in objTabPermissions) { if (objTabPermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.View) { // Don't need to explicitly add View permisisons if "Same As Page" continue; } // get the system module permissions for the permissionkey ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey); // loop through the system module permissions int j; for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++) { PermissionInfo objSystemModulePermission; objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j]; if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.Edit && objTabPermission.PermissionKey != "EDIT") { // Only Page Editors get View permissions if "Page Editors Only" continue; } ModulePermissionInfo objModulePermission = this.AddModulePermission( objModule, objSystemModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); // ensure that every EDIT permission which allows access also provides VIEW permission if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess) { ModulePermissionInfo objModuleViewperm = this.AddModulePermission( objModule, (PermissionInfo)arrSystemModuleViewPermissions[0], objModulePermission.RoleID, objModulePermission.UserID, true); } } // Get the custom Module Permissions, Assume that roles with Edit Tab Permissions // are automatically assigned to the Custom Module Permissions if (objTabPermission.PermissionKey == "EDIT") { ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID); // loop through the custom module permissions for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++) { // create the module permission PermissionInfo objCustomModulePermission; objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j]; this.AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); } } } if (PortalSettings.Current.ContentLocalizationEnabled) { Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalSettings.Current.PortalId); // set the culture of the module to that of the tab var tabInfo = TabController.Instance.GetTab(objModule.TabID, PortalSettings.Current.PortalId, false); objModule.CultureCode = tabInfo != null ? tabInfo.CultureCode : defaultLocale.Code; } else { objModule.CultureCode = Null.NullString; } objModule.AllTabs = false; objModule.Alignment = align; ModuleController.Instance.AddModule(objModule); } }
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)); }
private int AddNewModule(TabInfo tab, string title, int desktopModuleId, string paneName, int permissionType, string align) { TabPermissionCollection objTabPermissions = tab.TabPermissions; var objPermissionController = new PermissionController(); int j; foreach (ModuleDefinitionInfo objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values) { var objModule = new ModuleInfo(); objModule.Initialize(tab.PortalID); objModule.PortalID = tab.PortalID; objModule.TabID = tab.TabID; if (string.IsNullOrEmpty(title)) { objModule.ModuleTitle = objModuleDefinition.FriendlyName; } else { objModule.ModuleTitle = title; } objModule.PaneName = paneName; objModule.ModuleDefID = objModuleDefinition.ModuleDefID; objModule.CacheTime = 0; objModule.InheritViewPermissions = true; objModule.DisplayTitle = false; // get the default module view permissions ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); // get the permissions from the page foreach (TabPermissionInfo objTabPermission in objTabPermissions) { if (objTabPermission.PermissionKey == "VIEW" && permissionType == 0) { //Don't need to explicitly add View permisisons if "Same As Page" continue; } // get the system module permissions for the permissionkey ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey); // loop through the system module permissions for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++) { // create the module permission PermissionInfo objSystemModulePermission = default(PermissionInfo); objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j]; if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == 1 && objTabPermission.PermissionKey != "EDIT") { //Only Page Editors get View permissions if "Page Editors Only" continue; } ModulePermissionInfo objModulePermission = AddModulePermission(objModule, objSystemModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); // ensure that every EDIT permission which allows access also provides VIEW permission if (objModulePermission.PermissionKey == "EDIT" & objModulePermission.AllowAccess) { ModulePermissionInfo objModuleViewperm = AddModulePermission(objModule, (PermissionInfo)arrSystemModuleViewPermissions[0], objModulePermission.RoleID, objModulePermission.UserID, true); } } } objModule.AllTabs = false; objModule.Alignment = align; return(ModuleController.Instance.AddModule(objModule)); } return(-1); }
/// <summary> /// Updates a Permission /// </summary> /// <param name="permission">The permission being updated</param> /// <param name="roleName">The name of the role</param> /// <param name="roleid">The id of the role</param> /// <param name="allowAccess">The value of the permission</param> protected override void UpdatePermission( PermissionInfo permission, int roleid, string roleName, bool allowAccess ) { bool isMatch = false; ModulePermissionInfo objPermission; int permissionId = permission.PermissionID; //Search ModulePermission Collection for the permission to Update foreach( ModulePermissionInfo tempLoopVar_objPermission in ModulePermissions ) { objPermission = tempLoopVar_objPermission; if( objPermission.PermissionID == permissionId && objPermission.RoleID == roleid ) { //ModulePermission is in collection if( !allowAccess ) { //Remove from collection as we only keep AllowAccess permissions ModulePermissions.Remove( objPermission ); } isMatch = true; break; } } //ModulePermission not found so add new if( !isMatch && allowAccess ) { objPermission = new ModulePermissionInfo(); objPermission.PermissionID = permissionId; objPermission.RoleName = roleName; objPermission.RoleID = roleid; objPermission.AllowAccess = allowAccess; objPermission.ModuleID = ModuleID; ModulePermissions.Add( objPermission ); } }
/// <summary> /// Parse the Permission Keys used to persist the Permissions in the ViewState /// </summary> /// <param name="Settings">A string array of settings</param> /// <param name="arrPermisions">An Arraylist to add the Permission object to</param> private void ParsePermissionKeys( string[] Settings, ArrayList arrPermisions ) { ModulePermissionInfo objModulePermission; objModulePermission = new ModulePermissionInfo(); objModulePermission.PermissionID = Convert.ToInt32( Settings.Length > 1 ? Settings[1] : "1" ); objModulePermission.RoleID = Convert.ToInt32(Settings.Length > 4 ? Settings[4] : "0" ); if (Settings.Length < 2) { objModulePermission.ModulePermissionID = -1; } else { objModulePermission.ModulePermissionID = Convert.ToInt32(Settings[2].Equals("") ? "-1" : Settings[2]); } objModulePermission.RoleName = Settings.Length > 3 ? Settings[3] : String.Empty; objModulePermission.AllowAccess = true; objModulePermission.ModuleID = ModuleID; arrPermisions.Add( objModulePermission ); }
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); } }
/// ----------------------------------------------------------------------------- /// <summary> /// Parse the Permission Keys used to persist the Permissions in the ViewState /// </summary> /// <param name="Settings">A string array of settings</param> /// <history> /// [cnurse] 01/09/2006 Documented /// </history> /// ----------------------------------------------------------------------------- private ModulePermissionInfo ParseKeys(string[] Settings) { var objModulePermission = new ModulePermissionInfo(); //Call base class to load base properties base.ParsePermissionKeys(objModulePermission, Settings); if (String.IsNullOrEmpty(Settings[2])) { objModulePermission.ModulePermissionID = -1; } else { objModulePermission.ModulePermissionID = Convert.ToInt32(Settings[2]); } objModulePermission.ModuleID = ModuleID; return objModulePermission; }
protected void AddNewModule(string title, int desktopModuleId, string paneName, int position, ViewPermissionType permissionType, string align) { TabPermissionCollection objTabPermissions = PortalSettings.ActiveTab.TabPermissions; PermissionController objPermissionController = new PermissionController(); ModuleController objModules = new ModuleController(); Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController(); int j; try { DesktopModuleInfo desktopModule = null; if (!DesktopModuleController.GetDesktopModules(PortalSettings.PortalId).TryGetValue(desktopModuleId, out desktopModule)) { throw new ArgumentException("desktopModuleId"); } } catch (Exception ex) { Exceptions.LogException(ex); } int UserId = -1; if (Request.IsAuthenticated) { UserInfo objUserInfo = UserController.GetCurrentUserInfo(); UserId = objUserInfo.UserID; } foreach (ModuleDefinitionInfo objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values) { ModuleInfo objModule = new ModuleInfo(); objModule.Initialize(PortalSettings.PortalId); objModule.PortalID = PortalSettings.PortalId; objModule.TabID = PortalSettings.ActiveTab.TabID; objModule.ModuleOrder = position; if (String.IsNullOrEmpty(title)) { objModule.ModuleTitle = objModuleDefinition.FriendlyName; } else { objModule.ModuleTitle = title; } objModule.PaneName = paneName; objModule.ModuleDefID = objModuleDefinition.ModuleDefID; if (objModuleDefinition.DefaultCacheTime > 0) { objModule.CacheTime = objModuleDefinition.DefaultCacheTime; if (PortalSettings.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger) { ModuleInfo defaultModule = objModules.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true); if (defaultModule != null) { objModule.CacheTime = defaultModule.CacheTime; } } } switch (permissionType) { case ViewPermissionType.View: objModule.InheritViewPermissions = true; break; case ViewPermissionType.Edit: objModule.InheritViewPermissions = false; break; } ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); foreach (TabPermissionInfo objTabPermission in objTabPermissions) { if (objTabPermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.View) { continue; } ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey); for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++) { PermissionInfo objSystemModulePermission; objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j]; if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.Edit && objTabPermission.PermissionKey != "EDIT") { continue; } ModulePermissionInfo objModulePermission = AddModulePermission(objModule, objSystemModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess) { ModulePermissionInfo objModuleViewperm = AddModulePermission(objModule, (PermissionInfo)arrSystemModuleViewPermissions[0], objModulePermission.RoleID, objModulePermission.UserID, true); } } if (objTabPermission.PermissionKey == "EDIT") { ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID); for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++) { PermissionInfo objCustomModulePermission; objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j]; AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess); } } } objModule.AllTabs = false; objModule.Alignment = align; objModules.AddModule(objModule); } }
protected void AddNewModule(string title, int desktopModuleId, string paneName, int position, ViewPermissionType permissionType, string align) { TabPermissionCollection objTabPermissions = PortalSettings.ActiveTab.TabPermissions; PermissionController objPermissionController = new PermissionController(); ModuleController objModules = new ModuleController(); ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController(); Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController(); int intIndex; try { DesktopModuleController objDesktopModules = new DesktopModuleController(); ArrayList arrDM = objDesktopModules.GetDesktopModulesByPortal(PortalSettings.PortalId); bool isSelectable = false; for (int intloop = 0; intloop < arrDM.Count; intloop++) { if (((DesktopModuleInfo)(arrDM[intloop])).DesktopModuleID == desktopModuleId) { isSelectable = true; break; } } if (isSelectable == false) { throw new Exception(); } } catch (Exception ex) { throw new Exception(ex.Message); } int UserId = -1; if (Request.IsAuthenticated) { UserInfo objUserInfo = UserController.GetCurrentUserInfo(); UserId = objUserInfo.UserID; } ArrayList arrModuleDefinitions = objModuleDefinitions.GetModuleDefinitions(desktopModuleId); for (intIndex = 0; intIndex < arrModuleDefinitions.Count; intIndex++) { ModuleDefinitionInfo objModuleDefinition = (ModuleDefinitionInfo)(arrModuleDefinitions[intIndex]); ModuleInfo objModule = new ModuleInfo(); objModule.Initialize(PortalSettings.PortalId); objModule.PortalID = PortalSettings.PortalId; objModule.TabID = PortalSettings.ActiveTab.TabID; objModule.ModuleOrder = position; if (String.IsNullOrEmpty(title)) { objModule.ModuleTitle = objModuleDefinition.FriendlyName; } else { objModule.ModuleTitle = title; } objModule.ModuleTitle = title; objModule.PaneName = paneName; objModule.ModuleDefID = objModuleDefinition.ModuleDefID; objModule.CacheTime = objModuleDefinition.DefaultCacheTime; // initialize module permissions ModulePermissionCollection objModulePermissions = new ModulePermissionCollection(); objModule.ModulePermissions = objModulePermissions; objModule.InheritViewPermissions = false; // get the default module view permissions ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW"); // get the permissions from the page foreach (TabPermissionInfo objTabPermission in objTabPermissions) { // get the system module permissions for the permissionkey ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey); // loop through the system module permissions int j; for (j = 0; j < arrSystemModulePermissions.Count; j++) { // create the module permission PermissionInfo objSystemModulePermission = (PermissionInfo)(arrSystemModulePermissions[j]); ModulePermissionInfo objModulePermission = AddModulePermission(objModule.ModuleID, objSystemModulePermission, objTabPermission.RoleID); // add the permission to the collection if (!(objModulePermissions.Contains(objModulePermission)) & objModulePermission.AllowAccess) { objModulePermissions.Add(objModulePermission); } // ensure that every EDIT permission which allows access also provides VIEW permission if (objModulePermission.PermissionKey == "EDIT" & objModulePermission.AllowAccess) { ModulePermissionInfo objModuleViewperm = new ModulePermissionInfo(); objModuleViewperm.ModuleID = objModulePermission.ModuleID; objModuleViewperm.PermissionID = ((PermissionInfo)(arrSystemModuleViewPermissions[0])).PermissionID; objModuleViewperm.RoleID = objModulePermission.RoleID; objModuleViewperm.PermissionKey = "VIEW"; objModuleViewperm.AllowAccess = true; if (!(objModulePermissions.Contains(objModuleViewperm))) { objModulePermissions.Add(objModuleViewperm); } } } //Get the custom Module Permissions, Assume that roles with Edit Tab Permissions //are automatically assigned to the Custom Module Permissions if (objTabPermission.PermissionKey == "EDIT") { ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID); // loop through the custom module permissions for (j = 0; j < arrCustomModulePermissions.Count; j++) { // create the module permission PermissionInfo objCustomModulePermission = (PermissionInfo)(arrCustomModulePermissions[j]); ModulePermissionInfo objModulePermission = AddModulePermission(objModule.ModuleID, objCustomModulePermission, objTabPermission.RoleID); // add the permission to the collection if (!(objModulePermissions.Contains(objModulePermission)) & objModulePermission.AllowAccess) { objModulePermissions.Add(objModulePermission); } } } } switch (permissionType) { case ViewPermissionType.View: objModule.InheritViewPermissions = true; break; case ViewPermissionType.Edit: objModule.ModulePermissions = objModulePermissions; break; } objModule.AllTabs = false; objModule.Visibility = VisibilityState.Maximized; objModule.Alignment = align; objModules.AddModule(objModule); objEventLog.AddLog(objModule, PortalSettings, UserId, "", Services.Log.EventLog.EventLogController.EventLogType.MODULE_CREATED); } }
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"); } }