Пример #1
0
        public int AddModule(ModuleInfo objModule)
        {
            // add module
            if (Null.IsNull(objModule.ModuleID))
            {
                objModule.ModuleID = DataProvider.Instance().AddModule(objModule.PortalID, objModule.ModuleDefID, objModule.ModuleTitle, objModule.AllTabs, objModule.Header, objModule.Footer, objModule.StartDate, objModule.EndDate, objModule.InheritViewPermissions, objModule.IsDeleted);

                // set module permissions
                if (objModule.ModulePermissions != null)
                {
                    ModulePermissionController objModulePermissionController = new ModulePermissionController();
                    ModulePermissionCollection objModulePermissions;
                    objModulePermissions = objModule.ModulePermissions;

                    foreach (ModulePermissionInfo objModulePermission in objModulePermissions)
                    {
                        objModulePermission.ModuleID = objModule.ModuleID;
                        objModulePermissionController.AddModulePermission(objModulePermission, objModule.TabID);
                    }
                }
            }

            //This will fail if the page already contains this module
            try
            {
                // add tabmodule
                DataProvider.Instance().AddTabModule(objModule.TabID, objModule.ModuleID, objModule.ModuleOrder, objModule.PaneName, objModule.CacheTime, objModule.Alignment, objModule.Color, objModule.Border, objModule.IconFile, (int)objModule.Visibility, objModule.ContainerSrc, objModule.DisplayTitle, objModule.DisplayPrint, objModule.DisplaySyndicate);

                if (objModule.ModuleOrder == -1)
                {
                    // position module at bottom of pane
                    UpdateModuleOrder(objModule.TabID, objModule.ModuleID, objModule.ModuleOrder, objModule.PaneName);
                }
                else
                {
                    // position module in pane
                    UpdateTabModuleOrder(objModule.TabID, objModule.PortalID);
                }
            }
            catch
            {
                // module already in the page, ignore error
            }
            ClearCache(objModule.TabID);
            return(objModule.ModuleID);
        }
Пример #2
0
        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);
        }
Пример #3
0
        public void UpdateModule(ModuleInfo objModule)
        {
            // update module
            DataProvider.Instance().UpdateModule(objModule.ModuleID, objModule.ModuleTitle, objModule.AllTabs, objModule.Header, objModule.Footer, objModule.StartDate, objModule.EndDate, objModule.InheritViewPermissions, objModule.IsDeleted);

            // update module permissions
            ModulePermissionController objModulePermissionController = new ModulePermissionController();
            ModulePermissionCollection objCurrentModulePermissions;

            objCurrentModulePermissions = objModulePermissionController.GetModulePermissionsCollectionByModuleID(objModule.ModuleID, objModule.TabID);
            if (!objCurrentModulePermissions.CompareTo(objModule.ModulePermissions))
            {
                objModulePermissionController.DeleteModulePermissionsByModuleID(objModule.ModuleID);
                foreach (ModulePermissionInfo objModulePermission in objModule.ModulePermissions)
                {
                    objModulePermission.ModuleID = objModule.ModuleID;
                    if (objModule.InheritViewPermissions && objModulePermission.PermissionKey == "VIEW")
                    {
                        objModulePermissionController.DeleteModulePermission(objModulePermission.ModulePermissionID);
                    }
                    else
                    {
                        if (objModulePermission.AllowAccess)
                        {
                            objModulePermissionController.AddModulePermission(objModulePermission, objModule.TabID);
                        }
                    }
                }
            }

            if (!Null.IsNull(objModule.TabID))
            {
                // update tabmodule
                DataProvider.Instance().UpdateTabModule(objModule.TabID, objModule.ModuleID, objModule.ModuleOrder, objModule.PaneName, objModule.CacheTime, objModule.Alignment, objModule.Color, objModule.Border, objModule.IconFile, (int)objModule.Visibility, objModule.ContainerSrc, objModule.DisplayTitle, objModule.DisplayPrint, objModule.DisplaySyndicate);

                // update module order in pane
                UpdateModuleOrder(objModule.TabID, objModule.ModuleID, objModule.ModuleOrder, objModule.PaneName);

                // set the default module
                if (objModule.IsDefaultModule)
                {
                    PortalSettings.UpdatePortalSetting(objModule.PortalID, "defaultmoduleid", objModule.ModuleID.ToString());
                    PortalSettings.UpdatePortalSetting(objModule.PortalID, "defaulttabid", objModule.TabID.ToString());
                }

                // apply settings to all desktop modules in portal
                if (objModule.AllModules)
                {
                    TabController objTabs = new TabController();
                    foreach (KeyValuePair <int, TabInfo> tabPair in objTabs.GetTabsByPortal(objModule.PortalID))
                    {
                        TabInfo objTab = tabPair.Value;
                        if (!objTab.IsAdminTab)
                        {
                            foreach (KeyValuePair <int, ModuleInfo> modulePair in GetTabModules(objTab.TabID))
                            {
                                ModuleInfo objTargetModule = modulePair.Value;
                                DataProvider.Instance().UpdateTabModule(objTargetModule.TabID, objTargetModule.ModuleID, objTargetModule.ModuleOrder, objTargetModule.PaneName, objModule.CacheTime, objModule.Alignment, objModule.Color, objModule.Border, objModule.IconFile, (int)objModule.Visibility, objModule.ContainerSrc, objModule.DisplayTitle, objModule.DisplayPrint, objModule.DisplaySyndicate);
                            }
                        }
                    }
                }
            }
            ClearCache(objModule.TabID);
        }