public void CopyPermissionsToChildren(ArrayList tabs, TabPermissionCollection newPermissions) { TabPermissionController objTabPermissionController = new TabPermissionController(); foreach (TabInfo objTab in tabs) { TabPermissionCollection objCurrentTabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(objTab.TabID, objTab.PortalID); if (!(objCurrentTabPermissions.CompareTo(newPermissions))) { objTabPermissionController.DeleteTabPermissionsByTabID(objTab.TabID); foreach (TabPermissionInfo objTabPermission in newPermissions) { if (objTabPermission.AllowAccess) { objTabPermission.TabID = objTab.TabID; objTabPermissionController.AddTabPermission(objTabPermission); } } } } if (tabs.Count > 0) { DataCache.ClearTabsCache(((TabInfo)(tabs[0])).PortalID); } }
/// <param name="moduleId"></param> /// <param name="tabId"></param> /// <param name="permissionKey">You can use the constants, but for modules there are only /// those two</param> /// <returns></returns> public static bool canUserAccessModule(UserInfo user, int portalId, int tabId, ModuleInfo moduleInfo, string permissionKey) { var retVal = false; string permissionsString = null; if (moduleInfo.InheritViewPermissions) { var tabPermissionController = new TabPermissionController(); var tabPermissionCollection = tabPermissionController.GetTabPermissionsCollectionByTabID(tabId, portalId); permissionsString = tabPermissionController.GetTabPermissions(tabPermissionCollection, permissionKey); } else { var modulePermissionController = new ModulePermissionController(); var permissionCollection = modulePermissionController.GetModulePermissionsCollectionByModuleID(moduleInfo.ModuleID, tabId); permissionsString = modulePermissionController.GetModulePermissions(permissionCollection, permissionKey); } char[] splitter = { ';' }; var roles = permissionsString.Split(splitter); foreach (var role in roles) { if (role.Length > 0) { if (user != null && user.IsInRole(role)) { retVal = true; } else if (user == null && role.ToLower().Equals("all users")) { retVal = true; } } } return(retVal); }
public void UpdateTab(TabInfo objTab) { bool updateChildren = false; TabInfo objTmpTab = GetTab(objTab.TabID, objTab.PortalID, false); if (objTmpTab.TabName != objTab.TabName | objTmpTab.ParentId != objTab.ParentId) { updateChildren = true; } UpdatePortalTabOrder(objTab.PortalID, objTab.TabID, objTab.ParentId, 0, 0, objTab.IsVisible); 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, objTab.RefreshInterval, objTab.PageHeadText); TabPermissionController objTabPermissionController = new TabPermissionController(); TabPermissionCollection objTabPermissions = objTab.TabPermissions; TabPermissionCollection objCurrentTabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(objTab.TabID, objTab.PortalID); if (!(objCurrentTabPermissions.CompareTo(objTab.TabPermissions))) { objTabPermissionController.DeleteTabPermissionsByTabID(objTab.TabID); foreach (TabPermissionInfo objTabPermission in objTabPermissions) { if (objTabPermission.AllowAccess) { objTabPermissionController.AddTabPermission(objTabPermission); } } } if (updateChildren) { UpdateChildTabPath(objTab.TabID, objTab.PortalID); } ClearCache(objTab.PortalID); }
/// <remarks>Source/Template from SecurityContext.canUserAccessModule()</remarks> private static bool CanUserViewTab(UserInfo user, int portalId, int tabId, string permissionKey = "VIEW") { //var retVal = false; var tabPermissionController = new TabPermissionController(); var tabPermissionCollection = tabPermissionController.GetTabPermissionsCollectionByTabID(tabId, portalId); var permissionsString = tabPermissionController.GetTabPermissions(tabPermissionCollection, permissionKey); char[] splitter = { ';' }; var roles = permissionsString.Split(splitter); foreach (var role in roles.Where(role => role.Length > 0)) { if (user != null && user.IsInRole(role)) { return(true); } if (role.ToLower().Equals("all users")) { return(true); } } return(false); }
/// <summary> /// Gets the TabPermissions from the Data Store /// </summary> private void GetTabPermissions() { TabPermissionController objTabPermissionController = new TabPermissionController(); TabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(this.TabID, this.PortalId); }
private static TabInfo FillTabInfo(IDataReader dr, bool CheckForOpenDataReader) { TabInfo objTabInfo = new TabInfo(); TabPermissionController objTabPermissionController = new TabPermissionController(); // read datareader bool canContinue = true; if (CheckForOpenDataReader) { canContinue = false; if (dr.Read()) { canContinue = true; } } if (canContinue) { objTabInfo.TabID = Convert.ToInt32(Null.SetNull(dr["TabID"], objTabInfo.TabID)); objTabInfo.TabOrder = Convert.ToInt32(Null.SetNull(dr["TabOrder"], objTabInfo.TabOrder)); objTabInfo.PortalID = Convert.ToInt32(Null.SetNull(dr["PortalID"], objTabInfo.PortalID)); objTabInfo.TabName = Convert.ToString(Null.SetNull(dr["TabName"], objTabInfo.TabName)); objTabInfo.IsVisible = Convert.ToBoolean(Null.SetNull(dr["IsVisible"], objTabInfo.IsVisible)); objTabInfo.ParentId = Convert.ToInt32(Null.SetNull(dr["ParentId"], objTabInfo.ParentId)); objTabInfo.Level = Convert.ToInt32(Null.SetNull(dr["Level"], objTabInfo.Level)); objTabInfo.IconFile = Convert.ToString(Null.SetNull(dr["IconFile"], objTabInfo.IconFile)); objTabInfo.DisableLink = Convert.ToBoolean(Null.SetNull(dr["DisableLink"], objTabInfo.DisableLink)); objTabInfo.Title = Convert.ToString(Null.SetNull(dr["Title"], objTabInfo.Title)); objTabInfo.Description = Convert.ToString(Null.SetNull(dr["Description"], objTabInfo.Description)); objTabInfo.KeyWords = Convert.ToString(Null.SetNull(dr["KeyWords"], objTabInfo.KeyWords)); objTabInfo.IsDeleted = Convert.ToBoolean(Null.SetNull(dr["IsDeleted"], objTabInfo.IsDeleted)); objTabInfo.Url = Convert.ToString(Null.SetNull(dr["Url"], objTabInfo.Url)); objTabInfo.SkinSrc = Convert.ToString(Null.SetNull(dr["SkinSrc"], objTabInfo.SkinSrc)); objTabInfo.ContainerSrc = Convert.ToString(Null.SetNull(dr["ContainerSrc"], objTabInfo.ContainerSrc)); objTabInfo.TabPath = Convert.ToString(Null.SetNull(dr["TabPath"], objTabInfo.TabPath)); objTabInfo.StartDate = Convert.ToDateTime(Null.SetNull(dr["StartDate"], objTabInfo.StartDate)); objTabInfo.EndDate = Convert.ToDateTime(Null.SetNull(dr["EndDate"], objTabInfo.EndDate)); objTabInfo.HasChildren = Convert.ToBoolean(Null.SetNull(dr["HasChildren"], objTabInfo.HasChildren)); objTabInfo.RefreshInterval = Convert.ToInt32(Null.SetNull(dr["RefreshInterval"], objTabInfo.RefreshInterval)); objTabInfo.PageHeadText = Convert.ToString(Null.SetNull(dr["PageHeadText"], objTabInfo.PageHeadText)); if (objTabInfo != null) { objTabInfo.TabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(objTabInfo.TabID, objTabInfo.PortalID); objTabInfo.AdministratorRoles = objTabPermissionController.GetTabPermissions(objTabInfo.TabPermissions, "EDIT"); if (objTabInfo.AdministratorRoles == ";") { // this code is here for legacy support - the AdministratorRoles were stored as a concatenated list of roleids prior to DNN 3.0 try { objTabInfo.AdministratorRoles = Convert.ToString(Null.SetNull(dr["AdministratorRoles"], objTabInfo.AdministratorRoles)); } catch { // the AdministratorRoles field was removed from the Tabs table in 3.0 } } objTabInfo.AuthorizedRoles = objTabPermissionController.GetTabPermissions(objTabInfo.TabPermissions, "VIEW"); if (objTabInfo.AuthorizedRoles == ";") { // this code is here for legacy support - the AuthorizedRoles were stored as a concatenated list of roleids prior to DNN 3.0 try { objTabInfo.AuthorizedRoles = Convert.ToString(Null.SetNull(dr["AuthorizedRoles"], objTabInfo.AuthorizedRoles)); } catch { // the AuthorizedRoles field was removed from the Tabs table in 3.0 } } } objTabInfo.BreadCrumbs = null; objTabInfo.Panes = null; objTabInfo.Modules = null; } else { objTabInfo = null; } return(objTabInfo); }
private ModuleInfo FillModuleInfo(IDataReader dr, bool CheckForOpenDataReader, bool IncludePermissions) { ModuleInfo objModuleInfo = new ModuleInfo(); ModulePermissionController objModulePermissionController = new ModulePermissionController(); // read datareader bool canContinue = true; if (CheckForOpenDataReader) { canContinue = false; if (dr.Read()) { canContinue = true; } } if (canContinue) { objModuleInfo.PortalID = Convert.ToInt32(Null.SetNull(dr["PortalID"], objModuleInfo.PortalID)); objModuleInfo.TabID = Convert.ToInt32(Null.SetNull(dr["TabID"], objModuleInfo.TabID)); objModuleInfo.TabModuleID = Convert.ToInt32(Null.SetNull(dr["TabModuleID"], objModuleInfo.TabModuleID)); objModuleInfo.ModuleID = Convert.ToInt32(Null.SetNull(dr["ModuleID"], objModuleInfo.ModuleID)); objModuleInfo.ModuleDefID = Convert.ToInt32(Null.SetNull(dr["ModuleDefID"], objModuleInfo.ModuleDefID)); objModuleInfo.ModuleOrder = Convert.ToInt32(Null.SetNull(dr["ModuleOrder"], objModuleInfo.ModuleOrder)); objModuleInfo.PaneName = Convert.ToString(Null.SetNull(dr["PaneName"], objModuleInfo.PaneName)); objModuleInfo.ModuleTitle = Convert.ToString(Null.SetNull(dr["ModuleTitle"], objModuleInfo.ModuleTitle)); objModuleInfo.CacheTime = Convert.ToInt32(Null.SetNull(dr["CacheTime"], objModuleInfo.CacheTime)); objModuleInfo.Alignment = Convert.ToString(Null.SetNull(dr["Alignment"], objModuleInfo.Alignment)); objModuleInfo.Color = Convert.ToString(Null.SetNull(dr["Color"], objModuleInfo.Color)); objModuleInfo.Border = Convert.ToString(Null.SetNull(dr["Border"], objModuleInfo.Border)); objModuleInfo.IconFile = Convert.ToString(Null.SetNull(dr["IconFile"], objModuleInfo.IconFile)); objModuleInfo.AllTabs = Convert.ToBoolean(Null.SetNull(dr["AllTabs"], objModuleInfo.AllTabs)); int intVisibility = 0; if (((Convert.ToInt32(Null.SetNull(dr["Visibility"], intVisibility))) == 0) || ((Convert.ToInt32(Null.SetNull(dr["Visibility"], intVisibility))) == Null.NullInteger)) { objModuleInfo.Visibility = VisibilityState.Maximized; } else if ((Convert.ToInt32(Null.SetNull(dr["Visibility"], intVisibility))) == 1) { objModuleInfo.Visibility = VisibilityState.Minimized; } else if ((Convert.ToInt32(Null.SetNull(dr["Visibility"], intVisibility))) == 2) { objModuleInfo.Visibility = VisibilityState.None; } objModuleInfo.IsDeleted = Convert.ToBoolean(Null.SetNull(dr["IsDeleted"], objModuleInfo.IsDeleted)); objModuleInfo.Header = Convert.ToString(Null.SetNull(dr["Header"], objModuleInfo.Header)); objModuleInfo.Footer = Convert.ToString(Null.SetNull(dr["Footer"], objModuleInfo.Footer)); objModuleInfo.StartDate = Convert.ToDateTime(Null.SetNull(dr["StartDate"], objModuleInfo.StartDate)); objModuleInfo.EndDate = Convert.ToDateTime(Null.SetNull(dr["EndDate"], objModuleInfo.EndDate)); objModuleInfo.ContainerSrc = Convert.ToString(Null.SetNull(dr["ContainerSrc"], objModuleInfo.ContainerSrc)); objModuleInfo.DisplayTitle = Convert.ToBoolean(Null.SetNull(dr["DisplayTitle"], objModuleInfo.DisplayTitle)); objModuleInfo.DisplayPrint = Convert.ToBoolean(Null.SetNull(dr["DisplayPrint"], objModuleInfo.DisplayPrint)); objModuleInfo.DisplaySyndicate = Convert.ToBoolean(Null.SetNull(dr["DisplaySyndicate"], objModuleInfo.DisplaySyndicate)); objModuleInfo.InheritViewPermissions = Convert.ToBoolean(Null.SetNull(dr["InheritViewPermissions"], objModuleInfo.InheritViewPermissions)); objModuleInfo.DesktopModuleID = Convert.ToInt32(Null.SetNull(dr["DesktopModuleID"], objModuleInfo.DesktopModuleID)); objModuleInfo.FriendlyName = Convert.ToString(Null.SetNull(dr["FriendlyName"], objModuleInfo.FriendlyName)); objModuleInfo.Description = Convert.ToString(Null.SetNull(dr["Description"], objModuleInfo.Description)); objModuleInfo.Version = Convert.ToString(Null.SetNull(dr["Version"], objModuleInfo.Version)); objModuleInfo.IsPremium = Convert.ToBoolean(Null.SetNull(dr["IsPremium"], objModuleInfo.IsPremium)); objModuleInfo.IsAdmin = Convert.ToBoolean(Null.SetNull(dr["IsAdmin"], objModuleInfo.IsAdmin)); objModuleInfo.BusinessControllerClass = Convert.ToString(Null.SetNull(dr["BusinessControllerClass"], objModuleInfo.BusinessControllerClass)); objModuleInfo.SupportedFeatures = Convert.ToInt32(Null.SetNull(dr["SupportedFeatures"], objModuleInfo.SupportedFeatures)); objModuleInfo.ModuleControlId = Convert.ToInt32(Null.SetNull(dr["ModuleControlId"], objModuleInfo.ModuleControlId)); objModuleInfo.ControlSrc = Convert.ToString(Null.SetNull(dr["ControlSrc"], objModuleInfo.ControlSrc)); int intControlType = 0; if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == -3) { objModuleInfo.ControlType = SecurityAccessLevel.ControlPanel; } else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == -2) { objModuleInfo.ControlType = SecurityAccessLevel.SkinObject; } else if (((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == -1) || ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == Null.NullInteger)) { objModuleInfo.ControlType = SecurityAccessLevel.Anonymous; } else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == 0) { objModuleInfo.ControlType = SecurityAccessLevel.View; } else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == 1) { objModuleInfo.ControlType = SecurityAccessLevel.Edit; } else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == 2) { objModuleInfo.ControlType = SecurityAccessLevel.Admin; } else if ((Convert.ToInt32(Null.SetNull(dr["ControlType"], intControlType))) == 3) { objModuleInfo.ControlType = SecurityAccessLevel.Host; } objModuleInfo.ControlTitle = Convert.ToString(Null.SetNull(dr["ControlTitle"], objModuleInfo.ControlTitle)); objModuleInfo.HelpUrl = Convert.ToString(Null.SetNull(dr["HelpUrl"], objModuleInfo.HelpUrl)); if (IncludePermissions) { if (objModuleInfo != null) { //Get the Module permissions first (then we can parse the collection to determine the View/Edit Roles) objModuleInfo.ModulePermissions = objModulePermissionController.GetModulePermissionsCollectionByModuleID(objModuleInfo.ModuleID, objModuleInfo.TabID); objModuleInfo.AuthorizedEditRoles = objModulePermissionController.GetModulePermissions(objModuleInfo.ModulePermissions, "EDIT"); if (objModuleInfo.AuthorizedEditRoles == ";") { // this code is here for legacy support - the AuthorizedEditRoles were stored as a concatenated list of roleids prior to DNN 3.0 try { objModuleInfo.AuthorizedEditRoles = Convert.ToString(Null.SetNull(dr["AuthorizedEditRoles"], objModuleInfo.AuthorizedEditRoles)); } catch { // the AuthorizedEditRoles field was removed from the Tabs table in 3.0 } } try { if (objModuleInfo.InheritViewPermissions) { TabPermissionController objTabPermissionController = new TabPermissionController(); TabPermissionCollection objTabPermissionCollection = objTabPermissionController.GetTabPermissionsCollectionByTabID(objModuleInfo.TabID, objModuleInfo.PortalID); objModuleInfo.AuthorizedViewRoles = objTabPermissionController.GetTabPermissions(objTabPermissionCollection, "VIEW"); } else { objModuleInfo.AuthorizedViewRoles = objModulePermissionController.GetModulePermissions(objModuleInfo.ModulePermissions, "VIEW"); } if (objModuleInfo.AuthorizedViewRoles == ";") { // this code is here for legacy support - the AuthorizedViewRoles were stored as a concatenated list of roleids prior to DNN 3.0 try { objModuleInfo.AuthorizedViewRoles = Convert.ToString(Null.SetNull(dr["AuthorizedViewRoles"], objModuleInfo.AuthorizedViewRoles)); } catch { // the AuthorizedViewRoles field was removed from the Tabs table in 3.0 } } } catch { } } } } else { objModuleInfo = null; } return(objModuleInfo); }