Ejemplo n.º 1
0
        private void AddEditorRole()
        {
            if (ModuleContext.PortalSettings.UserId > 0)
            {
                string OpenContent_EditorsRoleId = PortalController.GetPortalSetting("OpenContent_EditorsRoleId", ModuleContext.PortalId, "");
                if (!string.IsNullOrEmpty(OpenContent_EditorsRoleId))
                {
                    int roleId    = int.Parse(OpenContent_EditorsRoleId);
                    var objModule = ModuleContext.Configuration;
                    //todo: probable DNN bug.  objModule.ModulePermissions doesn't return correct permissions for attached multi-lingual modules
                    //don't alter permissions of modules that are non-default language and that are attached
                    var permExist = objModule.ModulePermissions.Where(tp => tp.RoleID == roleId).Any();
                    if (!permExist)
                    {
                        //todo sacha: add two permissions, read and write; Or better still add all permissions that are available. eg if you installed extra permissions

                        var permissionController = new PermissionController();
                        // view permission
                        var arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");
                        var permission          = (PermissionInfo)arrSystemModuleViewPermissions[0];
                        var objModulePermission = new ModulePermissionInfo
                        {
                            ModuleID = ModuleContext.Configuration.ModuleID,
                            //ModuleDefID = permission.ModuleDefID,
                            //PermissionCode = permission.PermissionCode,
                            PermissionID  = permission.PermissionID,
                            PermissionKey = permission.PermissionKey,
                            RoleID        = roleId,
                            //UserID = userId,
                            AllowAccess = true
                        };
                        objModule.ModulePermissions.Add(objModulePermission);

                        // edit permission
                        arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "EDIT");
                        permission          = (PermissionInfo)arrSystemModuleViewPermissions[0];
                        objModulePermission = new ModulePermissionInfo
                        {
                            ModuleID = ModuleContext.Configuration.ModuleID,
                            //ModuleDefID = permission.ModuleDefID,
                            //PermissionCode = permission.PermissionCode,
                            PermissionID  = permission.PermissionID,
                            PermissionKey = permission.PermissionKey,
                            RoleID        = roleId,
                            //UserID = userId,
                            AllowAccess = true
                        };
                        objModule.ModulePermissions.Add(objModulePermission);
                        try
                        {
                            ModulePermissionController.SaveModulePermissions(objModule);
                        }
                        catch (Exception ex)
                        {
                            //Log.Logger.ErrorFormat("Failed to automaticly set the permission. It already exists? tab={0}, moduletitle={1} ", objModule.TabID ,objModule.ModuleTitle);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public IActionResult Update([FromBody] ModuleModel model)
        {
            // Save module
            ModuleInfo module = new ModuleInfo();

            module.ModuleId    = model.Id;
            module.ModuleDefId = model.DefinitionId;
            module.PageId      = model.PageId;
            module.PlaceId     = model.PlaceId;
            module.Name        = model.Name;
            module.IsDisabled  = model.IsDisabled;

            _viewManager.SaveModule(module);

            // Handle static module
            if (model.IsStatic)
            {
                PlaceInfo place = _viewManager.GetPlace(model.PlaceId);
                place.ModuleId = module.ModuleId;
                _viewManager.SavePlace(place);
            }
            else if (model.Id > 0)
            {
                PlaceInfo place = _viewManager.GetPlace(model.PlaceId);

                if (place.ModuleId == module.ModuleId)
                {
                    place.ModuleId = null;
                    _viewManager.SavePlace(place);
                }
            }

            #region Permissions

            ModulePermissionInfo         modulePermission  = null;
            IList <ModulePermissionInfo> modulePermissions = _securityManager.GetModulePermissionsByModuleId(module.ModuleId);
            IList <PermissionInfo>       permissions       = _securityManager.GetPermissionsList();

            foreach (var permission in permissions)
            {
                if (model.Permissions.Contains(permission.PermissionId) &&
                    !modulePermissions.Any(mp => mp.PermissionId == permission.PermissionId))
                {
                    modulePermission              = new ModulePermissionInfo();
                    modulePermission.ModuleId     = module.ModuleId;
                    modulePermission.PermissionId = permission.PermissionId;

                    _securityManager.SaveModulePermission(modulePermission);
                }
                else if (!model.Permissions.Contains(permission.PermissionId) &&
                         modulePermissions.Any(mp => mp.PermissionId == permission.PermissionId))
                {
                    _securityManager.DeleteModulePermission(module.ModuleId, permission.PermissionId);
                }
            }

            #endregion

            return(Ok(new { module.ModuleId }));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Updates a Permission
        /// </summary>
        /// <param name="permission">The permission being updated</param>
        /// <param name="roleName">The name of the role</param>
        /// <param name="roleid">The id of the role</param>
        /// <param name="allowAccess">The value of the permission</param>
        protected override void UpdatePermission(PermissionInfo permission, int roleid, string roleName, bool allowAccess)
        {
            bool isMatch = false;
            ModulePermissionInfo objPermission;
            int permissionId = permission.PermissionID;

            //Search ModulePermission Collection for the permission to Update
            foreach (ModulePermissionInfo tempLoopVar_objPermission in ModulePermissions)
            {
                objPermission = tempLoopVar_objPermission;
                if (objPermission.PermissionID == permissionId && objPermission.RoleID == roleid)
                {
                    //ModulePermission is in collection
                    if (!allowAccess)
                    {
                        //Remove from collection as we only keep AllowAccess permissions
                        ModulePermissions.Remove(objPermission);
                    }
                    isMatch = true;
                    break;
                }
            }

            //ModulePermission not found so add new
            if (!isMatch && allowAccess)
            {
                objPermission = new ModulePermissionInfo();
                objPermission.PermissionID = permissionId;
                objPermission.RoleName     = roleName;
                objPermission.RoleID       = roleid;
                objPermission.AllowAccess  = allowAccess;
                objPermission.ModuleID     = ModuleID;
                ModulePermissions.Add(objPermission);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets the Value of the permission
        /// </summary>
        /// <param name="objPerm">The permission being loaded</param>
        /// <param name="role">The role</param>
        /// <param name="column">The column of the Grid</param>
        /// <returns>A Boolean (True or False)</returns>
        protected override bool GetPermission(PermissionInfo objPerm, RoleInfo role, int column)
        {
            bool permission;

            if (InheritViewPermissionsFromTab && column == _ViewColumnIndex)
            {
                permission = false;
            }
            else
            {
                if (role.RoleID == AdministratorRoleId)
                {
                    permission = true;
                }
                else
                {
                    ModulePermissionInfo objModulePermission = ModuleHasPermission(objPerm.PermissionID, role.RoleID);
                    if (objModulePermission != null)
                    {
                        permission = objModulePermission.AllowAccess;
                    }
                    else
                    {
                        permission = false;
                    }
                }
            }

            return(permission);
        }
Ejemplo n.º 5
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Check if the Role has the permission specified
        /// </summary>
        /// <param name="permissionID">The Id of the Permission to check</param>
        /// <param name="roleId">The role id to check</param>
        private ModulePermissionInfo ModuleHasPermission(int permissionID, int roleId)
        {
            int i;

            for (i = 0; i <= ModulePermissions.Count - 1; i++)
            {
                ModulePermissionInfo objModulePermission = ModulePermissions[i];
                if (objModulePermission.RoleID == roleId && permissionID == objModulePermission.PermissionID)
                {
                    return(objModulePermission);
                }
            }
            return(null);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Convert ModulePermissionInfo to ModulePermission.
        /// </summary>
        /// <param name="modulePermissionInfo">Module permission info</param>
        /// <returns>Module permission</returns>
        public static ModulePermission ToModulePermission(this ModulePermissionInfo modulePermissionInfo)
        {
            if (modulePermissionInfo is null)
            {
                return(null);
            }

            return(new ModulePermission()
            {
                ModulePermissionId = modulePermissionInfo.ModulePermissionId,
                ModuleId = modulePermissionInfo.ModuleId,
                PermissionId = modulePermissionInfo.PermissionId
            });
        }
Ejemplo n.º 9
0
        protected override void AddPermission(PermissionInfo permission, int roleId, string roleName, int userId, string displayName, bool allowAccess)
        {
            var objPermission = new ModulePermissionInfo(permission);

            objPermission.ModuleID    = ModuleID;
            objPermission.RoleID      = roleId;
            objPermission.RoleName    = roleName;
            objPermission.AllowAccess = allowAccess;
            objPermission.UserID      = userId;
            objPermission.DisplayName = displayName;
            _ModulePermissions.Add(objPermission, true);

            //Clear Permission List
            _PermissionsList = null;
        }
Ejemplo n.º 10
0
        private ModulePermissionInfo AddModulePermission(ModuleInfo objModule, PermissionInfo permission, int roleId, int userId, bool allowAccess)
        {
            ModulePermissionInfo objModulePermission = new ModulePermissionInfo();

            objModulePermission.ModuleID      = objModule.ModuleID;
            objModulePermission.PermissionID  = permission.PermissionID;
            objModulePermission.RoleID        = roleId;
            objModulePermission.UserID        = userId;
            objModulePermission.PermissionKey = permission.PermissionKey;
            objModulePermission.AllowAccess   = allowAccess;
            if (!objModule.ModulePermissions.Contains(objModulePermission))
            {
                objModule.ModulePermissions.Add(objModulePermission);
            }
            return(objModulePermission);
        }
Ejemplo n.º 11
0
        protected override void AddPermission(PermissionInfo permission, int roleId, string roleName, int userId, string displayName, bool allowAccess)
        {
            var objPermission = new ModulePermissionInfo(permission)
            {
                ModuleID    = this.ModuleID,
                RoleID      = roleId,
                RoleName    = roleName,
                AllowAccess = allowAccess,
                UserID      = userId,
                DisplayName = displayName,
            };

            this._ModulePermissions.Add(objPermission, true);

            // Clear Permission List
            this._PermissionsList = null;
        }
Ejemplo n.º 12
0
        private void AutoSetPermission(ModuleInfo objModule, int roleId)
        {
            //todo sacha: add two permissions, read and write; Or better still add all permissions that are available. eg if you installed extra permissions

            var permissionController = new PermissionController();
            // view permission
            var arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");
            var permission          = (PermissionInfo)arrSystemModuleViewPermissions[0];
            var objModulePermission = new ModulePermissionInfo
            {
                ModuleID = ModuleContext.Configuration.ModuleID,
                //ModuleDefID = permission.ModuleDefID,
                //PermissionCode = permission.PermissionCode,
                PermissionID  = permission.PermissionID,
                PermissionKey = permission.PermissionKey,
                RoleID        = roleId,
                //UserID = userId,
                AllowAccess = true
            };

            objModule.ModulePermissions.Add(objModulePermission);

            // edit permission
            arrSystemModuleViewPermissions = permissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "EDIT");
            permission          = (PermissionInfo)arrSystemModuleViewPermissions[0];
            objModulePermission = new ModulePermissionInfo
            {
                ModuleID = ModuleContext.Configuration.ModuleID,
                //ModuleDefID = permission.ModuleDefID,
                //PermissionCode = permission.PermissionCode,
                PermissionID  = permission.PermissionID,
                PermissionKey = permission.PermissionKey,
                RoleID        = roleId,
                //UserID = userId,
                AllowAccess = true
            };
            objModule.ModulePermissions.Add(objModulePermission);
            try
            {
                ModulePermissionController.SaveModulePermissions(objModule);
            }
            catch (Exception)
            {
                //App.Services.Logger.Error($"Failed to automaticly set the permission. It already exists? tab={0}, moduletitle={1} ", objModule.TabID ,objModule.ModuleTitle);
            }
        }
Ejemplo n.º 13
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Parse the Permission Keys used to persist the Permissions in the ViewState
        /// </summary>
        /// <param name="Settings">A string array of settings</param>
        /// -----------------------------------------------------------------------------
        private ModulePermissionInfo ParseKeys(string[] Settings)
        {
            var objModulePermission = new ModulePermissionInfo();

            //Call base class to load base properties
            base.ParsePermissionKeys(objModulePermission, Settings);
            if (String.IsNullOrEmpty(Settings[2]))
            {
                objModulePermission.ModulePermissionID = -1;
            }
            else
            {
                objModulePermission.ModulePermissionID = Convert.ToInt32(Settings[2]);
            }
            objModulePermission.ModuleID = ModuleID;
            return(objModulePermission);
        }
Ejemplo n.º 14
0
        private static ModulePermissionInfo AddModulePermission(ModuleInfo objModule, PermissionInfo permission, int roleId, int userId, bool allowAccess)
        {
            var objModulePermission = new ModulePermissionInfo
            {
                ModuleID      = objModule.ModuleID,
                PermissionID  = permission.PermissionID,
                RoleID        = roleId,
                UserID        = userId,
                PermissionKey = permission.PermissionKey,
                AllowAccess   = allowAccess,
            };

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

            return(objModulePermission);
        }
        /// <inheritdoc cref="ISecurityManager.SaveModulePermissionAsync(ModulePermissionInfo)" />
        public async Task <bool> SaveModulePermissionAsync(ModulePermissionInfo modulePermissionInfo)
        {
            ModulePermission modulePermission = modulePermissionInfo.ToModulePermission();

            if (modulePermissionInfo.ModulePermissionId > 0)
            {
                _dbContext.KastraModulePermissions.Update(modulePermission);
            }
            else
            {
                _dbContext.KastraModulePermissions.Add(modulePermission);
            }

            await _dbContext.SaveChangesAsync();

            // Clear cache
            _cacheEngine.ClearCacheContains("Module");

            return(true);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Parse the Permission Keys used to persist the Permissions in the ViewState
        /// </summary>
        /// <param name="Settings">A string array of settings</param>
        /// <param name="arrPermisions">An Arraylist to add the Permission object to</param>
        private void ParsePermissionKeys(string[] Settings, ArrayList arrPermisions)
        {
            ModulePermissionInfo objModulePermission;

            objModulePermission = new ModulePermissionInfo();
            objModulePermission.PermissionID = Convert.ToInt32(Settings.Length > 1 ? Settings[1] : "1");
            objModulePermission.RoleID       = Convert.ToInt32(Settings.Length > 4 ? Settings[4] : "0");

            if (Settings.Length < 2)
            {
                objModulePermission.ModulePermissionID = -1;
            }
            else
            {
                objModulePermission.ModulePermissionID = Convert.ToInt32(Settings[2].Equals("") ? "-1" : Settings[2]);
            }
            objModulePermission.RoleName    = Settings.Length > 3 ? Settings[3] : String.Empty;
            objModulePermission.AllowAccess = true;

            objModulePermission.ModuleID = ModuleID;
            arrPermisions.Add(objModulePermission);
        }
        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 == null)
            {
                objModule.ModulePermissions = new ModulePermissionCollection();
            }
            if (!objModule.ModulePermissions.Contains(objModulePermission))
            {
                objModule.ModulePermissions.Add(objModulePermission);
            }

            return(objModulePermission);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        private TabInfo CreateSubTab(string tabName, int departmentId, string settingsName = "department", int?parentTabID = null)
        {
            //Create Tab
            TabController tabController = new TabController();

            TabInfo tab = new TabInfo();

            tab.PortalID = PortalId;
            tab.TabName  = tabName;
            tab.Title    = tabName;

            //works for include in menu option. if true, will be shown in menus, else will not be shown, we have to redirect internally
            tab.IsVisible   = true;
            tab.DisableLink = false;

            //if this tab has any parents provide parent tab id, so that it will be shown in parent tab menus sub menu list, else is NULL
            //and will be in main menu list
            if (parentTabID == null)
            {
                tab.ParentId = TabId;
            }
            else
            {
                tab.ParentId = parentTabID.Value;
            }
            tab.IsDeleted    = false;
            tab.Url          = "";
            tab.IsSuperTab   = false;                            //if true, it has no parents, else false
            tab.SkinSrc      = "[G]Skins/Artfolio001/page.ascx"; //provide skin src, else will take default skin
            tab.ContainerSrc = "[G]Containers/Artfolio001/Block.ascx";
            int tabId = tabController.AddTab(tab, true);         //true to load defalut modules

            //Set Tab Permission
            TabPermissionController objTPC = new TabPermissionController();

            TabPermissionInfo tpi = new TabPermissionInfo();

            tpi.TabID          = tabId;
            tpi.PermissionID   = 3; //for view
            tpi.PermissionKey  = "VIEW";
            tpi.PermissionName = "View Tab";
            tpi.AllowAccess    = true;
            tpi.RoleID         = 0; //Role ID of administrator
            objTPC.AddTabPermission(tpi);

            TabPermissionInfo tpi1 = new TabPermissionInfo();

            tpi1.TabID          = tabId;
            tpi1.PermissionID   = 4; //for edit
            tpi1.PermissionKey  = "EDIT";
            tpi1.PermissionName = "Edit Tab";
            tpi1.AllowAccess    = true;
            tpi1.RoleID         = 0; //Role ID of administrator
            objTPC.AddTabPermission(tpi1);

            TabPermissionInfo tpi4 = new TabPermissionInfo();

            tpi4.TabID          = tabId;
            tpi4.PermissionID   = 3;
            tpi4.PermissionKey  = "VIEW";
            tpi4.PermissionName = "View Tab";
            tpi4.AllowAccess    = true;
            tpi4.RoleID         = -1; //All users
            objTPC.AddTabPermission(tpi4);

            //Add Module
            DesktopModuleController objDMC            = new DesktopModuleController();
            DesktopModuleInfo       desktopModuleInfo = objDMC.GetDesktopModuleByName("Clothes");

            ModuleDefinitionInfo moduleDefinitionInfo = new ModuleDefinitionInfo();
            ModuleInfo           moduleInfo           = new ModuleInfo();

            moduleInfo.PortalID                     = PortalId;
            moduleInfo.TabID                        = tabId;
            moduleInfo.ModuleOrder                  = 1;
            moduleInfo.ModuleTitle                  = "Clothes";
            moduleInfo.PaneName                     = "Clothes";
            moduleInfo.ModuleDefID                  = 160;
            moduleInfo.CacheTime                    = moduleDefinitionInfo.DefaultCacheTime; //Default Cache Time is 0
            moduleInfo.InheritViewPermissions       = true;                                  //Inherit View Permissions from Tab
            moduleInfo.AllTabs                      = false;
            moduleInfo.ModuleSettings[settingsName] = departmentId;

            ModuleController moduleController = new ModuleController();
            int moduleId = moduleController.AddModule(moduleInfo);

            //Set Module Permission
            ModulePermissionController objMPC = new ModulePermissionController();

            ModulePermissionInfo mpi1 = new ModulePermissionInfo();

            mpi1.ModuleID     = moduleId;
            mpi1.PermissionID = 1; //View Permission
            mpi1.AllowAccess  = true;
            mpi1.RoleID       = 0; //Role ID of Administrator
            objMPC.AddModulePermission(mpi1);

            ModulePermissionInfo mpi2 = new ModulePermissionInfo();

            mpi2.ModuleID     = moduleId;
            mpi2.PermissionID = 2; //Edit Permission
            mpi2.AllowAccess  = true;
            mpi2.RoleID       = 0; //Role ID of Administrator
            objMPC.AddModulePermission(mpi2);

            ModulePermissionInfo mpi5 = new ModulePermissionInfo();

            mpi5.ModuleID     = moduleId;
            mpi5.PermissionID = 1; //View Permission
            mpi5.AllowAccess  = true;
            mpi5.RoleID       = 1; //Role ID of Registered User
            objMPC.AddModulePermission(mpi5);
            return(tab);
        }
Ejemplo n.º 20
0
        private static void DoAddNewModule(string title, int desktopModuleId, string paneName, int position, int permissionType, string align)
        {
            TabPermissionCollection objTabPermissions = PortalSettings.Current.ActiveTab.TabPermissions;
            var objPermissionController = new PermissionController();
            var objModules = new ModuleController();

            new EventLogController();

            try
            {
                DesktopModuleInfo desktopModule;
                if (!DesktopModuleController.GetDesktopModules(PortalSettings.Current.PortalId).TryGetValue(desktopModuleId, out desktopModule))
                {
                    throw new ArgumentException("desktopModuleId");
                }
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
            }

            foreach (ModuleDefinitionInfo objModuleDefinition in
                     ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                var objModule = new ModuleInfo();
                objModule.Initialize(PortalSettings.Current.ActiveTab.PortalID);

                objModule.PortalID    = PortalSettings.Current.ActiveTab.PortalID;
                objModule.TabID       = PortalSettings.Current.ActiveTab.TabID;
                objModule.ModuleOrder = position;
                objModule.ModuleTitle = string.IsNullOrEmpty(title) ? objModuleDefinition.FriendlyName : title;
                objModule.PaneName    = paneName;
                objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                if (objModuleDefinition.DefaultCacheTime > 0)
                {
                    objModule.CacheTime = objModuleDefinition.DefaultCacheTime;
                    if (PortalSettings.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger)
                    {
                        ModuleInfo defaultModule = objModules.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true);
                        if ((defaultModule != null))
                        {
                            objModule.CacheTime = defaultModule.CacheTime;
                        }
                    }
                }

                switch (permissionType)
                {
                case 0:
                    objModule.InheritViewPermissions = true;
                    break;

                case 1:
                    objModule.InheritViewPermissions = false;
                    break;
                }

                // 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)
                {
                    if (objTabPermission.PermissionKey == "VIEW" && permissionType == 0)
                    {
                        //Don't need to explicitly add View permisisons if "Same As Page"
                        continue;
                    }

                    // 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 - 1; j++)
                    {
                        // create the module permission
                        var objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j];
                        if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == 1 && objTabPermission.PermissionKey != "EDIT")
                        {
                            //Only Page Editors get View permissions if "Page Editors Only"
                            continue;
                        }

                        ModulePermissionInfo objModulePermission = AddModulePermission(objModule,
                                                                                       objSystemModulePermission,
                                                                                       objTabPermission.RoleID,
                                                                                       objTabPermission.UserID,
                                                                                       objTabPermission.AllowAccess);

                        // ensure that every EDIT permission which allows access also provides VIEW permission
                        if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess)
                        {
                            AddModulePermission(objModule,
                                                (PermissionInfo)arrSystemModuleViewPermissions[0],
                                                objModulePermission.RoleID,
                                                objModulePermission.UserID,
                                                true);
                        }
                    }

                    //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 - 1; j++)
                        {
                            // create the module permission
                            var objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j];

                            AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                        }
                    }
                }
                if (PortalSettings.Current.ContentLocalizationEnabled)
                {
                    Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalSettings.Current.PortalId);
                    //check whether original tab is exists, if true then set culture code to default language,
                    //otherwise set culture code to current.
                    if (new TabController().GetTabByCulture(objModule.TabID, PortalSettings.Current.PortalId, defaultLocale) != null)
                    {
                        objModule.CultureCode = defaultLocale.Code;
                    }
                    else
                    {
                        objModule.CultureCode = PortalSettings.Current.CultureCode;
                    }
                }
                else
                {
                    objModule.CultureCode = Null.NullString;
                }
                objModule.AllTabs   = false;
                objModule.Alignment = align;

                objModules.AddModule(objModule);
            }
        }
Ejemplo n.º 21
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Adds a New Module to a Pane.
        /// </summary>
        /// <param name="align">The alignment for the Modue.</param>
        /// <param name="desktopModuleId">The Id of the DesktopModule.</param>
        /// <param name="permissionType">The View Permission Type for the Module.</param>
        /// <param name="title">The Title for the resulting module.</param>
        /// <param name="paneName">The pane to add the module to.</param>
        /// <param name="position">The relative position within the pane for the module.</param>
        /// -----------------------------------------------------------------------------
        protected void AddNewModule(string title, int desktopModuleId, string paneName, int position, ViewPermissionType permissionType, string align)
        {
            TabPermissionCollection objTabPermissions = this.PortalSettings.ActiveTab.TabPermissions;
            var objPermissionController = new PermissionController();

            try
            {
                DesktopModuleInfo desktopModule;
                if (!DesktopModuleController.GetDesktopModules(this.PortalSettings.PortalId).TryGetValue(desktopModuleId, out desktopModule))
                {
                    throw new ArgumentException("desktopModuleId");
                }
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
            }

            int UserId = -1;

            if (this.Request.IsAuthenticated)
            {
                UserInfo objUserInfo = UserController.Instance.GetCurrentUserInfo();
                UserId = objUserInfo.UserID;
            }

            foreach (ModuleDefinitionInfo objModuleDefinition in
                     ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                var objModule = new ModuleInfo();
                objModule.Initialize(this.PortalSettings.PortalId);
                objModule.PortalID    = this.PortalSettings.PortalId;
                objModule.TabID       = this.PortalSettings.ActiveTab.TabID;
                objModule.ModuleOrder = position;
                if (string.IsNullOrEmpty(title))
                {
                    objModule.ModuleTitle = objModuleDefinition.FriendlyName;
                }
                else
                {
                    objModule.ModuleTitle = title;
                }

                objModule.PaneName    = paneName;
                objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                if (objModuleDefinition.DefaultCacheTime > 0)
                {
                    objModule.CacheTime = objModuleDefinition.DefaultCacheTime;
                    if (PortalSettings.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger)
                    {
                        ModuleInfo defaultModule = ModuleController.Instance.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true);
                        if (defaultModule != null)
                        {
                            objModule.CacheTime = defaultModule.CacheTime;
                        }
                    }
                }

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

                case ViewPermissionType.Edit:
                    objModule.InheritViewPermissions = false;
                    break;
                }

                // 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)
                {
                    if (objTabPermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.View)
                    {
                        // Don't need to explicitly add View permisisons if "Same As Page"
                        continue;
                    }

                    // 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 - 1; j++)
                    {
                        PermissionInfo objSystemModulePermission;
                        objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j];
                        if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.Edit && objTabPermission.PermissionKey != "EDIT")
                        {
                            // Only Page Editors get View permissions if "Page Editors Only"
                            continue;
                        }

                        ModulePermissionInfo objModulePermission = this.AddModulePermission(
                            objModule,
                            objSystemModulePermission,
                            objTabPermission.RoleID,
                            objTabPermission.UserID,
                            objTabPermission.AllowAccess);

                        // ensure that every EDIT permission which allows access also provides VIEW permission
                        if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess)
                        {
                            ModulePermissionInfo objModuleViewperm = this.AddModulePermission(
                                objModule,
                                (PermissionInfo)arrSystemModuleViewPermissions[0],
                                objModulePermission.RoleID,
                                objModulePermission.UserID,
                                true);
                        }
                    }

                    // 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 - 1; j++)
                        {
                            // create the module permission
                            PermissionInfo objCustomModulePermission;
                            objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j];
                            this.AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                        }
                    }
                }

                if (PortalSettings.Current.ContentLocalizationEnabled)
                {
                    Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalSettings.Current.PortalId);

                    // set the culture of the module to that of the tab
                    var tabInfo = TabController.Instance.GetTab(objModule.TabID, PortalSettings.Current.PortalId, false);
                    objModule.CultureCode = tabInfo != null ? tabInfo.CultureCode : defaultLocale.Code;
                }
                else
                {
                    objModule.CultureCode = Null.NullString;
                }

                objModule.AllTabs   = false;
                objModule.Alignment = align;
                ModuleController.Instance.AddModule(objModule);
            }
        }
        public string UpgradeModule(string version)
        {
            string[] _version    = version.Split(new char[] { '.' });
            int      major       = Convert.ToInt32(_version[0]);
            int      minor       = Convert.ToInt32(_version[1]);
            int      maintenance = Convert.ToInt32(_version[2]);

            if (major == 9)
            {
                if (minor == 0)
                {
                    if (maintenance == 0)
                    {
                        List <ModuleInfo> modulesList = ModuleController.GetAllModules().Cast <ModuleInfo>().ToList();

                        foreach (object m in modulesList)
                        {
                            ModuleInfo module = (ModuleInfo)m;
                            if (module.DesktopModule.FriendlyName == "Survey")
                            {
                                ModulePermissionCollection modulePermissions = module.ModulePermissions;
                                // Setting surveyresultstype: 0 = Public, 1 = Private
                                // goes to Permission
                                string surveyResultsTypeSetting = module.ModuleSettings["surveyresultstype"].ToString();
                                if (string.IsNullOrEmpty(surveyResultsTypeSetting))
                                {
                                    // if not defined: make it private to be safe...
                                    surveyResultsTypeSetting = "1";
                                }
                                // If it is public: All Users (RoleID: -1) have the permission to view the results
                                if (surveyResultsTypeSetting == "0")
                                {
                                    List <ModulePermissionInfo> viewResultsPermissions = modulePermissions.Where(mp => mp.ModuleID == module.ModuleID && mp.PermissionCode == ModuleSecurity.PERMISSION_CODE && mp.PermissionKey == ModuleSecurity.VIEW_RESULTS_PERMISSION && mp.RoleID == -1).ToList();
                                    if (viewResultsPermissions.Count() == 0)
                                    {
                                        ModulePermissionInfo viewResultPermission = new ModulePermissionInfo();
                                        viewResultPermission.AllowAccess  = true;
                                        viewResultPermission.RoleID       = -1;
                                        viewResultPermission.PermissionID = ((PermissionInfo)PermissionController.GetPermissionByCodeAndKey(ModuleSecurity.PERMISSION_CODE, ModuleSecurity.VIEW_RESULTS_PERMISSION)[0]).PermissionID;
                                        viewResultPermission.ModuleID     = module.ModuleID;
                                        modulePermissions.Add(viewResultPermission);
                                        ModulePermissionController.SaveModulePermissions(module);
                                    }
                                }
                                // All roles and user who have edit permissions get the View results permission as well
                                List <ModulePermissionInfo> editModulePermissions = modulePermissions.Where(mp => mp.ModuleID == module.ModuleID && mp.PermissionCode == "SYSTEM_MODULE_DEFINITION" && mp.PermissionKey == "EDIT").ToList();
                                foreach (ModulePermissionInfo editModulePermission in editModulePermissions)
                                {
                                    List <ModulePermissionInfo> viewResultsPermissions;
                                    ModulePermissionInfo        viewResultPermission = new ModulePermissionInfo();
                                    if (String.IsNullOrEmpty(editModulePermission.RoleName))
                                    {
                                        // when the role name is empty it is a user poermission
                                        viewResultsPermissions        = modulePermissions.Where(mp => mp.PermissionCode == ModuleSecurity.PERMISSION_CODE && mp.PermissionKey == ModuleSecurity.VIEW_RESULTS_PERMISSION && mp.UserID == editModulePermission.UserID).ToList();
                                        viewResultPermission.UserID   = editModulePermission.UserID;
                                        viewResultPermission.Username = editModulePermission.Username;
                                    }
                                    else
                                    {
                                        // role permission
                                        viewResultsPermissions        = modulePermissions.Where(mp => mp.PermissionCode == ModuleSecurity.PERMISSION_CODE && mp.PermissionKey == ModuleSecurity.VIEW_RESULTS_PERMISSION && mp.RoleID == editModulePermission.RoleID).ToList();
                                        viewResultPermission.RoleID   = editModulePermission.RoleID;
                                        viewResultPermission.RoleName = editModulePermission.RoleName;
                                    }
                                    if (viewResultsPermissions.Count() == 0)
                                    {
                                        // if the permission for this user/role is not already set...
                                        viewResultPermission.AllowAccess  = true;
                                        viewResultPermission.PermissionID = ((PermissionInfo)PermissionController.GetPermissionByCodeAndKey(ModuleSecurity.PERMISSION_CODE, ModuleSecurity.VIEW_RESULTS_PERMISSION)[0]).PermissionID;
                                        viewResultPermission.ModuleID     = module.ModuleID;
                                        modulePermissions.Add(viewResultPermission);
                                        ModulePermissionController.SaveModulePermissions(module);
                                    }
                                }
                                // Setting surveytracking: 0 = Cookie, 1 = Registered user
                                // goes to Permission
                                string surveyTrackingSetting = module.ModuleSettings["surveytracking"].ToString();
                                if (string.IsNullOrEmpty(surveyTrackingSetting))
                                {
                                    // if not defined: make it per user
                                    surveyTrackingSetting = "1";
                                }
                                // If it is Cookie tracking: All users (RoleId: -1) have the permissions to participate in the survey
                                // Otherwise: Registered Users have the permission to participate in the survey
                                // Is there a better way than using the hard coded role IDs?
                                int permittedRoleID = (surveyTrackingSetting == "0" ? -1 : 1);
                                List <ModulePermissionInfo> participatePermissions = modulePermissions.Where(mp => mp.ModuleID == module.ModuleID && mp.PermissionCode == ModuleSecurity.PERMISSION_CODE && mp.PermissionKey == ModuleSecurity.PARTICIPATE_PERMISSION && mp.RoleID == permittedRoleID).ToList();
                                if (participatePermissions.Count() == 0)
                                {
                                    ModulePermissionInfo participatePermission = new ModulePermissionInfo();
                                    participatePermission.AllowAccess  = true;
                                    participatePermission.RoleID       = permittedRoleID;
                                    participatePermission.PermissionID = ((PermissionInfo)PermissionController.GetPermissionByCodeAndKey(ModuleSecurity.PERMISSION_CODE, ModuleSecurity.PARTICIPATE_PERMISSION)[0]).PermissionID;
                                    participatePermission.ModuleID     = module.ModuleID;
                                    modulePermissions.Add(participatePermission);
                                    ModulePermissionController.SaveModulePermissions(module);
                                }
                                // Is Module a quiz?
                                List <SurveysInfo> surveys = SurveysController.GetAll(module.ModuleID);
                                bool isQuiz = false;
                                List <SurveysInfo> statisticalSurveys = new List <SurveysInfo>();
                                foreach (SurveysInfo survey in surveys)
                                {
                                    List <SurveyOptionsInfo> surveyOptions = SurveyOptionsController.GetAll(survey.SurveyID);
                                    int countCorrect = surveyOptions.Where(so => so.IsCorrect).Count();
                                    if (countCorrect > 0)
                                    {
                                        isQuiz = true;
                                    }
                                    else
                                    {
                                        statisticalSurveys.Add(survey);
                                    }
                                }
                                if (isQuiz)
                                {
                                    ModuleController.Instance.UpdateModuleSetting(module.ModuleID, "SurveyType", ((int)SurveyType.Quiz).ToString());
                                    foreach (SurveysInfo statisticalSurvey in statisticalSurveys)
                                    {
                                        statisticalSurvey.IsStatistical = true;
                                        SurveysController.AddOrChange(statisticalSurvey, XmlDataProvider.SurveyOptionsToXml(SurveyOptionsController.GetAll(statisticalSurvey.SurveyID)), -1);
                                    }
                                }
                                string surveyClosingDate = module.ModuleSettings["surveyclosingdate"].ToString();
                                if (!(string.IsNullOrEmpty(surveyClosingDate)))
                                {
                                    ModuleController.Instance.DeleteModuleSetting(module.ModuleID, "surveyclosingdate");
                                    ModuleController.Instance.UpdateModuleSetting(module.ModuleID, "SurveyClosingDate", surveyClosingDate);
                                }
                                // Remove unused old settings
                                ModuleController.Instance.DeleteModuleSetting(module.ModuleID, "surveyresultstype");
                                ModuleController.Instance.DeleteModuleSetting(module.ModuleID, "surveytracking");
                                ModuleController.Instance.DeleteModuleSetting(module.ModuleID, "surveyresulttemplate");
                                ModuleController.Instance.DeleteTabModuleSetting(module.TabModuleID, "surveygraphwidth");
                            }
                        }
                    }
                }
            }
            return(string.Format("Upgrading to version {0}.", version));
        }
Ejemplo n.º 23
0
        protected override void AddPermission(PermissionInfo permission, int roleId, string roleName, int userId, string displayName, bool allowAccess)
        {
            var objPermission = new ModulePermissionInfo(permission);
            objPermission.ModuleID = ModuleID;
            objPermission.RoleID = roleId;
            objPermission.RoleName = roleName;
            objPermission.AllowAccess = allowAccess;
            objPermission.UserID = userId;
            objPermission.DisplayName = displayName;
            _ModulePermissions.Add(objPermission, true);

            //Clear Permission List
            _PermissionsList = null;
        }
        private int AddNewModule(TabInfo tab, string title, int desktopModuleId, string paneName, int permissionType, string align)
        {
            TabPermissionCollection objTabPermissions = tab.TabPermissions;
            var objPermissionController = new PermissionController();
            int j;

            foreach (ModuleDefinitionInfo objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                var objModule = new ModuleInfo();
                objModule.Initialize(tab.PortalID);

                objModule.PortalID = tab.PortalID;
                objModule.TabID    = tab.TabID;
                if (string.IsNullOrEmpty(title))
                {
                    objModule.ModuleTitle = objModuleDefinition.FriendlyName;
                }
                else
                {
                    objModule.ModuleTitle = title;
                }
                objModule.PaneName               = paneName;
                objModule.ModuleDefID            = objModuleDefinition.ModuleDefID;
                objModule.CacheTime              = 0;
                objModule.InheritViewPermissions = true;
                objModule.DisplayTitle           = 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)
                {
                    if (objTabPermission.PermissionKey == "VIEW" && permissionType == 0)
                    {
                        //Don't need to explicitly add View permisisons if "Same As Page"
                        continue;
                    }

                    // get the system module permissions for the permissionkey
                    ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);
                    // loop through the system module permissions
                    for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++)
                    {
                        // create the module permission
                        PermissionInfo objSystemModulePermission = default(PermissionInfo);
                        objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j];
                        if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == 1 && objTabPermission.PermissionKey != "EDIT")
                        {
                            //Only Page Editors get View permissions if "Page Editors Only"
                            continue;
                        }

                        ModulePermissionInfo objModulePermission = AddModulePermission(objModule,
                                                                                       objSystemModulePermission,
                                                                                       objTabPermission.RoleID,
                                                                                       objTabPermission.UserID,
                                                                                       objTabPermission.AllowAccess);

                        // ensure that every EDIT permission which allows access also provides VIEW permission
                        if (objModulePermission.PermissionKey == "EDIT" & objModulePermission.AllowAccess)
                        {
                            ModulePermissionInfo objModuleViewperm = AddModulePermission(objModule,
                                                                                         (PermissionInfo)arrSystemModuleViewPermissions[0],
                                                                                         objModulePermission.RoleID,
                                                                                         objModulePermission.UserID,
                                                                                         true);
                        }
                    }
                }

                objModule.AllTabs   = false;
                objModule.Alignment = align;

                return(ModuleController.Instance.AddModule(objModule));
            }
            return(-1);
        }
        /// <summary>
        /// Updates a Permission
        /// </summary>
        /// <param name="permission">The permission being updated</param>
        /// <param name="roleName">The name of the role</param>
        /// <param name="roleid">The id of the role</param>
        /// <param name="allowAccess">The value of the permission</param>
        protected override void UpdatePermission( PermissionInfo permission, int roleid, string roleName, bool allowAccess )
        {
            bool isMatch = false;
            ModulePermissionInfo objPermission;
            int permissionId = permission.PermissionID;

            //Search ModulePermission Collection for the permission to Update
            foreach( ModulePermissionInfo tempLoopVar_objPermission in ModulePermissions )
            {
                objPermission = tempLoopVar_objPermission;
                if( objPermission.PermissionID == permissionId && objPermission.RoleID == roleid )
                {
                    //ModulePermission is in collection
                    if( !allowAccess )
                    {
                        //Remove from collection as we only keep AllowAccess permissions
                        ModulePermissions.Remove( objPermission );
                    }
                    isMatch = true;
                    break;
                }
            }

            //ModulePermission not found so add new
            if( !isMatch && allowAccess )
            {
                objPermission = new ModulePermissionInfo();
                objPermission.PermissionID = permissionId;
                objPermission.RoleName = roleName;
                objPermission.RoleID = roleid;
                objPermission.AllowAccess = allowAccess;
                objPermission.ModuleID = ModuleID;
                ModulePermissions.Add( objPermission );
            }
        }
        /// <summary>
        /// Parse the Permission Keys used to persist the Permissions in the ViewState
        /// </summary>
        /// <param name="Settings">A string array of settings</param>
        /// <param name="arrPermisions">An Arraylist to add the Permission object to</param>
        private void ParsePermissionKeys( string[] Settings, ArrayList arrPermisions )
        {
            ModulePermissionInfo objModulePermission;

            objModulePermission = new ModulePermissionInfo();
            objModulePermission.PermissionID = Convert.ToInt32( Settings.Length > 1 ? Settings[1] : "1" );
            objModulePermission.RoleID = Convert.ToInt32(Settings.Length > 4 ? Settings[4] : "0" );

            if (Settings.Length < 2)
            {
                objModulePermission.ModulePermissionID = -1;
            }
            else
            {
                objModulePermission.ModulePermissionID = Convert.ToInt32(Settings[2].Equals("") ? "-1" : Settings[2]);
            }
            objModulePermission.RoleName = Settings.Length > 3 ? Settings[3] : String.Empty;
            objModulePermission.AllowAccess = true;

            objModulePermission.ModuleID = ModuleID;
            arrPermisions.Add( objModulePermission );
        }
Ejemplo n.º 27
0
        private void MakeModerator_Editor()
        {
            try
            {
                bool blEditor;
                var  arrRoles = new ArrayList();
                var  arrUsers = new ArrayList();

                var objPermission           = default(ModulePermissionInfo);
                var objPermissionController = new PermissionController();

                var objModules = new ModuleController();
                // Get existing module permissions
                var objModule = objModules.GetModule(this.ModuleId, this.TabId);

                var objModulePermissions2 = new ModulePermissionCollection();
                foreach (ModulePermissionInfo perm in objModule.ModulePermissions)
                {
                    if (perm.PermissionKey == "EVENTSMOD" && perm.AllowAccess ||
                        perm.PermissionKey == "EDIT" && perm.AllowAccess)
                    {
                        blEditor = false;
                        foreach (ModulePermissionInfo perm2 in objModule.ModulePermissions)
                        {
                            if (perm2.PermissionKey == "EVENTSEDT" &&
                                ((perm.RoleID == perm2.RoleID) & (perm.RoleID >= 0) ||
                                 (perm.UserID == perm2.UserID) & (perm.UserID >= 0)))
                            {
                                if (perm2.AllowAccess)
                                {
                                    blEditor = true;
                                }
                                else
                                {
                                    objModulePermissions2.Add(perm2);
                                }
                            }
                        }
                        if (blEditor == false)
                        {
                            if (perm.UserID >= 0)
                            {
                                arrUsers.Add(perm.UserID);
                            }
                            else
                            {
                                arrRoles.Add(perm.RoleID);
                            }
                        }
                    }
                }

                // Remove negative edit permissions where user is moderator
                foreach (ModulePermissionInfo perm in objModulePermissions2)
                {
                    objModule.ModulePermissions.Remove(perm);
                }

                var objEditPermissions =
                    objPermissionController.GetPermissionByCodeAndKey("EVENTS_MODULE", "EVENTSEDT");
                var objEditPermission = (PermissionInfo)objEditPermissions[0];

                foreach (int iRoleID in arrRoles)
                {
                    // Add Edit Permission for Moderator Role
                    objPermission                = new ModulePermissionInfo();
                    objPermission.RoleID         = iRoleID;
                    objPermission.ModuleID       = this.ModuleId;
                    objPermission.PermissionKey  = objEditPermission.PermissionKey;
                    objPermission.PermissionName = objEditPermission.PermissionName;
                    objPermission.PermissionCode = objEditPermission.PermissionCode;
                    objPermission.PermissionID   = objEditPermission.PermissionID;
                    objPermission.AllowAccess    = true;
                    objModule.ModulePermissions.Add(objPermission);
                }
                foreach (int iUserID in arrUsers)
                {
                    objPermission                = new ModulePermissionInfo();
                    objPermission.UserID         = iUserID;
                    objPermission.ModuleID       = this.ModuleId;
                    objPermission.PermissionKey  = objEditPermission.PermissionKey;
                    objPermission.PermissionName = objEditPermission.PermissionName;
                    objPermission.PermissionCode = objEditPermission.PermissionCode;
                    objPermission.PermissionID   = objEditPermission.PermissionID;
                    objPermission.AllowAccess    = true;
                    objModule.ModulePermissions.Add(objPermission);
                }
                ModulePermissionController.SaveModulePermissions(objModule);
            }
            catch (Exception exc)
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Ejemplo n.º 28
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Parse the Permission Keys used to persist the Permissions in the ViewState
        /// </summary>
        /// <param name="Settings">A string array of settings</param>
        /// <history>
        ///     [cnurse]    01/09/2006  Documented
        /// </history>
        /// -----------------------------------------------------------------------------
        private ModulePermissionInfo ParseKeys(string[] Settings)
        {
            var objModulePermission = new ModulePermissionInfo();

            //Call base class to load base properties
            base.ParsePermissionKeys(objModulePermission, Settings);
            if (String.IsNullOrEmpty(Settings[2]))
            {
                objModulePermission.ModulePermissionID = -1;
            }
            else
            {
                objModulePermission.ModulePermissionID = Convert.ToInt32(Settings[2]);
            }
            objModulePermission.ModuleID = ModuleID;
            return objModulePermission;
        }
Ejemplo n.º 29
0
        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();

            Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController();
            int j;

            try
            {
                DesktopModuleInfo desktopModule = null;
                if (!DesktopModuleController.GetDesktopModules(PortalSettings.PortalId).TryGetValue(desktopModuleId, out desktopModule))
                {
                    throw new ArgumentException("desktopModuleId");
                }
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
            }
            int UserId = -1;

            if (Request.IsAuthenticated)
            {
                UserInfo objUserInfo = UserController.GetCurrentUserInfo();
                UserId = objUserInfo.UserID;
            }
            foreach (ModuleDefinitionInfo objModuleDefinition in ModuleDefinitionController.GetModuleDefinitionsByDesktopModuleID(desktopModuleId).Values)
            {
                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.PaneName    = paneName;
                objModule.ModuleDefID = objModuleDefinition.ModuleDefID;
                if (objModuleDefinition.DefaultCacheTime > 0)
                {
                    objModule.CacheTime = objModuleDefinition.DefaultCacheTime;
                    if (PortalSettings.Current.DefaultModuleId > Null.NullInteger && PortalSettings.Current.DefaultTabId > Null.NullInteger)
                    {
                        ModuleInfo defaultModule = objModules.GetModule(PortalSettings.Current.DefaultModuleId, PortalSettings.Current.DefaultTabId, true);
                        if (defaultModule != null)
                        {
                            objModule.CacheTime = defaultModule.CacheTime;
                        }
                    }
                }
                switch (permissionType)
                {
                case ViewPermissionType.View:
                    objModule.InheritViewPermissions = true;
                    break;

                case ViewPermissionType.Edit:
                    objModule.InheritViewPermissions = false;
                    break;
                }
                ArrayList arrSystemModuleViewPermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", "VIEW");
                foreach (TabPermissionInfo objTabPermission in objTabPermissions)
                {
                    if (objTabPermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.View)
                    {
                        continue;
                    }
                    ArrayList arrSystemModulePermissions = objPermissionController.GetPermissionByCodeAndKey("SYSTEM_MODULE_DEFINITION", objTabPermission.PermissionKey);
                    for (j = 0; j <= arrSystemModulePermissions.Count - 1; j++)
                    {
                        PermissionInfo objSystemModulePermission;
                        objSystemModulePermission = (PermissionInfo)arrSystemModulePermissions[j];
                        if (objSystemModulePermission.PermissionKey == "VIEW" && permissionType == ViewPermissionType.Edit && objTabPermission.PermissionKey != "EDIT")
                        {
                            continue;
                        }
                        ModulePermissionInfo objModulePermission = AddModulePermission(objModule, objSystemModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                        if (objModulePermission.PermissionKey == "EDIT" && objModulePermission.AllowAccess)
                        {
                            ModulePermissionInfo objModuleViewperm = AddModulePermission(objModule, (PermissionInfo)arrSystemModuleViewPermissions[0], objModulePermission.RoleID, objModulePermission.UserID, true);
                        }
                    }
                    if (objTabPermission.PermissionKey == "EDIT")
                    {
                        ArrayList arrCustomModulePermissions = objPermissionController.GetPermissionsByModuleDefID(objModule.ModuleDefID);
                        for (j = 0; j <= arrCustomModulePermissions.Count - 1; j++)
                        {
                            PermissionInfo objCustomModulePermission;
                            objCustomModulePermission = (PermissionInfo)arrCustomModulePermissions[j];
                            AddModulePermission(objModule, objCustomModulePermission, objTabPermission.RoleID, objTabPermission.UserID, objTabPermission.AllowAccess);
                        }
                    }
                }
                objModule.AllTabs   = false;
                objModule.Alignment = align;
                objModules.AddModule(objModule);
            }
        }
Ejemplo n.º 30
0
        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);
            }
        }
Ejemplo n.º 31
0
        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)
            {
                DnnLog.Error(exc);

                return("Failed");
            }
        }