Exemple #1
0
        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);
            }
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        /// <summary>
        /// Gets the TabPermissions from the Data Store
        /// </summary>
        private void GetTabPermissions()
        {
            TabPermissionController objTabPermissionController = new TabPermissionController();

            TabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(this.TabID, this.PortalId);
        }
Exemple #6
0
        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);
        }
        /// <summary>
        /// Gets the TabPermissions from the Data Store
        /// </summary>
        private void GetTabPermissions()
        {
            TabPermissionController objTabPermissionController = new TabPermissionController();
            TabPermissions = objTabPermissionController.GetTabPermissionsCollectionByTabID(this.TabID, this.PortalId);

        }
Exemple #8
0
        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);
        }