예제 #1
0
        private void AddChildMenuRight(MD_Menu _fmenu, string _fRightID, List <MD_RightDefine> _ret, MetaDataServiceClient _mdc)
        {
            IList <MD_Menu> _menuList = _mdc.GetSubMenuDefine(_fmenu.MenuID);

            foreach (MD_Menu _menu in _menuList)
            {
                MD_RightDefine _item    = new MD_RightDefine();
                decimal        _rightid = decimal.Parse(_menu.MenuID) * 1000;
                _item.RightID       = _rightid.ToString();
                _item.MenuID        = _menu.MenuID;
                _item.FatherRightID = _fRightID;
                _item.DisplayOrder  = _menu.DisplayOrder;
                _item.RightDescript = _menu.MenuToolTip;
                _item.RightName     = _menu.MenuName;
                _item.RightType     = "动态菜单";
                _item.RightMeta     = "";
                _ret.Add(_item);

                if (_menu.MenuType != null || _menu.MenuType != "")
                {
                    if (_menu.MenuType == "WEB.MENU")
                    {
                        AddWebMenuRight(_menu, _item, _ret);
                    }
                    else
                    {
                        AddPluginRight(_menu.MenuType, _item, _ret);
                    }
                }

                AddChildMenuRight(_menu, _item.RightID, _ret, _mdc);
            }
        }
예제 #2
0
        private void ShowChildren(TreeListNode _fnode, MD_RightDefine _fRight)
        {
            MC_FindRightByStr     _finder          = new MC_FindRightByStr(_fRight.RightID);
            List <MD_RightDefine> _childRightItems = RightData.FindAll(new Predicate <MD_RightDefine>(_finder.FindByFatherID));

            _childRightItems.Sort(new MC_RightComparer());
            foreach (MD_RightDefine _rd in _childRightItems)
            {
                TreeListNode _dwnode = this.treeList1.AppendNode(null, _fnode);
                _dwnode.SetValue(this.treeListColumn1, _rd.RightName);
                _dwnode.ImageIndex       = 0;
                _dwnode.SelectImageIndex = 2;
                _dwnode.Tag = _rd;
                ShowChildren(_dwnode, _rd);
            }
        }
예제 #3
0
        private void AddWebMenuRight(MD_Menu _menu, MD_RightDefine _fitem, List <MD_RightDefine> _ret)
        {
            string _rparam = StrUtils.GetMetaByName2("权限定义", _menu.MenuParameter);

            if (_rparam == "")
            {
                return;
            }
            string[] _rightList = _rparam.Split(',');
            foreach (string _rightString in _rightList)
            {
                string[] _rItems = _rightString.Split(':');
                if (_rItems.Length > 2)
                {
                    MD_RightDefine _item    = new MD_RightDefine();
                    decimal        _rightid = decimal.Parse(_fitem.RightID) + decimal.Parse(_rItems[0]);
                    _item.RightID = _rightid.ToString();
                    _item.MenuID  = _fitem.MenuID;
                    decimal _frightid = 0;
                    try
                    {
                        _frightid = decimal.Parse(_rItems[2]);
                    }
                    catch (Exception ex)
                    {
                        _frightid     = 0;
                        this.ErrorMsg = ex.Message;
                    }

                    decimal _fid = decimal.Parse(_fitem.RightID) + _frightid;
                    _item.FatherRightID = _fid.ToString();
                    _item.DisplayOrder  = int.Parse(_rItems[0]);
                    _item.RightDescript = _rItems[1];
                    _item.RightName     = _rItems[1];
                    _item.RightType     = "动态菜单";
                    _item.RightMeta     = "";
                    _ret.Add(_item);
                }
            }
        }
예제 #4
0
        private void AddPluginRight(string _menuType, MD_RightDefine _fitem, List <MD_RightDefine> _ret)
        {
            string[] _mString = _menuType.Split('.');
            //添加此类型菜单中的功能权限
            IPluginService _ps = (IPluginService)_application.GetService(typeof(IPluginService));

            IPlugin _plugin = _ps.GetPluginInstance(_mString[0]);

            if (_plugin != null)
            {
                List <MenuType> _mts = _plugin.GetMenuDefines();
                if (_mts != null)
                {
                    foreach (MenuType _mt in _mts)
                    {
                        if (_mt.TypeCommandName == _menuType)
                        {
                            foreach (MenuRightItem _crDefine in _mt.ChildRightItem)
                            {
                                MD_RightDefine _item    = new MD_RightDefine();
                                decimal        _rightid = decimal.Parse(_fitem.RightID) + _crDefine.Index;
                                _item.RightID       = _rightid.ToString();
                                _item.MenuID        = _fitem.MenuID;
                                _item.FatherRightID = _fitem.RightID;
                                _item.DisplayOrder  = _crDefine.Index;
                                _item.RightDescript = _crDefine.Title;
                                _item.RightName     = _crDefine.Title;
                                _item.RightType     = "动态菜单";
                                _item.RightMeta     = "";
                                _ret.Add(_item);
                            }
                        }
                    }
                }
            }
        }
예제 #5
0
 public bool FindByFatherID(MD_RightDefine _right)
 {
     return(_right.FatherRightID == FindStr);
 }
예제 #6
0
 public bool FindByID(MD_RightDefine _right)
 {
     return(_right.RightID == FindStr);
 }
예제 #7
0
        /// <summary>
        /// 创建新的权限树
        /// </summary>
        private void CreateNewRightTree()
        {
            IList <MD_Menu>       _menuList;
            List <MD_RightDefine> _ret = new List <MD_RightDefine>();

            using (MetaDataServiceClient _mdc = new MetaDataServiceClient())
            {
                #region 通过菜单定义建立权限项
                try
                {
                    this.backgroundWorker2.ReportProgress(10, "正在取菜单定义数据...");
                    _menuList = _mdc.GetMenuDefineOfNode(this.NodesData.DWDM);
                    this.backgroundWorker2.ReportProgress(10, "取菜单定义成功!");
                }
                catch (Exception ex)
                {
                    this.backgroundWorker2.ReportProgress(10, string.Format("取菜单定义数据失败!!!{0}", ex.Message));
                    return;
                }

                try
                {
                    foreach (MD_Menu _menu in _menuList)
                    {
                        MD_RightDefine _item    = new MD_RightDefine();
                        decimal        _rightid = decimal.Parse(_menu.MenuID) * 1000;
                        _item.RightID       = _rightid.ToString();
                        _item.MenuID        = _menu.MenuID;
                        _item.FatherRightID = "";
                        _item.DisplayOrder  = _menu.DisplayOrder;
                        _item.RightDescript = _menu.MenuToolTip;
                        _item.RightName     = _menu.MenuName;
                        _item.RightType     = "动态菜单";
                        _item.RightMeta     = "";
                        _ret.Add(_item);


                        if (_menu.MenuType != null || _menu.MenuType != "")
                        {
                            //添加此类型菜单中的功能权限
                            AddPluginRight(_menu.MenuType, _item, _ret);
                        }

                        AddChildMenuRight(_menu, _item.RightID, _ret, _mdc);
                    }
                }
                catch (Exception ex)
                {
                    this.backgroundWorker2.ReportProgress(10, string.Format("处理权限定义数据失败!!!{0}", ex.Message));
                    return;
                }
                #endregion


                this.backgroundWorker2.ReportProgress(10, "处理权限数据完成!正在写入...");
                try
                {
                    if (_mdc.SaveRightDefine(_ret.ToArray()))
                    {
                        this.RightData = _ret;
                    }
                    this.backgroundWorker2.ReportProgress(10, "写入权限数据完成...");
                }
                catch (Exception ex)
                {
                    this.backgroundWorker2.ReportProgress(10, string.Format("写入权限定义数据失败!!!{0}", ex.Message));
                }
            }
        }