Beispiel #1
0
        private static ModulePermissionCollection FillModulePermissionCollection(IDataReader dr)
        {
            ModulePermissionCollection arr = new ModulePermissionCollection();

            try
            {
                while (dr.Read())
                {
                    // fill business object
                    ModulePermissionInfo obj = FillModulePermissionInfo(dr, false);
                    // add to collection
                    arr.Add(obj);
                }
            }
            catch (Exception exc)
            {
                Exceptions.LogException(exc);
            }
            finally
            {
                // close datareader
                if (dr != null)
                {
                    dr.Close();
                }
            }
            return(arr);
        }
Beispiel #2
0
        public int AddModulePermission(ModulePermissionInfo objModulePermission, int tabId)
        {
            int Id = Convert.ToInt32(DataProvider.Instance().AddModulePermission(objModulePermission.ModuleID, objModulePermission.PermissionID, objModulePermission.RoleID, objModulePermission.AllowAccess));

            DataCache.ClearModulePermissionsCache(tabId);
            return(Id);
        }
Beispiel #3
0
        public int Add(ModulePermissionInfo 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);
        }
Beispiel #4
0
        public int AddModulePermission(ModulePermissionInfo objModulePermission)
        {
            int Id = Convert.ToInt32(DataProvider.Instance().AddModulePermission(objModulePermission.ModuleID, objModulePermission.PermissionID, objModulePermission.RoleID, objModulePermission.AllowAccess));

            ClearPermissionCache(objModulePermission.ModuleID);
            return(Id);
        }
Beispiel #5
0
        public ModulePermissionCollection(ArrayList ModulePermissions)
        {
            int i;

            for (i = 0; i <= ModulePermissions.Count - 1; i++)
            {
                ModulePermissionInfo objModulePerm = (ModulePermissionInfo)ModulePermissions[i];
                Add(objModulePerm);
            }
        }
Beispiel #6
0
        /// <Summary>
        /// Compares if two ModulePermissionInfo objects are equivalent/equal
        /// </Summary>
        /// <Param name="obj">a ModulePermissionObject</Param>
        /// <Returns>
        /// true if the permissions being passed represents the same permission
        /// in the current object
        /// </Returns>
        public override bool Equals(object obj)
        {
            if ((obj == null) | (this.GetType() != obj.GetType()))
            {
                return(false);
            }
            ModulePermissionInfo modulePermissionInfo1 = ((ModulePermissionInfo)obj);

            return((((this.AllowAccess == modulePermissionInfo1.AllowAccess) & (this.ModuleID == modulePermissionInfo1.ModuleID)) & (this.RoleID == modulePermissionInfo1.RoleID)) & (this.PermissionID == modulePermissionInfo1.PermissionID));
        }
 public void UpdateModulePermission(ModulePermissionInfo objModulePermission)
 {
     DataProvider.Instance().UpdateModulePermission(objModulePermission.ModulePermissionID,
                                                    objModulePermission.ModuleID,
                                                    objModulePermission.PermissionID,
                                                    objModulePermission.RoleID,
                                                    objModulePermission.AllowAccess,
                                                    objModulePermission.UserID,
                                                    UserController.GetCurrentUserInfo().UserID);
     ClearPermissionCache(objModulePermission.ModuleID);
 }
Beispiel #8
0
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// Compares if two ModulePermissionInfo objects are equivalent/equal
 /// </summary>
 /// <param name="other">a ModulePermissionObject</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 ModulePermissionCollection.
 /// ModulePermissionCollection.Contains will use this method to check if a given permission
 /// is already included in the collection.
 /// </remarks>
 /// -----------------------------------------------------------------------------
 public bool Equals(ModulePermissionInfo other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return((AllowAccess == other.AllowAccess) && (ModuleID == other.ModuleID) && (RoleID == other.RoleID) && (PermissionID == other.PermissionID));
 }
        public int AddModulePermission(ModulePermissionInfo objModulePermission)
        {
            int id = DataProvider.Instance().AddModulePermission(objModulePermission.ModuleID,
                                                                 objModulePermission.PermissionID,
                                                                 objModulePermission.RoleID,
                                                                 objModulePermission.AllowAccess,
                                                                 objModulePermission.UserID,
                                                                 UserController.GetCurrentUserInfo().UserID);

            ClearPermissionCache(objModulePermission.ModuleID);
            return(id);
        }
Beispiel #10
0
        public void UpdateModulePermission(ModulePermissionInfo modulePermission)
        {
            PortalSettings portal = PortalSettings.Current;

            DataProvider.Instance().UpdateModulePermission(modulePermission.ModulePermissionID,
                                                           portal.PortalId,
                                                           modulePermission.ModuleID,
                                                           modulePermission.PermissionID,
                                                           modulePermission.RoleID,
                                                           modulePermission.AllowAccess,
                                                           modulePermission.UserID,
                                                           UserController.GetCurrentUserInfo().UserID);
            ClearPermissionCache(modulePermission.ModuleID);
        }
Beispiel #11
0
        public int AddModulePermission(ModulePermissionInfo modulePermission)
        {
            PortalSettings portal = PortalSettings.Current;

            int id = DataProvider.Instance().AddModulePermission(modulePermission.ModuleID,
                                                                 portal.PortalId,
                                                                 modulePermission.PermissionID,
                                                                 modulePermission.RoleID,
                                                                 modulePermission.AllowAccess,
                                                                 modulePermission.UserID,
                                                                 UserController.GetCurrentUserInfo().UserID);

            ClearPermissionCache(modulePermission.ModuleID);
            return(id);
        }
Beispiel #12
0
        private static Dictionary <int, ModulePermissionCollection> FillModulePermissionDictionary(IDataReader dr)
        {
            Dictionary <int, ModulePermissionCollection> dic = new Dictionary <int, ModulePermissionCollection>();

            try
            {
                while (dr.Read())
                {
                    // fill business object
                    ModulePermissionInfo obj = FillModulePermissionInfo(dr, false);

                    // add Module Permission to dictionary
                    if (dic.ContainsKey(obj.ModuleID))
                    {
                        //Add ModulePermission to ModulePermission Collection already in dictionary for TabId
                        dic[obj.ModuleID].Add(obj);
                    }
                    else
                    {
                        //Create new ModulePermission Collection for ModuleId
                        ModulePermissionCollection collection = new ModulePermissionCollection();

                        //Add Permission to Collection
                        collection.Add(obj);

                        //Add Collection to Dictionary
                        dic.Add(obj.ModuleID, collection);
                    }
                }
            }
            catch (Exception exc)
            {
                Exceptions.LogException(exc);
            }
            finally
            {
                // close datareader
                if (dr != null)
                {
                    dr.Close();
                }
            }
            return(dic);
        }
Beispiel #13
0
        private static ModulePermissionInfo FillModulePermissionInfo(IDataReader dr, bool CheckForOpenDataReader)
        {
            ModulePermissionInfo permissionInfo;

            // read datareader
            bool canContinue = true;

            if (CheckForOpenDataReader)
            {
                canContinue = false;
                if (dr.Read())
                {
                    canContinue = true;
                }
            }

            if (canContinue)
            {
                permissionInfo = new ModulePermissionInfo();
                permissionInfo.ModulePermissionID = Convert.ToInt32(Null.SetNull(dr["ModulePermissionID"], permissionInfo.ModulePermissionID));
                permissionInfo.ModuleID           = Convert.ToInt32(Null.SetNull(dr["ModuleID"], permissionInfo.ModuleID));
                permissionInfo.ModuleDefID        = Convert.ToInt32(Null.SetNull(dr["ModuleDefID"], permissionInfo.ModuleDefID));
                permissionInfo.PermissionID       = Convert.ToInt32(Null.SetNull(dr["PermissionID"], permissionInfo.PermissionID));
                permissionInfo.RoleID             = Convert.ToInt32(Null.SetNull(dr["RoleID"], permissionInfo.RoleID));
                permissionInfo.RoleName           = Convert.ToString(Null.SetNull(dr["RoleName"], permissionInfo.RoleName));
                permissionInfo.AllowAccess        = Convert.ToBoolean(Null.SetNull(dr["AllowAccess"], permissionInfo.AllowAccess));
                permissionInfo.PermissionCode     = Convert.ToString(Null.SetNull(dr["PermissionCode"], permissionInfo.PermissionCode));
                permissionInfo.PermissionKey      = Convert.ToString(Null.SetNull(dr["PermissionKey"], permissionInfo.PermissionKey));
                permissionInfo.PermissionName     = Convert.ToString(Null.SetNull(dr["PermissionName"], permissionInfo.PermissionName));
            }
            else
            {
                permissionInfo = null;
            }

            return(permissionInfo);
        }
        public void UpdateModulePermission(ModulePermissionInfo modulePermission)
        {
            PortalSettings portal = PortalSettings.Current;

            DataProvider.Instance().UpdateModulePermission(modulePermission.ModulePermissionID,
                                                           portal.PortalId,
                                                           modulePermission.ModuleID,
                                                           modulePermission.PermissionID,
                                                           modulePermission.RoleID,
                                                           modulePermission.AllowAccess,
                                                           modulePermission.UserID,
                                                           UserController.Instance.GetCurrentUserInfo().UserID);
            ClearPermissionCache(modulePermission.ModuleID);
        }
 public int Add(ModulePermissionInfo value)
 {
     return List.Add(value);
 }
        private static void DeserializeModulePermissions(XmlNodeList nodeModulePermissions, int portalId, ModuleInfo module)
        {
            var permissionController = new PermissionController();
            foreach (XmlNode node in nodeModulePermissions)
            {
                string permissionKey = XmlUtils.GetNodeValue(node.CreateNavigator(), "permissionkey");
                string permissionCode = XmlUtils.GetNodeValue(node.CreateNavigator(), "permissioncode");
                string roleName = XmlUtils.GetNodeValue(node.CreateNavigator(), "rolename");
                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 role = TestableRoleController.Instance.GetRole(portalId, r => r.RoleName == roleName);
                        if (role != null)
                        {
                            roleID = role.RoleID;
                        }
                        break;
                }
                if (roleID != int.MinValue)
                {
                    int permissionID = -1;
                    ArrayList permissions = permissionController.GetPermissionByCodeAndKey(permissionCode, permissionKey);
                    for (int i = 0; i <= permissions.Count - 1; i++)
                    {
                        var permission = (PermissionInfo)permissions[i];
                        permissionID = permission.PermissionID;
                    }

                    //if role was found add, otherwise ignore
                    if (permissionID != -1)
                    {
                        var modulePermission = new ModulePermissionInfo
                        {
                            ModuleID = module.ModuleID,
                            PermissionID = permissionID,
                            RoleID = roleID,
                            AllowAccess = Convert.ToBoolean(XmlUtils.GetNodeValue(node.CreateNavigator(), "allowaccess"))
                        };

                        // do not add duplicate ModulePermissions
                        bool canAdd = !module.ModulePermissions.Cast<ModulePermissionInfo>()
                                                    .Any(mp => mp.ModuleID == modulePermission.ModuleID
                                                            && mp.PermissionID == modulePermission.PermissionID
                                                            && mp.RoleID == modulePermission.RoleID
                                                            && mp.UserID == modulePermission.UserID);
                        if (canAdd)
                        {
                            module.ModulePermissions.Add(modulePermission);
                        }
                    }
                }
            }
        }
        private static void AddModulePermission(ref ModuleInfo module, int portalId, string roleName, PermissionInfo permission, string permissionKey)
        {
            var perm = module.ModulePermissions.Where(tp => tp.RoleName == roleName && tp.PermissionKey == permissionKey).SingleOrDefault();
            if (permission != null && perm == null)
            {
                var modulePermission = new ModulePermissionInfo(permission);
// ReSharper disable ImplicitlyCapturedClosure
                var role = TestableRoleController.Instance.GetRole(portalId, r => (r.RoleName == roleName));
// ReSharper restore ImplicitlyCapturedClosure
                if (role != null)
                {
                    modulePermission.RoleID = role.RoleID;
                    modulePermission.AllowAccess = true;

                    module.ModulePermissions.Add(modulePermission);
                }
            }
        }
        static void DeserializeModulePermissions(XmlNodeList nodeModulePermissions, int portalId, ModuleInfo module)
        {
            var objRoleController = new RoleController();
            var objPermissionController = new PermissionController();

            foreach (XmlNode node in nodeModulePermissions)
            {
                var permissionKey = XmlUtils.GetNodeValue(node, "permissionkey", "");
                var permissionCode = XmlUtils.GetNodeValue(node, "permissioncode", "");
                var roleName = XmlUtils.GetNodeValue(node, "rolename", "");
                var allowAccess = XmlUtils.GetNodeValueBoolean(node, "allowaccess");

                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 objRole = objRoleController.GetRoleByName(portalId, roleName);
                        if (objRole != null)
                        {
                            roleId = objRole.RoleID;
                        }
                        break;
                }
                if (roleId != int.MinValue)
                {
                    var permissionId = Convert.ToInt32(- 1);
                    var arrPermissions = objPermissionController.GetPermissionByCodeAndKey(permissionCode, permissionKey);

                    int i;
                    for (i = 0; i <= arrPermissions.Count - 1; i++)
                    {
                        var permission = (PermissionInfo) (arrPermissions[i]);
                        permissionId = permission.PermissionID;
                    }

                    // if role was found add, otherwise ignore
                    if (permissionId != - 1)
                    {
                        var modulePermission = new ModulePermissionInfo
                                                   {
                                                       ModuleID = module.ModuleID,
                                                       PermissionID = permissionId,
                                                       RoleID = roleId,
                                                       AllowAccess = allowAccess
                                                   };
                        module.ModulePermissions.Add(modulePermission);
                    }
                }
            }
        }
 public void UpdateModulePermission( ModulePermissionInfo objModulePermission )
 {
     DataProvider.Instance().UpdateModulePermission( objModulePermission.ModulePermissionID, objModulePermission.ModuleID, objModulePermission.PermissionID, objModulePermission.RoleID, objModulePermission.AllowAccess );
     ClearPermissionCache( objModulePermission.ModuleID );
 }
 private static void AddModulePermission(ModulePermissionCollection permissions, string key, int roleId)
 {
     var permissionController = new PermissionController();
     var permission = (PermissionInfo)permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", key)[0];
     var modulePermission = new ModulePermissionInfo { PermissionID = permission.PermissionID, RoleID = roleId, AllowAccess = true };
     permissions.Add(modulePermission);
 }
Beispiel #21
0
 public bool Contains(ModulePermissionInfo value)
 {
     return(List.Contains(value));
 }
 public bool Contains(ModulePermissionInfo value)
 {
     return List.Contains(value);
 }
Beispiel #23
0
 public void UpdateModulePermission(ModulePermissionInfo objModulePermission)
 {
     DataProvider.Instance().UpdateModulePermission(objModulePermission.ModulePermissionID, objModulePermission.ModuleID, objModulePermission.PermissionID, objModulePermission.RoleID, objModulePermission.AllowAccess);
     ClearPermissionCache(objModulePermission.ModuleID);
 }
 public int IndexOf(ModulePermissionInfo value)
 {
     return List.IndexOf(value);
 }
 public void Insert(int index, ModulePermissionInfo value)
 {
     List.Insert(index, value);
 }
 public int AddModulePermission( ModulePermissionInfo objModulePermission )
 {
     int Id = Convert.ToInt32( DataProvider.Instance().AddModulePermission( objModulePermission.ModuleID, objModulePermission.PermissionID, objModulePermission.RoleID, objModulePermission.AllowAccess ) );
     ClearPermissionCache( objModulePermission.ModuleID );
     return Id;
 }
Beispiel #27
0
 public void Insert(int index, ModulePermissionInfo value)
 {
     List.Insert(index, value);
 }
        private static ModulePermissionInfo FillModulePermissionInfo( IDataReader dr, bool CheckForOpenDataReader )
        {
            ModulePermissionInfo permissionInfo;

            // read datareader
            bool canContinue = true;
            if( CheckForOpenDataReader )
            {
                canContinue = false;
                if( dr.Read() )
                {
                    canContinue = true;
                }
            }

            if( canContinue )
            {
                permissionInfo = new ModulePermissionInfo();
                permissionInfo.ModulePermissionID = Convert.ToInt32( Null.SetNull( dr["ModulePermissionID"], permissionInfo.ModulePermissionID ) );
                permissionInfo.ModuleID = Convert.ToInt32( Null.SetNull( dr["ModuleID"], permissionInfo.ModuleID ) );
                permissionInfo.ModuleDefID = Convert.ToInt32( Null.SetNull( dr["ModuleDefID"], permissionInfo.ModuleDefID ) );
                permissionInfo.PermissionID = Convert.ToInt32( Null.SetNull( dr["PermissionID"], permissionInfo.PermissionID ) );
                permissionInfo.RoleID = Convert.ToInt32( Null.SetNull( dr["RoleID"], permissionInfo.RoleID ) );
                permissionInfo.RoleName = Convert.ToString( Null.SetNull( dr["RoleName"], permissionInfo.RoleName ) );
                permissionInfo.AllowAccess = Convert.ToBoolean( Null.SetNull( dr["AllowAccess"], permissionInfo.AllowAccess ) );
                permissionInfo.PermissionCode = Convert.ToString( Null.SetNull( dr["PermissionCode"], permissionInfo.PermissionCode ) );
                permissionInfo.PermissionKey = Convert.ToString( Null.SetNull( dr["PermissionKey"], permissionInfo.PermissionKey ) );
                permissionInfo.PermissionName = Convert.ToString( Null.SetNull( dr["PermissionName"], permissionInfo.PermissionName ) );
            }
            else
            {
                permissionInfo = null;
            }

            return permissionInfo;
        }
Beispiel #29
0
 public int Add(ModulePermissionInfo value)
 {
     return(List.Add(value));
 }
Beispiel #30
0
        /// <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 int AddModulePermission( ModulePermissionInfo objModulePermission, int tabId )
 {
     int Id = Convert.ToInt32( DataProvider.Instance().AddModulePermission( objModulePermission.ModuleID, objModulePermission.PermissionID, objModulePermission.RoleID, objModulePermission.AllowAccess ) );
     DataCache.ClearModulePermissionsCache( tabId );
     return Id;
 }
Beispiel #32
0
 public int IndexOf(ModulePermissionInfo value)
 {
     return(List.IndexOf(value));
 }
Beispiel #33
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Adds a Module Permission
        /// </summary>
        /// <param name="objModule">Module Info</param>
        /// <param name="permission">The permission to add</param>
        /// <param name="roleId">The Id of the role to add the permission for.</param>
        /// <param name="userId">Operator</param>
        /// <param name="allowAccess">Whether allow to access the module</param>
        /// <history>
        /// 	[cnurse]	01/11/2008  documented
        /// </history>
        /// -----------------------------------------------------------------------------
        private ModulePermissionInfo AddModulePermission(ModuleInfo objModule, PermissionInfo permission, int roleId, int userId, bool allowAccess)
        {
            var objModulePermission = new ModulePermissionInfo();
            objModulePermission.ModuleID = objModule.ModuleID;
            objModulePermission.PermissionID = permission.PermissionID;
            objModulePermission.RoleID = roleId;
            objModulePermission.UserID = userId;
            objModulePermission.PermissionKey = permission.PermissionKey;
            objModulePermission.AllowAccess = allowAccess;

            //add the permission to the collection
            if (!objModule.ModulePermissions.Contains(objModulePermission))
            {
                objModule.ModulePermissions.Add(objModulePermission);
            }
            return objModulePermission;
        }
Beispiel #34
0
 public void Remove(ModulePermissionInfo value)
 {
     List.Remove(value);
 }
 public void UpdateModulePermission(ModulePermissionInfo objModulePermission)
 {
     DataProvider.Instance().UpdateModulePermission(objModulePermission.ModulePermissionID,
                                                    objModulePermission.ModuleID,
                                                    objModulePermission.PermissionID,
                                                    objModulePermission.RoleID,
                                                    objModulePermission.AllowAccess,
                                                    objModulePermission.UserID,
                                                    UserController.GetCurrentUserInfo().UserID);
     ClearPermissionCache(objModulePermission.ModuleID);
 }
 /// -----------------------------------------------------------------------------
 /// <summary>
 /// Compares if two ModulePermissionInfo objects are equivalent/equal
 /// </summary>
 /// <param name="other">a ModulePermissionObject</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 ModulePermissionCollection.
 /// ModulePermissionCollection.Contains will use this method to check if a given permission
 /// is already included in the collection.
 /// </remarks>
 /// <history>
 /// 	[Vicenç]	09/01/2005	Created
 /// </history>
 /// -----------------------------------------------------------------------------
 public bool Equals(ModulePermissionInfo other)
 {
     if (ReferenceEquals(null, other))
     {
         return false;
     }
     if (ReferenceEquals(this, other))
     {
         return true;
     }
     return (AllowAccess == other.AllowAccess) && (ModuleID == other.ModuleID) && (RoleID == other.RoleID) && (PermissionID == other.PermissionID);
 }
        private ModulePermissionInfo AddModulePermission(int moduleId, PermissionInfo permission, int roleId)
        {
            RoleController objRoles = new RoleController();
            string roleName = Null.NullString;
            ModulePermissionInfo objModulePermission = new ModulePermissionInfo();
            objModulePermission.ModuleID = moduleId;
            objModulePermission.PermissionID = permission.PermissionID;
            objModulePermission.RoleID = roleId;
            objModulePermission.PermissionKey = permission.PermissionKey;
            objModulePermission.AllowAccess = false;

            if (roleId == int.Parse(Globals.glbRoleUnauthUser))
            {
                roleName = Globals.glbRoleUnauthUserName;
            }
            else if (roleId == int.Parse(Globals.glbRoleAllUsers))
            {
                roleName = Globals.glbRoleAllUsersName;
            }
            else
            {
                RoleInfo objRole = objRoles.GetRole(objModulePermission.RoleID, PortalSettings.PortalId);
                if (objRole != null)
                {
                    roleName = objRole.RoleName;
                }
            }
            if (!(string.IsNullOrEmpty(roleName)))
            {
                if (PortalSettings.ActiveTab.AdministratorRoles.IndexOf(roleName) != -1)
                {
                    objModulePermission.AllowAccess = true;
                }
            }
            return objModulePermission;
        }
        private void ParseModulePermissions( XmlNodeList nodeModulePermissions, int PortalId, int ModuleID )
        {
            RoleController objRoleController = new RoleController();
            RoleInfo objRole = null;
            ModulePermissionCollection objModulePermissions = new ModulePermissionCollection();
            ModulePermissionController objModulePermissionController = new ModulePermissionController();
            PermissionController objPermissionController = new PermissionController();
            PermissionInfo objPermission = null;
            ModulePermissionCollection objModulePermissionCollection = new ModulePermissionCollection();
            int PermissionID = 0;
            ArrayList arrPermissions = null;
            int i = 0;
            string PermissionKey = null;
            string PermissionCode = null;
            string RoleName = null;
            int RoleID = 0;
            bool AllowAccess = false;

            foreach( XmlNode node in nodeModulePermissions )
            {
                PermissionKey = XmlUtils.GetNodeValue( node, "permissionkey", "" );
                PermissionCode = XmlUtils.GetNodeValue( node, "permissioncode", "" );
                RoleName = XmlUtils.GetNodeValue( node, "rolename", "" );
                AllowAccess = XmlUtils.GetNodeValueBoolean( node, "allowaccess", false );

                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( PortalId, RoleName );
                    if( objRole != null )
                    {
                        RoleID = objRole.RoleID;
                    }
                }
                if( RoleID != int.MinValue )
                {
                    PermissionID = -1;
                    arrPermissions = objPermissionController.GetPermissionByCodeAndKey( PermissionCode, PermissionKey );

                    for( i = 0; i < arrPermissions.Count; i++ )
                    {
                        objPermission = (PermissionInfo)( arrPermissions[i] );
                        PermissionID = objPermission.PermissionID;
                    }

                    // if role was found add, otherwise ignore
                    if( PermissionID != -1 )
                    {
                        ModulePermissionInfo objModulePermission = new ModulePermissionInfo();
                        objModulePermission.ModuleID = ModuleID;
                        objModulePermission.PermissionID = PermissionID;
                        objModulePermission.RoleID = RoleID;
                        objModulePermission.AllowAccess = Convert.ToBoolean( XmlUtils.GetNodeValue( node, "allowaccess", "false" ) );
                        objModulePermissionController.AddModulePermission( objModulePermission );
                    }
                }
            }
        }
        public int Add(ModulePermissionInfo 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;
        }
		private ModulePermissionInfo AddModulePermission(ModuleInfo module, PermissionInfo permission, int roleId, int userId, bool allowAccess)
        {
            var modulePermission = new ModulePermissionInfo
            {
				ModuleID = module.ModuleID,
                PermissionID = permission.PermissionID,
                RoleID = roleId,
                UserID = userId,
                PermissionKey = permission.PermissionKey,
                AllowAccess = allowAccess
            };

            // add the permission to the collection
			if (!module.ModulePermissions.Contains(modulePermission))
            {
				module.ModulePermissions.Add(modulePermission);
            }

			return modulePermission;
        }
        public int AddModulePermission(ModulePermissionInfo modulePermission)
        {
            PortalSettings portal = PortalSettings.Current;

            int id = DataProvider.Instance().AddModulePermission(modulePermission.ModuleID,
                                                                 portal.PortalId,
                                                                 modulePermission.PermissionID,
                                                                 modulePermission.RoleID,
                                                                 modulePermission.AllowAccess,
                                                                 modulePermission.UserID,
                                                                 UserController.Instance.GetCurrentUserInfo().UserID);
            ClearPermissionCache(modulePermission.ModuleID);
            return id;
        }
        protected void AddNewModule(string title, int desktopModuleId, string paneName, int position, ViewPermissionType permissionType, string align)
        {

            TabPermissionCollection objTabPermissions = PortalSettings.ActiveTab.TabPermissions;
            PermissionController objPermissionController = new PermissionController();
            ModuleController objModules = new ModuleController();
            ModuleDefinitionController objModuleDefinitions = new ModuleDefinitionController();
            Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController();
            int intIndex;

            try
            {
                DesktopModuleController objDesktopModules = new DesktopModuleController();
                ArrayList arrDM = objDesktopModules.GetDesktopModulesByPortal(PortalSettings.PortalId);
                bool isSelectable = false;
                for (int intloop = 0; intloop < arrDM.Count; intloop++)
                {
                    if (((DesktopModuleInfo)(arrDM[intloop])).DesktopModuleID == desktopModuleId)
                    {
                        isSelectable = true;
                        break;
                    }
                }
                if (isSelectable == false)
                {
                    throw new Exception();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            int UserId = -1;
            if (Request.IsAuthenticated)
            {
                UserInfo objUserInfo = UserController.GetCurrentUserInfo();
                UserId = objUserInfo.UserID;
            }

            ArrayList arrModuleDefinitions = objModuleDefinitions.GetModuleDefinitions(desktopModuleId);
            for (intIndex = 0; intIndex < arrModuleDefinitions.Count; intIndex++)
            {
                ModuleDefinitionInfo objModuleDefinition = (ModuleDefinitionInfo)(arrModuleDefinitions[intIndex]);

                

                ModuleInfo objModule = new ModuleInfo();
                objModule.Initialize(PortalSettings.PortalId);

                objModule.PortalID = PortalSettings.PortalId;
                objModule.TabID = PortalSettings.ActiveTab.TabID;
                objModule.ModuleOrder = position;
                if (String.IsNullOrEmpty(title))
                {
                    objModule.ModuleTitle = objModuleDefinition.FriendlyName;
                }
                else
                {
                    objModule.ModuleTitle = title;
                }

                objModule.ModuleTitle = title;
                objModule.PaneName = paneName;
                objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                objModule.CacheTime = objModuleDefinition.DefaultCacheTime;

                // initialize module permissions
                ModulePermissionCollection objModulePermissions = new ModulePermissionCollection();
                objModule.ModulePermissions = objModulePermissions;
                objModule.InheritViewPermissions = false;

                // get the default module view permissions
                ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");

                // get the permissions from the page
                foreach (TabPermissionInfo objTabPermission in objTabPermissions)
                {
                    // get the system module permissions for the permissionkey
                    ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);
                    // loop through the system module permissions
                    int j;
                    for (j = 0; j < arrSystemModulePermissions.Count; j++)
                    {
                        // create the module permission
                        PermissionInfo objSystemModulePermission = (PermissionInfo)(arrSystemModulePermissions[j]);
                        ModulePermissionInfo objModulePermission = AddModulePermission(objModule.ModuleID, objSystemModulePermission, objTabPermission.RoleID);

                        // add the permission to the collection
                        if (!(objModulePermissions.Contains(objModulePermission)) & objModulePermission.AllowAccess)
                        {
                            objModulePermissions.Add(objModulePermission);
                        }

                        // ensure that every EDIT permission which allows access also provides VIEW permission
                        if (objModulePermission.PermissionKey == "EDIT" & objModulePermission.AllowAccess)
                        {
                            ModulePermissionInfo objModuleViewperm = new ModulePermissionInfo();
                            objModuleViewperm.ModuleID = objModulePermission.ModuleID;
                            objModuleViewperm.PermissionID = ((PermissionInfo)(arrSystemModuleViewPermissions[0])).PermissionID;
                            objModuleViewperm.RoleID = objModulePermission.RoleID;
                            objModuleViewperm.PermissionKey = "VIEW";
                            objModuleViewperm.AllowAccess = true;
                            if (!(objModulePermissions.Contains(objModuleViewperm)))
                            {
                                objModulePermissions.Add(objModuleViewperm);
                            }
                        }
                    }

                    //Get the custom Module Permissions,  Assume that roles with Edit Tab Permissions
                    //are automatically assigned to the Custom Module Permissions
                    if (objTabPermission.PermissionKey == "EDIT")
                    {
                        ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID);

                        // loop through the custom module permissions
                        for (j = 0; j < arrCustomModulePermissions.Count; j++)
                        {
                            // create the module permission
                            PermissionInfo objCustomModulePermission = (PermissionInfo)(arrCustomModulePermissions[j]);
                            ModulePermissionInfo objModulePermission = AddModulePermission(objModule.ModuleID, objCustomModulePermission, objTabPermission.RoleID);

                            // add the permission to the collection
                            if (!(objModulePermissions.Contains(objModulePermission)) & objModulePermission.AllowAccess)
                            {
                                objModulePermissions.Add(objModulePermission);
                            }
                        }
                    }
                }

                switch (permissionType)
                {
                    case ViewPermissionType.View:
                        objModule.InheritViewPermissions = true;
                        break;
                    case ViewPermissionType.Edit:
                        objModule.ModulePermissions = objModulePermissions;
                        break;
                }

                objModule.AllTabs = false;
                objModule.Visibility = VisibilityState.Maximized;
                objModule.Alignment = align;

                objModules.AddModule(objModule);
                objEventLog.AddLog(objModule, PortalSettings, UserId, "", Services.Log.EventLog.EventLogController.EventLogType.MODULE_CREATED);
            }

        }
 public void Remove(ModulePermissionInfo value)
 {
     List.Remove(value);
 }
        public string UpgradeModule(string Version)
        {
            try
            {
                switch (Version)
                {
                    case "01.00.00":
                        ModuleDefinitionInfo moduleDefinition = ModuleDefinitionController.GetModuleDefinitionByFriendlyName("Messaging");

                        if (moduleDefinition != null)
                        {
                            //Add Module to User Profile Page for all Portals
                            var objPortalController = new PortalController();
                            var objTabController = new TabController();
                            var objModuleController = new ModuleController();

                            ArrayList portals = objPortalController.GetPortals();
                            foreach (PortalInfo portal in portals)
                            {
                                int tabID = TabController.GetTabByTabPath(portal.PortalID, "//UserProfile", Null.NullString);
                                if ((tabID != Null.NullInteger))
                                {
                                    TabInfo tab = objTabController.GetTab(tabID, portal.PortalID, true);
                                    if ((tab != null))
                                    {
                                        int moduleId = Upgrade.AddModuleToPage(tab, moduleDefinition.ModuleDefID, "My Inbox", "", true);
                                        ModuleInfo objModule = objModuleController.GetModule(moduleId, tabID, false);

                                        var settings = new PortalSettings(portal);

                                        var modulePermission = (from ModulePermissionInfo p in objModule.ModulePermissions
                                                                where p.ModuleID == moduleId
                                                                   && p.RoleID == settings.RegisteredRoleId
                                                                   && p.UserID == Null.NullInteger
                                                                   && p.PermissionKey == "EDIT"
                                                                select p).SingleOrDefault();

                                        if (modulePermission == null)
                                        {
                                            ArrayList permissions = new PermissionController().GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "EDIT");
                                            PermissionInfo permission = null;
                                            if (permissions.Count == 1)
                                            {
                                                permission = permissions[0] as PermissionInfo;
                                            }
                                            if (permission != null)
                                            {
                                                modulePermission = new ModulePermissionInfo(permission)
                                                                            {
                                                                                ModuleID = moduleId,
                                                                                RoleID = settings.RegisteredRoleId,
                                                                                UserID = Null.NullInteger,
                                                                                AllowAccess = true
                                                                            };


                                                objModule.ModulePermissions.Add(modulePermission);

                                                ModulePermissionController.SaveModulePermissions(objModule);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        break;
                }
                return "Success";
            }
            catch (Exception exc)
            {
                Logger.Error(exc);

                return "Failed";
            }
        }
 public int AddModulePermission(ModulePermissionInfo objModulePermission)
 {
     int id = DataProvider.Instance().AddModulePermission(objModulePermission.ModuleID,
                                                          objModulePermission.PermissionID,
                                                          objModulePermission.RoleID,
                                                          objModulePermission.AllowAccess,
                                                          objModulePermission.UserID,
                                                          UserController.GetCurrentUserInfo().UserID);
     ClearPermissionCache(objModulePermission.ModuleID);
     return id;
 }