public void GivenThereIsAPageCalled(string pageName, Table permissions) { var reset = false; var tabController = new TabController(); var tab = tabController.GetTabByName(pageName, PortalId); if (tab == null) { tab = new TabInfo { TabName = pageName, PortalID = 0 }; tab.TabID = tabController.AddTab(tab); foreach (var row in permissions.Rows) { var roleId = -1; var roleController = new RoleController(); if (row[0] == "All Users") { roleId = -1; } else { var role = roleController.GetRoleByName(PortalId, row[0]); if (role == null) { if (roleController.GetRoleByName(Null.NullInteger, row[0]) == null) { role = new RoleInfo { RoleName = row[0], RoleGroupID = Null.NullInteger }; roleId = roleController.AddRole(role); } } } var permissionController = new PermissionController(); var permission = permissionController.GetPermissionByCodeAndKey("SYSTEM_TAB", row[1]); var tabPermission = new TabPermissionInfo { PermissionID = 3, TabID = tab.TabID, AllowAccess = true, RoleID = roleId }; tab.TabPermissions.Add(tabPermission); } tabController.UpdateTab(tab); reset = true; } Page = tab; if (reset) { Config.Touch(); } }
public void MustHaveTestPageAdded() { //Create a tabInfo obj, then use TabController AddTab Method? TabInfo newPage = new TabInfo(); newPage.TabName = "Test Page"; newPage.PortalID = 0; newPage.SkinSrc = "[G]Skins/DarkKnight/Home-Mega-Menu.ascx"; newPage.ContainerSrc = "[G]Containers/DarkKnight/SubTitle_Grey.ascx"; TabController tabController = new TabController(); var tab = tabController.GetTabByName("Test Page", 0); if (tab == null) { try { tabController.AddTab(newPage); } catch (Exception exc) { Assert.IsTrue(false, "Add Tab result: " + exc.Message); } //tabController.AddTab(newPage); newPage = tabController.GetTabByName("Test Page", 0); TabPermissionInfo tabPermission = new TabPermissionInfo(); tabPermission.PermissionID = 3; tabPermission.TabID = newPage.TabID; tabPermission.AllowAccess = true; tabPermission.RoleID = 0; newPage.TabPermissions.Add(tabPermission); try { tabController.UpdateTab(newPage); } catch (Exception exc) { Assert.IsTrue(false, "Update Tab result: " + exc.Message); } newPage = tabController.GetTabByName("Test Page", 0); tabPermission.RoleID = 0; tabPermission.PermissionID = 4; tabPermission.TabID = newPage.TabID; tabPermission.AllowAccess = true; newPage.TabPermissions.Add(tabPermission); try { tabController.UpdateTab(newPage); } catch (Exception exc) { Assert.IsTrue(false, "Update Tab Permissions result: " + exc.Message); } Thread.Sleep(1500); } }
public void UpdateTabPermission(TabPermissionInfo objTabPermission) { DataProvider.Instance().UpdateTabPermission(objTabPermission.TabPermissionID, objTabPermission.TabID, objTabPermission.PermissionID, objTabPermission.RoleID, objTabPermission.AllowAccess, objTabPermission.UserID, UserController.GetCurrentUserInfo().UserID); ClearPermissionCache(objTabPermission.TabID); }
public int Add(TabPermissionInfo value, bool checkForDuplicates) { int id = Null.NullInteger; if (!checkForDuplicates) { id = Add(value); } else { bool isMatch = false; foreach (PermissionInfoBase permission in List) { if (permission.PermissionID == value.PermissionID && permission.UserID == value.UserID && permission.RoleID == value.RoleID) { isMatch = true; break; } } if (!isMatch) { id = Add(value); } } return id; }
public void Remove(TabPermissionInfo value) { List.Remove(value); }
public int IndexOf(TabPermissionInfo value) { return List.IndexOf(value); }
public void UpdateTabPermission( TabPermissionInfo objTabPermission ) { DataProvider.Instance().UpdateTabPermission( objTabPermission.TabPermissionID, objTabPermission.TabID, objTabPermission.PermissionID, objTabPermission.RoleID, objTabPermission.AllowAccess ); ClearPermissionCache( objTabPermission.TabID ); }
private TabPermissionInfo FillTabPermissionInfo( IDataReader dr, bool CheckForOpenDataReader ) { TabPermissionInfo permissionInfo = null; // read datareader bool canContinue = true; if( CheckForOpenDataReader ) { canContinue = false; if( dr.Read() ) { canContinue = true; } } if( canContinue ) { permissionInfo = new TabPermissionInfo(); permissionInfo.TabPermissionID = (int)( Null.SetNull( dr["TabPermissionID"], permissionInfo.TabPermissionID ) ); permissionInfo.TabID = (int)( Null.SetNull( dr["TabID"], permissionInfo.TabID ) ); permissionInfo.PermissionID = (int)( Null.SetNull( dr["PermissionID"], permissionInfo.PermissionID ) ); permissionInfo.RoleID = (int)( Null.SetNull( dr["RoleID"], permissionInfo.RoleID ) ); permissionInfo.RoleName = (string)( Null.SetNull( dr["RoleName"], permissionInfo.RoleName ) ); permissionInfo.AllowAccess = (bool)( Null.SetNull( dr["AllowAccess"], permissionInfo.AllowAccess ) ); permissionInfo.PermissionCode = (string)( Null.SetNull( dr["PermissionCode"], permissionInfo.PermissionCode ) ); permissionInfo.PermissionKey = (string)( Null.SetNull( dr["PermissionKey"], permissionInfo.PermissionKey ) ); permissionInfo.PermissionName = (string)( Null.SetNull( dr["PermissionName"], permissionInfo.PermissionName ) ); } else { permissionInfo = null; } return permissionInfo; }
/// <summary> /// AddPagePermission adds a TabPermission to a TabPermission Collection /// </summary> /// <param name="permissions">Page Permissions Collection for this page</param> /// <param name="key">The Permission key</param> /// <param name="roleId">The role given the permission</param> private static void AddPagePermission(ref TabPermissionCollection permissions, string key, int roleId) { PermissionController objPermissionController = new PermissionController(); PermissionInfo objPermission = (PermissionInfo)objPermissionController.GetPermissionByCodeAndKey("SYSTEM_TAB", key)[0]; TabPermissionInfo objTabPermission = new TabPermissionInfo(); objTabPermission.PermissionID = objPermission.PermissionID; objTabPermission.RoleID = roleId; objTabPermission.AllowAccess = true; permissions.Add(objTabPermission); }
/// ----------------------------------------------------------------------------- /// <summary> /// AddPagePermission adds a TabPermission to a TabPermission Collection /// </summary> /// <param name="permissions">Page Permissions Collection for this page</param> /// <param name="key">The Permission key</param> /// <param name="roleId">The role given the permission</param> /// <history> /// [cnurse] 11/11/2004 created /// </history> /// ----------------------------------------------------------------------------- private static void AddPagePermission(TabPermissionCollection permissions, string key, int roleId) { var permissionController = new PermissionController(); var permission = (PermissionInfo) permissionController.GetPermissionByCodeAndKey("SYSTEM_TAB", key)[0]; var tabPermission = new TabPermissionInfo {PermissionID = permission.PermissionID, RoleID = roleId, AllowAccess = true}; permissions.Add(tabPermission); }
public void Remove(TabPermissionInfo value) { List.Remove(value); }
public void Insert(int index, TabPermissionInfo value) { List.Insert(index, value); }
public int IndexOf(TabPermissionInfo value) { return(List.IndexOf(value)); }
private static void UpgradeToVersion500() { ArrayList portals = PortalController.Instance.GetPortals(); //Add Edit Permissions for Admin Tabs to legacy portals var permissionController = new PermissionController(); ArrayList permissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_TAB", "EDIT"); int permissionId = -1; if (permissions.Count == 1) { var permission = permissions[0] as PermissionInfo; if (permission != null) { permissionId = permission.PermissionID; } foreach (PortalInfo portal in portals) { var adminTab = TabController.Instance.GetTab(portal.AdminTabId, portal.PortalID, true); if (adminTab != null) { var tabPermission = new TabPermissionInfo { TabID = adminTab.TabID, PermissionID = permissionId, AllowAccess = true, RoleID = portal.AdministratorRoleId }; if (!TabPermissionExists(tabPermission, portal.PortalID)) { adminTab.TabPermissions.Add(tabPermission); } //Save Tab Permissions to Data Base TabPermissionController.SaveTabPermissions(adminTab); foreach (var childTab in TabController.GetTabsByParent(portal.AdminTabId, portal.PortalID)) { tabPermission = new TabPermissionInfo { TabID = childTab.TabID, PermissionID = permissionId, AllowAccess = true, RoleID = portal.AdministratorRoleId }; if (!TabPermissionExists(tabPermission, portal.PortalID)) { childTab.TabPermissions.Add(tabPermission); } //Save Tab Permissions to Data Base TabPermissionController.SaveTabPermissions(childTab); } } } } //Update Host/Admin modules Visibility setting bool superTabProcessed = Null.NullBoolean; foreach (PortalInfo portal in portals) { if (!superTabProcessed) { //Process Host Tabs foreach (TabInfo childTab in TabController.GetTabsByParent(portal.SuperTabId, Null.NullInteger)) { foreach (ModuleInfo tabModule in ModuleController.Instance.GetTabModules(childTab.TabID).Values) { tabModule.Visibility = VisibilityState.None; ModuleController.Instance.UpdateModule(tabModule); } } } //Process Portal Tabs foreach (TabInfo childTab in TabController.GetTabsByParent(portal.AdminTabId, portal.PortalID)) { foreach (ModuleInfo tabModule in ModuleController.Instance.GetTabModules(childTab.TabID).Values) { tabModule.Visibility = VisibilityState.None; ModuleController.Instance.UpdateModule(tabModule); } } } //Upgrade PortalDesktopModules to support new "model" permissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_DESKTOPMODULE", "DEPLOY"); if (permissions.Count == 1) { var permission = permissions[0] as PermissionInfo; if (permission != null) { permissionId = permission.PermissionID; } foreach (PortalInfo portal in portals) { foreach (DesktopModuleInfo desktopModule in DesktopModuleController.GetDesktopModules(Null.NullInteger).Values) { if (!desktopModule.IsPremium) { //Parse the permissions var deployPermissions = new DesktopModulePermissionCollection(); DesktopModulePermissionInfo deployPermission; // if Not IsAdmin add Registered Users if (!desktopModule.IsAdmin) { deployPermission = new DesktopModulePermissionInfo { PermissionID = permissionId, AllowAccess = true, RoleID = portal.RegisteredRoleId }; deployPermissions.Add(deployPermission); } // if Not a Host Module add Administrators const string hostModules = "Portals, SQL, HostSettings, Scheduler, SearchAdmin, Lists, SkinDesigner, Extensions"; if (!hostModules.Contains(desktopModule.ModuleName)) { deployPermission = new DesktopModulePermissionInfo { PermissionID = permissionId, AllowAccess = true, RoleID = portal.AdministratorRoleId }; deployPermissions.Add(deployPermission); } //Add Portal/Module to PortalDesktopModules DesktopModuleController.AddDesktopModuleToPortal(portal.PortalID, desktopModule, deployPermissions, false); } } DataCache.ClearPortalCache(portal.PortalID, true); } } LegacyUtil.ProcessLegacyModules(); LegacyUtil.ProcessLegacyLanguages(); LegacyUtil.ProcessLegacySkins(); LegacyUtil.ProcessLegacySkinControls(); }
/// <summary> /// UpgradeApplication - This overload is used for version specific application upgrade operations. /// </summary> /// <remarks> /// This should be used for file system modifications or upgrade operations which /// should only happen once. Database references are not recommended because future /// versions of the application may result in code incompatibilties. /// </remarks> /// <param name="Version">The Version being Upgraded</param> private static string UpgradeApplication(string Version) { string strExceptions = ""; try { switch (Version) { case "02.00.00": IDataReader dr; // change portal upload directory from GUID to ID - this only executes for version 2.0.0 string strServerPath = HttpContext.Current.Request.MapPath(Globals.ApplicationPath); string strPortalsDirMapPath = Globals.ApplicationMapPath + "/Portals/"; dr = DataProvider.Instance().GetPortals(); while (dr.Read()) { // if GUID folder exists if (Directory.Exists(strPortalsDirMapPath + dr["GUID"])) { // if ID folder exists ( this may happen because the 2.x release contains a default ID=0 folder ) if (Directory.Exists(strPortalsDirMapPath + dr["PortalID"])) { // rename the ID folder try { Directory.Move(strPortalsDirMapPath + dr["PortalID"], strServerPath + "\\Portals\\" + dr["PortalID"] + "_old"); } catch (Exception ex) { // error moving the directory - security issue? strExceptions += "Could Not Move Folder " + strPortalsDirMapPath + dr["GUID"] + " To " + strPortalsDirMapPath + dr["PortalID"] + ". Error: " + ex.Message + "\r\n"; } } // move GUID folder to ID folder try { Directory.Move(strPortalsDirMapPath + dr["GUID"], strPortalsDirMapPath + dr["PortalID"]); } catch (Exception ex) { // error moving the directory - security issue? strExceptions += "Could Not Move Folder " + strPortalsDirMapPath + dr["GUID"] + " To " + strPortalsDirMapPath + dr["PortalID"] + ". Error: " + ex.Message + "\r\n"; } } } dr.Close(); // copy the default style sheet to the default portal ( if it does not already exist ) if (File.Exists(strPortalsDirMapPath + "0\\portal.css") == false) { if (File.Exists(Globals.HostMapPath + "portal.css")) { File.Copy(Globals.HostMapPath + "portal.css", strPortalsDirMapPath + "0\\portal.css"); } } break; case "02.02.00": string strProviderPath = PortalSettings.GetProviderPath(); if (strProviderPath.StartsWith("ERROR:")) { strExceptions += strProviderPath; break; } //Optionally Install the memberRoleProvider bool installMemberRole = true; if (Config.GetSetting("InstallMemberRole") != null) { installMemberRole = bool.Parse(Config.GetSetting("InstallMemberRole")); } if (installMemberRole) { HtmlUtils.WriteFeedback(HttpContext.Current.Response, 0, "Installing MemberRole Provider:<br>"); strExceptions += InstallMemberRoleProvider(strProviderPath); } PortalController objPortalController = new PortalController(); ArrayList arrPortals; arrPortals = objPortalController.GetPortals(); int intViewModulePermissionID; int intEditModulePermissionID; int intViewTabPermissionID; int intEditTabPermissionID; int intReadFolderPermissionID; int intWriteFolderPermissionID; PermissionController objPermissionController = new PermissionController(); PermissionInfo objPermission = new PermissionInfo(); objPermission.PermissionCode = "SYSTEM_MODULE_DEFINITION"; objPermission.PermissionKey = "VIEW"; objPermission.PermissionName = "View"; objPermission.ModuleDefID = Null.NullInteger; objPermissionController.AddPermission(objPermission); objPermission.PermissionKey = "EDIT"; objPermission.PermissionName = "Edit"; objPermissionController.AddPermission(objPermission); objPermission.PermissionCode = "SYSTEM_TAB"; objPermission.PermissionKey = "VIEW"; objPermission.PermissionName = "View Tab"; objPermissionController.AddPermission(objPermission); objPermission.PermissionKey = "EDIT"; objPermission.PermissionName = "Edit Tab"; objPermissionController.AddPermission(objPermission); objPermission.PermissionCode = "SYSTEM_FOLDER"; objPermission.PermissionKey = "READ"; objPermission.PermissionName = "View Folder"; intReadFolderPermissionID = objPermissionController.AddPermission(objPermission); objPermission.PermissionKey = "WRITE"; objPermission.PermissionName = "Write to Folder"; intWriteFolderPermissionID = objPermissionController.AddPermission(objPermission); FolderController objFolderController = new FolderController(); FolderPermissionController objFolderPermissionController = new FolderPermissionController(); int PortalCount; for (PortalCount = 0; PortalCount <= arrPortals.Count - 1; PortalCount++) { PortalInfo objPortal = (PortalInfo)arrPortals[PortalCount]; int FolderID = objFolderController.AddFolder(objPortal.PortalID, "", (int)FolderController.StorageLocationTypes.InsecureFileSystem, true, false); FolderPermissionInfo objFolderPermission = new FolderPermissionInfo(); objFolderPermission.FolderID = FolderID; objFolderPermission.PermissionID = intReadFolderPermissionID; objFolderPermission.AllowAccess = true; objFolderPermission.RoleID = objPortal.AdministratorRoleId; objFolderPermissionController.AddFolderPermission(objFolderPermission); objFolderPermission.PermissionID = intWriteFolderPermissionID; objFolderPermissionController.AddFolderPermission(objFolderPermission); //TODO: loop through folders recursively here //in case they created any nested folders //and assign priveledges accordingly } //Transfer Users to the Membership Provider MembershipProvider provider = MembershipProvider.Instance(); provider.TransferUsersToMembershipProvider(); ModuleController objModuleController = new ModuleController(); ArrayList arrModules = objModuleController.GetAllModules(); ModulePermissionController objModulePermissionController = new ModulePermissionController(); int ModCount; for (ModCount = 0; ModCount <= arrModules.Count - 1; ModCount++) { ModuleInfo objModule = (ModuleInfo)arrModules[ModCount]; ModulePermissionInfo objModulePermission = new ModulePermissionInfo(); objModulePermission.ModuleID = objModule.ModuleID; int k; string[] roles; if (objModule.AuthorizedViewRoles.IndexOf(";") > 0) { roles = objModule.AuthorizedViewRoles.Split(';'); for (k = 0; k <= roles.Length - 1; k++) { if (Int32.TryParse(roles[k], out intViewModulePermissionID)) { objModulePermission.PermissionID = intViewModulePermissionID; objModulePermission.AllowAccess = true; objModulePermission.RoleID = Convert.ToInt32(roles[k]); objModulePermissionController.AddModulePermission(objModulePermission); } } } if (objModule.AuthorizedEditRoles.IndexOf(";") > 0) { roles = objModule.AuthorizedEditRoles.Split(';'); for (k = 0; k <= roles.Length - 1; k++) { if (Int32.TryParse(roles[k], out intEditModulePermissionID)) { objModulePermission.PermissionID = intEditModulePermissionID; objModulePermission.AllowAccess = true; objModulePermission.RoleID = Convert.ToInt32(roles[k]); objModulePermissionController.AddModulePermission(objModulePermission); } } } } ArrayList arrTabs; TabController objTabController = new TabController(); arrTabs = objTabController.GetAllTabs(); TabPermissionController objTabPermissionController = new TabPermissionController(); for (ModCount = 0; ModCount <= arrTabs.Count - 1; ModCount++) { TabInfo objTab = (TabInfo)arrTabs[ModCount]; TabPermissionInfo objTabPermission = new TabPermissionInfo(); objTabPermission.TabID = objTab.TabID; int k; string[] roles; if (objTab.AuthorizedRoles.IndexOf(";") > 0) { roles = objTab.AuthorizedRoles.Split(';'); for (k = 0; k <= roles.Length - 1; k++) { if (Int32.TryParse(roles[k], out intViewTabPermissionID)) { objTabPermission.PermissionID = intViewTabPermissionID; objTabPermission.AllowAccess = true; objTabPermission.RoleID = Convert.ToInt32(roles[k]); objTabPermissionController.AddTabPermission(objTabPermission); } } } if (objTab.AdministratorRoles.IndexOf(";") > 0) { roles = objTab.AdministratorRoles.Split(';'); for (k = 0; k <= roles.Length - 1; k++) { if (Int32.TryParse(roles[k], out intEditTabPermissionID)) { objTabPermission.PermissionID = intEditTabPermissionID; objTabPermission.AllowAccess = true; objTabPermission.RoleID = Convert.ToInt32(roles[k]); objTabPermissionController.AddTabPermission(objTabPermission); } } } } break; case "03.00.01": objTabController = new TabController(); arrTabs = objTabController.GetAllTabs(); int TabCount; for (TabCount = 0; TabCount <= arrTabs.Count - 1; TabCount++) { TabInfo objTab = (TabInfo)arrTabs[TabCount]; if (objTab != null) { objTab.TabPath = Globals.GenerateTabPath(objTab.ParentId, objTab.TabName); DataProvider.Instance().UpdateTab(objTab.TabID, objTab.TabName, objTab.IsVisible, objTab.DisableLink, objTab.ParentId, objTab.IconFile, objTab.Title, objTab.Description, objTab.KeyWords, objTab.IsDeleted, objTab.Url, objTab.SkinSrc, objTab.ContainerSrc, objTab.TabPath, objTab.StartDate, objTab.EndDate); } } break; case "03.00.06": //Need to clear the cache to pick up new HostSettings from the SQLDataProvider script DataCache.RemoveCache("GetHostSettings"); break; case "03.00.11": //Need to convert any Profile Data to use XmlSerialization as Binary Formatting //is not supported under Medium Trust //Get all the Profiles PersonalizationController objPersonalizationController = new PersonalizationController(); dr = DataProvider.Instance().GetAllProfiles(); while (dr.Read()) { //Load Profile Data (using Binary Formatter method) PersonalizationInfo objPersonalization = new PersonalizationInfo(); try { objPersonalization.UserId = Convert.ToInt32(Null.SetNull(dr["UserID"], objPersonalization.UserId)); } catch { } try { objPersonalization.PortalId = Convert.ToInt32(Null.SetNull(dr["PortalId"], objPersonalization.PortalId)); } catch { } objPersonalization.Profile = Globals.DeserializeHashTableBase64(dr["ProfileData"].ToString()); objPersonalization.IsModified = true; //Save Profile Data (using XML Serializer) objPersonalizationController.SaveProfile(objPersonalization); } dr.Close(); break; case "03.00.12": //If we are upgrading from a 3.0.x version then we need to upgrade the MembershipProvider if (upgradeMemberShipProvider) { strProviderPath = PortalSettings.GetProviderPath(); StreamReader objStreamReader; string strScript; //Upgrade provider HtmlUtils.WriteFeedback(HttpContext.Current.Response, 0, "Executing UpgradeMembershipProvider.sql<br>"); objStreamReader = File.OpenText(strProviderPath + "UpgradeMembershipProvider.sql"); strScript = objStreamReader.ReadToEnd(); objStreamReader.Close(); strExceptions += PortalSettings.ExecuteScript(strScript); } break; case "03.01.00": LogController objLogController = new LogController(); XmlDocument xmlDoc = new XmlDocument(); string xmlConfigFile = Globals.HostMapPath + "Logs\\LogConfig\\LogConfig.xml.resources"; try { xmlDoc.Load(xmlConfigFile); } catch (FileNotFoundException) { xmlConfigFile = Globals.HostMapPath + "Logs\\LogConfig\\LogConfigTemplate.xml.resources"; xmlDoc.Load(xmlConfigFile); } XmlNodeList LogType = xmlDoc.SelectNodes("/LogConfig/LogTypes/LogType"); foreach (XmlNode LogTypeInfo in LogType) { LogTypeInfo objLogTypeInfo = new LogTypeInfo(); objLogTypeInfo.LogTypeKey = LogTypeInfo.Attributes["LogTypeKey"].Value; objLogTypeInfo.LogTypeFriendlyName = LogTypeInfo.Attributes["LogTypeFriendlyName"].Value; objLogTypeInfo.LogTypeDescription = LogTypeInfo.Attributes["LogTypeDescription"].Value; objLogTypeInfo.LogTypeCSSClass = LogTypeInfo.Attributes["LogTypeCSSClass"].Value; objLogTypeInfo.LogTypeOwner = LogTypeInfo.Attributes["LogTypeOwner"].Value; objLogController.AddLogType(objLogTypeInfo); } XmlNodeList LogTypeConfig = xmlDoc.SelectNodes("/LogConfig/LogTypeConfig"); foreach (XmlNode LogTypeConfigInfo in LogTypeConfig) { LogTypeConfigInfo objLogTypeConfig = new LogTypeConfigInfo(); objLogTypeConfig.EmailNotificationIsActive = Convert.ToBoolean((LogTypeConfigInfo.Attributes["EmailNotificationStatus"].Value == "On") ? true : false); objLogTypeConfig.KeepMostRecent = LogTypeConfigInfo.Attributes["KeepMostRecent"].Value; objLogTypeConfig.LoggingIsActive = Convert.ToBoolean((LogTypeConfigInfo.Attributes["LoggingStatus"].Value == "On") ? true : false); objLogTypeConfig.LogTypeKey = LogTypeConfigInfo.Attributes["LogTypeKey"].Value; objLogTypeConfig.LogTypePortalID = LogTypeConfigInfo.Attributes["LogTypePortalID"].Value; objLogTypeConfig.MailFromAddress = LogTypeConfigInfo.Attributes["MailFromAddress"].Value; objLogTypeConfig.MailToAddress = LogTypeConfigInfo.Attributes["MailToAddress"].Value; objLogTypeConfig.NotificationThreshold = Convert.ToInt32(LogTypeConfigInfo.Attributes["NotificationThreshold"].Value); objLogTypeConfig.NotificationThresholdTime = Convert.ToInt32(LogTypeConfigInfo.Attributes["NotificationThresholdTime"].Value); objLogTypeConfig.NotificationThresholdTimeType = (LogTypeConfigInfo.NotificationThresholdTimeTypes)Enum.Parse(typeof(LogTypeConfigInfo.NotificationThresholdTimeTypes), LogTypeConfigInfo.Attributes["NotificationThresholdTimeType"].Value); objLogController.AddLogTypeConfigInfo(objLogTypeConfig); } ScheduleItem objScheduleItem = new ScheduleItem(); objScheduleItem.TypeFullName = "DotNetNuke.Services.Cache.PurgeCache, DOTNETNUKE"; objScheduleItem.AttachToEvent = ""; objScheduleItem.CatchUpEnabled = false; if (Globals.WebFarmEnabled) { objScheduleItem.Enabled = true; } else { objScheduleItem.Enabled = false; } objScheduleItem.ObjectDependencies = ""; objScheduleItem.RetainHistoryNum = 10; objScheduleItem.Servers = ""; objScheduleItem.TimeLapse = 2; objScheduleItem.TimeLapseMeasurement = "hz"; objScheduleItem.RetryTimeLapse = 30; objScheduleItem.RetryTimeLapseMeasurement = "m"; SchedulingProvider.Instance().AddSchedule(objScheduleItem); break; case "03.02.03": //add new SecurityException LogController objSecLogController = new LogController(); XmlDocument xmlSecDoc = new XmlDocument(); string xmlSecConfigFile = Globals.HostMapPath + "Logs\\LogConfig\\SecurityExceptionTemplate.xml.resources"; try { xmlSecDoc.Load(xmlSecConfigFile); } catch (FileNotFoundException) { // xmlConfigFile = Common.Globals.HostMapPath + "Logs\LogConfig\LogConfigTemplate.xml.resources" // xmlDoc.Load(xmlConfigFile) } LogType = xmlSecDoc.SelectNodes("/LogConfig/LogTypes/LogType"); foreach (XmlNode LogTypeInfo in LogType) { LogTypeInfo objLogTypeInfo = new LogTypeInfo(); objLogTypeInfo.LogTypeKey = LogTypeInfo.Attributes["LogTypeKey"].Value; objLogTypeInfo.LogTypeFriendlyName = LogTypeInfo.Attributes["LogTypeFriendlyName"].Value; objLogTypeInfo.LogTypeDescription = LogTypeInfo.Attributes["LogTypeDescription"].Value; objLogTypeInfo.LogTypeCSSClass = LogTypeInfo.Attributes["LogTypeCSSClass"].Value; objLogTypeInfo.LogTypeOwner = LogTypeInfo.Attributes["LogTypeOwner"].Value; objSecLogController.AddLogType(objLogTypeInfo); } LogTypeConfig = xmlSecDoc.SelectNodes("/LogConfig/LogTypeConfig"); foreach (XmlNode LogTypeConfigInfo in LogTypeConfig) { LogTypeConfigInfo objLogTypeConfig = new LogTypeConfigInfo(); objLogTypeConfig.EmailNotificationIsActive = Convert.ToBoolean((LogTypeConfigInfo.Attributes["EmailNotificationStatus"].Value == "On") ? true : false); objLogTypeConfig.KeepMostRecent = LogTypeConfigInfo.Attributes["KeepMostRecent"].Value; objLogTypeConfig.LoggingIsActive = Convert.ToBoolean((LogTypeConfigInfo.Attributes["LoggingStatus"].Value == "On") ? true : false); objLogTypeConfig.LogTypeKey = LogTypeConfigInfo.Attributes["LogTypeKey"].Value; objLogTypeConfig.LogTypePortalID = LogTypeConfigInfo.Attributes["LogTypePortalID"].Value; objLogTypeConfig.MailFromAddress = LogTypeConfigInfo.Attributes["MailFromAddress"].Value; objLogTypeConfig.MailToAddress = LogTypeConfigInfo.Attributes["MailToAddress"].Value; objLogTypeConfig.NotificationThreshold = Convert.ToInt32(LogTypeConfigInfo.Attributes["NotificationThreshold"].Value); objLogTypeConfig.NotificationThresholdTime = Convert.ToInt32(LogTypeConfigInfo.Attributes["NotificationThresholdTime"].Value); objLogTypeConfig.NotificationThresholdTimeType = (LogTypeConfigInfo.NotificationThresholdTimeTypes)Enum.Parse(typeof(LogTypeConfigInfo.NotificationThresholdTimeTypes), LogTypeConfigInfo.Attributes["NotificationThresholdTimeType"].Value); objSecLogController.AddLogTypeConfigInfo(objLogTypeConfig); } break; } } catch (Exception ex) { strExceptions += "Error: " + ex.Message + "\r\n"; try { Exceptions.Exceptions.LogException(ex); } catch { // ignore } } return strExceptions; }
public bool Contains(TabPermissionInfo value) { return(List.Contains(value)); }
private static void DeserializeTabPermissions(XmlNodeList nodeTabPermissions, TabInfo tab, bool isAdminTemplate) { var permissionController = new PermissionController(); int permissionID = 0; foreach (XmlNode tabPermissionNode in nodeTabPermissions) { string permissionKey = XmlUtils.GetNodeValue(tabPermissionNode.CreateNavigator(), "permissionkey"); string permissionCode = XmlUtils.GetNodeValue(tabPermissionNode.CreateNavigator(), "permissioncode"); string roleName = XmlUtils.GetNodeValue(tabPermissionNode.CreateNavigator(), "rolename"); bool allowAccess = XmlUtils.GetNodeValueBoolean(tabPermissionNode, "allowaccess"); ArrayList arrPermissions = permissionController.GetPermissionByCodeAndKey(permissionCode, permissionKey); int i; for (i = 0; i <= arrPermissions.Count - 1; i++) { var permission = (PermissionInfo)arrPermissions[i]; permissionID = permission.PermissionID; } int 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 portalController = new PortalController(); PortalInfo portal = portalController.GetPortal(tab.PortalID); RoleInfo role = TestableRoleController.Instance.GetRole(portal.PortalID, r => r.RoleName == roleName); if (role != null) { roleID = role.RoleID; } else { if (isAdminTemplate && roleName.ToLower() == "administrators") { roleID = portal.AdministratorRoleId; } } break; } if (roleID != int.MinValue) { var tabPermission = new TabPermissionInfo { TabID = tab.TabID, PermissionID = permissionID, RoleID = roleID, UserID = Null.NullInteger, AllowAccess = allowAccess }; bool canAdd = !tab.TabPermissions.Cast<TabPermissionInfo>() .Any(tp => tp.TabID == tabPermission.TabID && tp.PermissionID == tabPermission.PermissionID && tp.RoleID == tabPermission.RoleID && tp.UserID == tabPermission.UserID); if (canAdd) { tab.TabPermissions.Add(tabPermission); } } } }
public int AddTabPermission( TabPermissionInfo objTabPermission ) { int Id = Convert.ToInt32( DataProvider.Instance().AddTabPermission( objTabPermission.TabID, objTabPermission.PermissionID, objTabPermission.RoleID, objTabPermission.AllowAccess ) ); ClearPermissionCache( objTabPermission.TabID ); return Id; }
/// <summary> /// Gives the translator role edit rights. /// </summary> /// <param name="localizedTab">The localized tab.</param> /// <param name="users">The users.</param> public void GiveTranslatorRoleEditRights(TabInfo localizedTab, Dictionary<int, UserInfo> users) { var roleCtrl = new RoleController(); var permissionCtrl = new PermissionController(); ArrayList permissionsList = permissionCtrl.GetPermissionByCodeAndKey("SYSTEM_TAB", "EDIT"); string translatorRoles = PortalController.GetPortalSetting( string.Format("DefaultTranslatorRoles-{0}", localizedTab.CultureCode), localizedTab.PortalID, ""); foreach (string translatorRole in translatorRoles.Split(';')) { if (users != null) { foreach (UserInfo translator in roleCtrl.GetUsersByRoleName(localizedTab.PortalID, translatorRole)) { users[translator.UserID] = translator; } } if (permissionsList != null && permissionsList.Count > 0) { var translatePermisison = (PermissionInfo)permissionsList[0]; string roleName = translatorRole; RoleInfo role = TestableRoleController.Instance.GetRole(localizedTab.PortalID, r => r.RoleName == roleName); if (role != null) { TabPermissionInfo perm = localizedTab.TabPermissions.Where( tp => tp.RoleID == role.RoleID && tp.PermissionKey == "EDIT").SingleOrDefault(); if (perm == null) { //Create Permission var tabTranslatePermission = new TabPermissionInfo(translatePermisison) { RoleID = role.RoleID, AllowAccess = true, RoleName = roleName }; localizedTab.TabPermissions.Add(tabTranslatePermission); UpdateTab(localizedTab); } } } } }
public bool Contains(TabPermissionInfo value) { return List.Contains(value); }
private TabInfo CreatePage(TabInfo tab, int portalId, int parentTabId, string tabName, bool includeInMenu) { int id = -1; var tc = new TabController(); var tPermissions = new TabPermissionCollection(); var newTab = new TabInfo(); if (tab != null) { foreach (TabPermissionInfo t in tab.TabPermissions) { var tNew = new TabPermissionInfo { AllowAccess = t.AllowAccess, DisplayName = t.DisplayName, ModuleDefID = t.ModuleDefID, PermissionCode = t.PermissionCode, PermissionID = t.PermissionID, PermissionKey = t.PermissionKey, PermissionName = t.PermissionName, RoleID = t.RoleID, RoleName = t.RoleName, TabID = -1, TabPermissionID = -1, UserID = t.UserID, Username = t.Username }; newTab.TabPermissions.Add(t); } } newTab.ParentId = parentTabId; newTab.PortalID = portalId; newTab.TabName = tabName; newTab.Title = tabName; newTab.IsVisible = includeInMenu; newTab.SkinSrc = GetSkin(); id = tc.AddTab(newTab); tab = tc.GetTab(id, portalId, true); return tab; }
public void Insert(int index, TabPermissionInfo value) { List.Insert(index, value); }
protected void AddViewPermissions(TabInfo t) { foreach (PermissionInfo p in PermissionController.GetPermissionsByTab()) { if (p.PermissionKey == "VIEW") { TabPermissionInfo tpi = new TabPermissionInfo(); tpi.PermissionID = p.PermissionID; tpi.PermissionKey = p.PermissionKey; tpi.PermissionName = p.PermissionName; tpi.AllowAccess = true; tpi.RoleID = -1; //ID of all users t.TabPermissions.Add(tpi); } } }
public int Add(TabPermissionInfo value) { return List.Add(value); }
public static int SaveTabInfoObject(TabInfo tab, TabInfo relativeToTab, TabRelativeLocation location, string templateMapPath) { //Validation: //Tab name is required //Tab name is invalid string invalidType; if (!TabController.IsValidTabName(tab.TabName, out invalidType)) { switch (invalidType) { case "EmptyTabName": throw new DotNetNukeException("Page name is required.", DotNetNukeErrorCode.PageNameRequired); case "InvalidTabName": throw new DotNetNukeException("Page name is invalid.", DotNetNukeErrorCode.PageNameInvalid); } } else if ((Validate_IsCircularReference(tab.PortalID, tab.TabID))) { throw new DotNetNukeException("Cannot move page to that location.", DotNetNukeErrorCode.PageCircularReference); } bool usingDefaultLanguage = (tab.CultureCode == PortalSettings.Current.DefaultLanguage) || tab.CultureCode == null; if (PortalSettings.Current.ContentLocalizationEnabled) { if ((!usingDefaultLanguage)) { TabInfo defaultLanguageSelectedTab = tab.DefaultLanguageTab; if ((defaultLanguageSelectedTab == null)) { //get the siblings from the selectedtab and iterate through until you find a sibbling with a corresponding defaultlanguagetab //if none are found get a list of all the tabs from the default language and then select the last one var selectedTabSibblings = TabController.Instance.GetTabsByPortal(tab.PortalID).WithCulture(tab.CultureCode, true).AsList(); foreach (TabInfo sibling in selectedTabSibblings) { TabInfo siblingDefaultTab = sibling.DefaultLanguageTab; if (((siblingDefaultTab != null))) { defaultLanguageSelectedTab = siblingDefaultTab; break; } } //still haven't found it if ((defaultLanguageSelectedTab == null)) { var defaultLanguageTabs = TabController.Instance.GetTabsByPortal(tab.PortalID).WithCulture(PortalSettings.Current.DefaultLanguage, true).AsList(); defaultLanguageSelectedTab = defaultLanguageTabs[defaultLanguageTabs.Count]; //get the last tab } } relativeToTab = defaultLanguageSelectedTab; } } if ((location != TabRelativeLocation.NOTSET)) { //Check Host tab - don't allow adding before or after if ((IsHostConsolePage(relativeToTab) && (location == TabRelativeLocation.AFTER || location == TabRelativeLocation.BEFORE))) { throw new DotNetNukeException("You cannot add or move pages before or after the Host tab.", DotNetNukeErrorCode.HostBeforeAfterError); } TabInfo parentTab = GetParentTab(relativeToTab, location); string permissionList = "ADD,COPY,EDIT,MANAGE"; //Check permissions for Page Editors when moving or inserting if ((!PortalSecurity.IsInRole("Administrators"))) { if (((parentTab == null) || !TabPermissionController.HasTabPermission(parentTab.TabPermissions, permissionList))) { throw new DotNetNukeException("You do not have permissions to add or move pages to this location. You can only add or move pages as children of pages you can edit.", DotNetNukeErrorCode.PageEditorPermissionError); } } if (((parentTab != null))) { tab.ParentId = parentTab.TabID; tab.Level = parentTab.Level + 1; } else { tab.ParentId = Null.NullInteger; tab.Level = 0; } } if ((tab.TabID > Null.NullInteger && tab.TabID == tab.ParentId)) { throw new DotNetNukeException("Parent page is invalid.", DotNetNukeErrorCode.ParentTabInvalid); } tab.TabPath = Globals.GenerateTabPath(tab.ParentId, tab.TabName); //check whether have conflict between tab path and portal alias. if(TabController.IsDuplicateWithPortalAlias(PortalSettings.Current.PortalId, tab.TabPath)) { throw new DotNetNukeException("The page path is duplicate with a site alias", DotNetNukeErrorCode.DuplicateWithAlias); } try { if ((tab.TabID < 0)) { if ((tab.TabPermissions.Count == 0 && tab.PortalID != Null.NullInteger)) { //Give admin full permission ArrayList permissions = PermissionController.GetPermissionsByTab(); foreach (PermissionInfo permission in permissions) { TabPermissionInfo newTabPermission = new TabPermissionInfo(); newTabPermission.PermissionID = permission.PermissionID; newTabPermission.PermissionKey = permission.PermissionKey; newTabPermission.PermissionName = permission.PermissionName; newTabPermission.AllowAccess = true; newTabPermission.RoleID = PortalSettings.Current.AdministratorRoleId; tab.TabPermissions.Add(newTabPermission); } } PortalSettings _PortalSettings = PortalController.Instance.GetCurrentPortalSettings(); if (_PortalSettings.ContentLocalizationEnabled) { Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(tab.PortalID); tab.CultureCode = defaultLocale.Code; } else { tab.CultureCode = Null.NullString; } if ((location == TabRelativeLocation.AFTER && (relativeToTab != null))) { tab.TabID = TabController.Instance.AddTabAfter(tab, relativeToTab.TabID); } else if ((location == TabRelativeLocation.BEFORE && (relativeToTab != null))) { tab.TabID = TabController.Instance.AddTabBefore(tab, relativeToTab.TabID); } else { tab.TabID = TabController.Instance.AddTab(tab); } if (_PortalSettings.ContentLocalizationEnabled) { TabController.Instance.CreateLocalizedCopies(tab); } TabController.Instance.UpdateTabSetting(tab.TabID, "CacheProvider", ""); TabController.Instance.UpdateTabSetting(tab.TabID, "CacheDuration", ""); TabController.Instance.UpdateTabSetting(tab.TabID, "CacheIncludeExclude", "0"); TabController.Instance.UpdateTabSetting(tab.TabID, "IncludeVaryBy", ""); TabController.Instance.UpdateTabSetting(tab.TabID, "ExcludeVaryBy", ""); TabController.Instance.UpdateTabSetting(tab.TabID, "MaxVaryByCount", ""); } else { TabController.Instance.UpdateTab(tab); if ((location == TabRelativeLocation.AFTER && (relativeToTab != null))) { TabController.Instance.MoveTabAfter(tab, relativeToTab.TabID); } else if ((location == TabRelativeLocation.BEFORE && (relativeToTab != null))) { TabController.Instance.MoveTabBefore(tab, relativeToTab.TabID); } } } catch (Exception ex) { Logger.Error(ex); if (ex.Message.StartsWith("Page Exists")) { throw new DotNetNukeException(ex.Message, DotNetNukeErrorCode.PageExists); } } // create the page from a template if ((!string.IsNullOrEmpty(templateMapPath))) { XmlDocument xmlDoc = new XmlDocument(); try { xmlDoc.Load(templateMapPath); TabController.DeserializePanes(xmlDoc.SelectSingleNode("//portal/tabs/tab/panes"), tab.PortalID, tab.TabID, PortalTemplateModuleAction.Ignore, new Hashtable()); //save tab permissions DeserializeTabPermissions(xmlDoc.SelectNodes("//portal/tabs/tab/tabpermissions/permission"), tab); } catch (Exception ex) { Exceptions.LogException(ex); throw new DotNetNukeException("Unable to process page template.", ex, DotNetNukeErrorCode.DeserializePanesFailed); } } //todo: reload tab from db or send back tabid instead? return tab.TabID; }
public int AddTabPermission(TabPermissionInfo objTabPermission) { int id = Convert.ToInt32(DataProvider.Instance().AddTabPermission(objTabPermission.TabID, objTabPermission.PermissionID, objTabPermission.RoleID, objTabPermission.AllowAccess, objTabPermission.UserID, UserController.GetCurrentUserInfo().UserID)); ClearPermissionCache(objTabPermission.TabID); return id; }
public static void DeserializeTabPermissions(XmlNodeList nodeTabPermissions, TabInfo tab) { var permissionController = new PermissionController(); foreach (XmlNode xmlTabPermission in nodeTabPermissions) { var permissionKey = XmlUtils.GetNodeValue(xmlTabPermission.CreateNavigator(), "permissionkey"); var permissionCode = XmlUtils.GetNodeValue(xmlTabPermission.CreateNavigator(), "permissioncode"); var roleName = XmlUtils.GetNodeValue(xmlTabPermission.CreateNavigator(), "rolename"); var allowAccess = XmlUtils.GetNodeValueBoolean(xmlTabPermission, "allowaccess"); var permissions = permissionController.GetPermissionByCodeAndKey(permissionCode, permissionKey); var permissionId = permissions.Cast<PermissionInfo>().Last().PermissionID; 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 portal = PortalController.Instance.GetPortal(tab.PortalID); var role = RoleController.Instance.GetRole(portal.PortalID, r => r.RoleName == roleName); if (role != null) { roleId = role.RoleID; } break; } if (roleId != int.MinValue && !tab.TabPermissions.Cast<TabPermissionInfo>().Any(p => p.RoleID == roleId && p.PermissionID == permissionId)) { var tabPermission = new TabPermissionInfo { TabID = tab.TabID, PermissionID = permissionId, RoleID = roleId, AllowAccess = allowAccess }; tab.TabPermissions.Add(tabPermission); } } TabController.Instance.UpdateTab(tab); }
private int CreateTabFromParent(TabInfo objRoot, string tabName, int parentId) { var tab = new TabInfo { PortalID = PortalId, TabName = tabName, ParentId = parentId, Title = "", Description = "", KeyWords = "", IsVisible = true, DisableLink = false, IconFile = "", IconFileLarge = "", IsDeleted = false, Url = "", SkinSrc = "", ContainerSrc = "", CultureCode = Null.NullString }; if (objRoot != null) { tab.IsVisible = objRoot.IsVisible; tab.DisableLink = objRoot.DisableLink; tab.SkinSrc = objRoot.SkinSrc; tab.ContainerSrc = objRoot.ContainerSrc; } var portalSettings = PortalController.GetCurrentPortalSettings(); if (portalSettings.ContentLocalizationEnabled) { tab.CultureCode = LocaleController.Instance.GetDefaultLocale(tab.PortalID).Code; } var controller = new TabController(); var parentTab = controller.GetTab(parentId, -1, false); if (parentTab != null) { tab.PortalID = parentTab.PortalID; tab.ParentId = parentTab.TabID; if (parentTab.IsSuperTab) ShowPermissions(false); } else { //return Null.NullInteger; tab.PortalID = PortalId; tab.ParentId = Null.NullInteger; } tab.TabPath = Globals.GenerateTabPath(tab.ParentId, tab.TabName); //Check for invalid if (!IsValidTabName(tab.TabName)) { return Null.NullInteger; } //Validate Tab Path if (!IsValidTabPath(tab, tab.TabPath)) { return Null.NullInteger; } //Inherit permissions from parent tab.TabPermissions.Clear(); if (tab.PortalID != Null.NullInteger && objRoot != null) { tab.TabPermissions.AddRange(objRoot.TabPermissions); } else if (tab.PortalID != Null.NullInteger) { //Give admin full permission ArrayList permissions = PermissionController.GetPermissionsByTab(); foreach (PermissionInfo permission in permissions) { var newTabPermission = new TabPermissionInfo { PermissionID = permission.PermissionID, PermissionKey = permission.PermissionKey, PermissionName = permission.PermissionName, AllowAccess = true, RoleID = PortalSettings.Current.AdministratorRoleId }; tab.TabPermissions.Add(newTabPermission); } } //Inherit other information from Parent if (objRoot != null) { tab.Terms.Clear(); tab.StartDate = objRoot.StartDate; tab.EndDate = objRoot.EndDate; tab.RefreshInterval = objRoot.RefreshInterval; tab.SiteMapPriority = objRoot.SiteMapPriority; tab.PageHeadText = objRoot.PageHeadText; tab.IsSecure = objRoot.IsSecure; tab.PermanentRedirect = objRoot.PermanentRedirect; } var ctrl = new TabController(); tab.TabID = ctrl.AddTab(tab); ApplyDefaultTabTemplate(tab); //create localized tabs if content localization is enabled if (portalSettings.ContentLocalizationEnabled) { ctrl.CreateLocalizedCopies(tab); } ShowSuccessMessage(string.Format(Localization.GetString("TabCreated", LocalResourceFile), tab.TabName)); return tab.TabID; }
public static TabInfo InitTabInfoObject(TabInfo relativeToTab, TabRelativeLocation location) { if (((relativeToTab == null))) { if (((PortalSettings.Current != null) && (PortalSettings.Current.ActiveTab != null))) { relativeToTab = PortalSettings.Current.ActiveTab; } } var newTab = new TabInfo { TabID = Null.NullInteger, TabName = "", Title = "", IsVisible = false, DisableLink = false, IsDeleted = false, IsSecure = false, PermanentRedirect = false }; TabInfo parentTab = GetParentTab(relativeToTab, location); if (((parentTab != null))) { newTab.PortalID = parentTab.PortalID; newTab.ParentId = parentTab.TabID; newTab.Level = parentTab.Level + 1; if ((PortalSettings.Current.SSLEnabled)) { newTab.IsSecure = parentTab.IsSecure; //Inherit from parent } } else { newTab.PortalID = PortalSettings.Current.PortalId; newTab.ParentId = Null.NullInteger; newTab.Level = 0; } //Inherit permissions from parent newTab.TabPermissions.Clear(); if ((newTab.PortalID != Null.NullInteger && (parentTab != null))) { newTab.TabPermissions.AddRange(parentTab.TabPermissions); } else if ((newTab.PortalID != Null.NullInteger)) { //Give admin full permission ArrayList permissions = PermissionController.GetPermissionsByTab(); foreach (PermissionInfo permission in permissions) { TabPermissionInfo newTabPermission = new TabPermissionInfo(); newTabPermission.PermissionID = permission.PermissionID; newTabPermission.PermissionKey = permission.PermissionKey; newTabPermission.PermissionName = permission.PermissionName; newTabPermission.AllowAccess = true; newTabPermission.RoleID = PortalSettings.Current.AdministratorRoleId; newTab.TabPermissions.Add(newTabPermission); } } return newTab; }
private static bool TabPermissionExists(TabPermissionInfo tabPermission, int portalID) { return TabPermissionController.GetTabPermissions(tabPermission.TabID, portalID).Cast<TabPermissionInfo>().Any(permission => permission.TabID == tabPermission.TabID && permission.RoleID == tabPermission.RoleID && permission.PermissionID == tabPermission.PermissionID); }
/// <summary> /// Parses tab permissions /// </summary> /// <param name="nodeTabPermissions">Node for tab permissions</param> /// <param name="objPortal">Portal object of new portal</param> /// <param name="TabId">TabId of tab being processed</param> /// <param name="IsAdminTemplate">Flag to indicate if we are parsing admin template</param> /// <history> /// [Vicenç] 15/10/2004 Created /// </history> private TabPermissionCollection ParseTabPermissions( XmlNodeList nodeTabPermissions, PortalInfo objPortal, int TabId, bool IsAdminTemplate ) { TabPermissionCollection objTabPermissions = new TabPermissionCollection(); PermissionController objPermissionController = new PermissionController(); PermissionInfo objPermission = null; TabPermissionInfo objTabPermission = null; RoleController objRoleController = new RoleController(); RoleInfo objRole = null; int RoleID = 0; int PermissionID = 0; string PermissionKey = null; string PermissionCode = null; string RoleName = null; bool AllowAccess = false; ArrayList arrPermissions = null; int i = 0; foreach( XmlNode xmlTabPermission in nodeTabPermissions ) { PermissionKey = XmlUtils.GetNodeValue( xmlTabPermission, "permissionkey", "" ); PermissionCode = XmlUtils.GetNodeValue( xmlTabPermission, "permissioncode", "" ); RoleName = XmlUtils.GetNodeValue( xmlTabPermission, "rolename", "" ); AllowAccess = XmlUtils.GetNodeValueBoolean( xmlTabPermission, "allowaccess", false ); arrPermissions = objPermissionController.GetPermissionByCodeAndKey( PermissionCode, PermissionKey ); for( i = 0; i < arrPermissions.Count; i++ ) { objPermission = (PermissionInfo)( arrPermissions[i] ); PermissionID = objPermission.PermissionID; } RoleID = int.MinValue; if( RoleName == Globals.glbRoleAllUsersName ) { RoleID = Convert.ToInt32( Globals.glbRoleAllUsers ); } else if( RoleName == Globals.glbRoleUnauthUserName ) { RoleID = Convert.ToInt32( Globals.glbRoleUnauthUser ); } else { objRole = objRoleController.GetRoleByName( objPortal.PortalID, RoleName ); if( objRole != null ) { RoleID = objRole.RoleID; } else { // if parsing admin.template and role administrators redefined, use portal.administratorroleid if( IsAdminTemplate && RoleName.ToLower() == "administrators" ) { RoleID = objPortal.AdministratorRoleId; } } } // if role was found add, otherwise ignore if( RoleID != int.MinValue ) { objTabPermission = new TabPermissionInfo(); objTabPermission.TabID = TabId; objTabPermission.PermissionID = PermissionID; objTabPermission.RoleID = RoleID; objTabPermission.AllowAccess = AllowAccess; objTabPermissions.Add( objTabPermission ); } } return objTabPermissions; }
/// ----------------------------------------------------------------------------- /// <summary> /// AddPagePermission adds a TabPermission to a TabPermission Collection /// </summary> /// <param name="permissions">Page Permissions Collection for this page</param> /// <param name="key">The Permission key</param> /// <param name="roleId">The role given the permission</param> /// <history> /// [cnurse] 11/11/2004 created /// </history> /// ----------------------------------------------------------------------------- private static void AddPagePermission(TabPermissionCollection permissions, string key, int roleId) { DnnInstallLogger.InstallLogInfo(Localization.Localization.GetString("LogStart", Localization.Localization.GlobalResourceFile) + "AddPagePermission:" + key); var permissionController = new PermissionController(); var permission = (PermissionInfo)permissionController.GetPermissionByCodeAndKey("SYSTEM_TAB", key)[0]; var tabPermission = new TabPermissionInfo { PermissionID = permission.PermissionID, RoleID = roleId, AllowAccess = true }; permissions.Add(tabPermission); }
public int Add(TabPermissionInfo value) { return(List.Add(value)); }