/// -----------------------------------------------------------------------------
 /// <summary>
 /// AddDesktopModulePermission adds a DesktopModule Permission to the Database
 /// </summary>
 /// <param name="objDesktopModulePermission">The DesktopModule Permission to add</param>
 /// <history>
 /// 	[cnurse]	01/15/2008   Created
 /// </history>
 /// -----------------------------------------------------------------------------
 public static int AddDesktopModulePermission(DesktopModulePermissionInfo objDesktopModulePermission)
 {
     int Id = DataProvider.Instance().AddDesktopModulePermission(objDesktopModulePermission.PortalDesktopModuleID,
                                                  objDesktopModulePermission.PermissionID,
                                                  objDesktopModulePermission.RoleID,
                                                  objDesktopModulePermission.AllowAccess,
                                                  objDesktopModulePermission.UserID,
                                                  UserController.Instance.GetCurrentUserInfo().UserID);
     EventLogController.Instance.AddLog(objDesktopModulePermission,
                        PortalController.Instance.GetCurrentPortalSettings(),
                        UserController.Instance.GetCurrentUserInfo().UserID,
                        "",
                        EventLogController.EventLogType.DESKTOPMODULEPERMISSION_CREATED);
     ClearPermissionCache();
     return Id;
 }
        public int Add(DesktopModulePermissionInfo 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 int Add(DesktopModulePermissionInfo value)
 {
     return List.Add(value);
 }
 public void Remove(DesktopModulePermissionInfo value)
 {
     List.Remove(value);
 }
 public void Insert(int index, DesktopModulePermissionInfo value)
 {
     List.Insert(index, value);
 }
 public int IndexOf(DesktopModulePermissionInfo value)
 {
     return List.IndexOf(value);
 }
 public bool Contains(DesktopModulePermissionInfo value)
 {
     return List.Contains(value);
 }
示例#8
0
 public void Remove(DesktopModulePermissionInfo value)
 {
     List.Remove(value);
 }
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// Compares if two DesktopModulePermissionInfo objects are equivalent/equal
 /// </summary>
 /// <param name="other">a DesktopModulePermissionObject</param>
 /// <returns>true if the permissions being passed represents the same permission
 /// in the current object
 /// </returns>
 /// <remarks>
 /// This function is needed to prevent adding duplicates to the DesktopModulePermissionCollection.
 /// DesktopModulePermissionCollection.Contains will use this method to check if a given permission
 /// is already included in the collection.
 /// </remarks>
 /// <history>
 /// 	[cnurse]	01/15/2008   Created
 /// </history>
 /// -----------------------------------------------------------------------------
 public bool Equals(DesktopModulePermissionInfo other)
 {
     if (ReferenceEquals(null, other))
     {
         return false;
     }
     if (ReferenceEquals(this, other))
     {
         return true;
     }
     return (AllowAccess == other.AllowAccess) && (PortalDesktopModuleID == other.PortalDesktopModuleID) && (RoleID == other.RoleID) && (PermissionID == other.PermissionID);
 }
 public static int AddDesktopModuleToPortal(int portalID, int desktopModuleID, bool addPermissions, bool clearCache)
 {
     int portalDesktopModuleID;
     PortalDesktopModuleInfo portalDesktopModule = GetPortalDesktopModule(portalID, desktopModuleID);
     if (portalDesktopModule == null)
     {
         portalDesktopModuleID = DataProvider.Instance().AddPortalDesktopModule(portalID, desktopModuleID, UserController.GetCurrentUserInfo().UserID);
         var objEventLog = new EventLogController();
         objEventLog.AddLog("PortalDesktopModuleID",
                            portalDesktopModuleID.ToString(),
                            PortalController.GetCurrentPortalSettings(),
                            UserController.GetCurrentUserInfo().UserID,
                            EventLogController.EventLogType.PORTALDESKTOPMODULE_CREATED);
         if (addPermissions)
         {
             ArrayList permissions = PermissionController.GetPermissionsByPortalDesktopModule();
             if (permissions.Count > 0)
             {
                 var permission = permissions[0] as PermissionInfo;
                 PortalInfo objPortal = new PortalController().GetPortal(portalID);
                 if (permission != null && objPortal != null)
                 {
                     var desktopModulePermission = new DesktopModulePermissionInfo(permission) { RoleID = objPortal.AdministratorRoleId, AllowAccess = true, PortalDesktopModuleID = portalDesktopModuleID };
                     DesktopModulePermissionController.AddDesktopModulePermission(desktopModulePermission);
                 }
             }
         }
     }
     else
     {
         portalDesktopModuleID = portalDesktopModule.PortalDesktopModuleID;
     }
     if (clearCache)
     {
         DataCache.ClearPortalCache(portalID, true);
     }
     return portalDesktopModuleID;
 }
示例#11
0
 private static void ParsePortalDesktopModules(XPathNavigator nav, int portalID)
 {
     string friendlyName = Null.NullString;
     DesktopModuleInfo desktopModule = null;
     foreach (XPathNavigator desktopModuleNav in nav.Select("portalDesktopModule"))
     {
         friendlyName = XmlUtils.GetNodeValue(desktopModuleNav, "friendlyname");
         if (!string.IsNullOrEmpty(friendlyName))
         {
             desktopModule = DesktopModuleController.GetDesktopModuleByFriendlyName(friendlyName);
             if (desktopModule != null)
             {
                 //Parse the permissions
                 DesktopModulePermissionCollection permissions = new DesktopModulePermissionCollection();
                 foreach (XPathNavigator permissionNav in
                     desktopModuleNav.Select("portalDesktopModulePermissions/portalDesktopModulePermission"))
                 {
                     string code = XmlUtils.GetNodeValue(permissionNav, "permissioncode");
                     string key = XmlUtils.GetNodeValue(permissionNav, "permissionkey");
                     DesktopModulePermissionInfo desktopModulePermission = null;
                     ArrayList arrPermissions = new PermissionController().GetPermissionByCodeAndKey(code, key);
                     if (arrPermissions.Count > 0)
                     {
                         PermissionInfo permission = arrPermissions[0] as PermissionInfo;
                         if (permission != null)
                         {
                             desktopModulePermission = new DesktopModulePermissionInfo(permission);
                         }
                     }
                     desktopModulePermission.AllowAccess = bool.Parse(XmlUtils.GetNodeValue(permissionNav, "allowaccess"));
                     string rolename = XmlUtils.GetNodeValue(permissionNav, "rolename");
                     if (!string.IsNullOrEmpty(rolename))
                     {
                         RoleInfo role = TestableRoleController.Instance.GetRole(portalID, r => r.RoleName == rolename);
                         if (role != null)
                         {
                             desktopModulePermission.RoleID = role.RoleID;
                         }
                     }
                     permissions.Add(desktopModulePermission);
                 }
                 DesktopModuleController.AddDesktopModuleToPortal(portalID, desktopModule, permissions, false);
             }
         }
     }
 }
 public int IndexOf(DesktopModulePermissionInfo value)
 {
     return(List.IndexOf(value));
 }
 public bool Contains(DesktopModulePermissionInfo value)
 {
     return(List.Contains(value));
 }
示例#14
0
 public int Add(DesktopModulePermissionInfo value)
 {
     return(List.Add(value));
 }
示例#15
0
        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>
 /// UpdateDesktopModulePermission updates a DesktopModule Permission in the Database
 /// </summary>
 /// <param name="objDesktopModulePermission">The DesktopModule Permission to update</param>
 /// <history>
 /// 	[cnurse]	01/15/2008   Created
 /// </history>
 /// -----------------------------------------------------------------------------
 public static void UpdateDesktopModulePermission(DesktopModulePermissionInfo objDesktopModulePermission)
 {
     provider.UpdateDesktopModulePermission(objDesktopModulePermission.DesktopModulePermissionID,
                                            objDesktopModulePermission.PortalDesktopModuleID,
                                            objDesktopModulePermission.PermissionID,
                                            objDesktopModulePermission.RoleID,
                                            objDesktopModulePermission.AllowAccess,
                                            objDesktopModulePermission.UserID,
                                            UserController.Instance.GetCurrentUserInfo().UserID);
     EventLogController.Instance.AddLog(objDesktopModulePermission,
                        PortalController.Instance.GetCurrentPortalSettings(),
                        UserController.Instance.GetCurrentUserInfo().UserID,
                        "",
                        EventLogController.EventLogType.DESKTOPMODULEPERMISSION_UPDATED);
     ClearPermissionCache();
 }
示例#17
0
        private static void UpgradeToVersion601()
        {
            //List module needs to be available to Portals also
            var pkg = PackageController.Instance.GetExtensionPackage(Null.NullInteger, p => p.Name == "DotNetNuke.Lists");
            if (pkg != null)
            {
                //List package is no longer a system package
                pkg.IsSystemPackage = false;
                PackageController.Instance.SaveExtensionPackage(pkg);

                //List desktop module is no longer premium or admin module
                var desktopModule = DesktopModuleController.GetDesktopModuleByPackageID(pkg.PackageID);
                desktopModule.IsAdmin = false;
                desktopModule.IsPremium = false;
                DesktopModuleController.SaveDesktopModule(desktopModule, false, true);

                var permissionController = new PermissionController();
                ArrayList permissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_DESKTOPMODULE", "DEPLOY");
                if (permissions.Count == 1)
                {
                    var permission = permissions[0] as PermissionInfo;
                    if (permission != null)
                    {
                        foreach (PortalInfo portal in PortalController.Instance.GetPortals())
                        {
                            //ensure desktop module is not present in the portal
                            var pdmi = DesktopModuleController.GetPortalDesktopModule(portal.PortalID, desktopModule.DesktopModuleID);
                            if (pdmi == null)
                            {
                                //Parse the permissions
                                var deployPermissions = new DesktopModulePermissionCollection();
                                var deployPermission = new DesktopModulePermissionInfo { PermissionID = permission.PermissionID, AllowAccess = true, RoleID = portal.AdministratorRoleId };
                                deployPermissions.Add(deployPermission);

                                //Add Portal/Module to PortalDesktopModules
                                DesktopModuleController.AddDesktopModuleToPortal(portal.PortalID, desktopModule, deployPermissions, true);
                            }
                        }
                    }
                }
            }
        }
示例#18
0
 public void Insert(int index, DesktopModulePermissionInfo value)
 {
     List.Insert(index, value);
 }