Пример #1
0
        /// <summary>
        /// 保存选择的权限
        /// </summary>
        private void SavePageBtnRule()
        {
            string idlist = this.ddl_For.SelectedValue;
            Dictionary <int, string> roles = new Dictionary <int, string>();

            foreach (GridViewRow dgitem in this.gvInRole.Rows)
            {
                if (dgitem.RowType == DataControlRowType.DataRow)
                {
                    int           pid     = this.gvInRole.DataKeys[dgitem.RowIndex].Value.GetInt(0);
                    StringBuilder rolestr = new StringBuilder();
                    rolestr.Append(GetBtnRightsFromGridViewRow(dgitem, "r_1"));
                    rolestr.Append(GetBtnRightsFromGridViewRow(dgitem, "r_2"));
                    rolestr.Append(GetBtnRightsFromGridViewRow(dgitem, "r_3"));
                    rolestr.Append(GetBtnRightsFromGridViewRow(dgitem, "r_4"));
                    rolestr.Append(GetBtnRightsFromGridViewRow(dgitem, "r_5"));
                    rolestr.Append(GetBtnRightsFromGridViewRow(dgitem, "r_6"));
                    rolestr.Append(GetBtnRightsFromGridViewRow(dgitem, "r_7"));
                    roles.Add(pid, rolestr.ToString());
                }
            }

            IRightsSetting irs = GetInterface.GetIRightsSetting(this.NowSettingType);

            irs.UpdateBtnExp(idlist.ToIntList(','), roles);

            SiteRuleCheck.FlushPageAndRightCache();

            ReloadRoles();
        }
Пример #2
0
        /// <summary>
        /// 移除对象的某个权限
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvInRole_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int            pageid = this.gvInRole.DataKeys[e.RowIndex].Value.GetInt(0);
            string         idlist = this.ddl_For.SelectedValue;
            IRightsSetting irs    = GetInterface.GetIRightsSetting(this.NowSettingType);

            irs.RemoveRole(idlist.ToIntList(','), pageid);

            SiteRuleCheck.FlushPageAndRightCache();

            ReloadRoles();
        }
Пример #3
0
        /// <summary>
        /// 取得对象在选择的根目录下的权限,同时绑定待选页面
        /// </summary>
        private void BindChildRight()
        {
            //取得正确的接口用于取子项
            IRightsSetting irs = GetInterface.GetIRightsSetting(this.NowSettingType);

            if (irs == null)
            {
                return;
            }

            // 取得对象列表
            string foridlist = this.ddl_For.SelectedValue;

            // 取根目录
            int parentid = this.ddl_Root.SelectedValue.GetInt(0, false);

            this.NowSelectRootName = this.ddl_Root.SelectedItem.Text.ToString();
            this.NowSelectRootId   = parentid;

            IRoleManage         rmobj    = GetInterface.GetIRoleManage();
            IList <MR_PageInfo> NowChild = rmobj.GetListToList(parentid, false);//取得目录下的子节点


            IList <MR_PageInfo> nowRight;

            if (foridlist.IsNumber(false))  //如果是单个管理员或用户组
            {
                int forid = foridlist.GetInt(0, false);
                nowRight = irs.GetChildMenuToList(forid, parentid, false);
            }
            else    //如果是多个管理员或用户组
            {
                nowRight = this.NowAddToIdList;
            }


            this.NowInListId = new List <int>();
            foreach (MR_PageInfo aright in nowRight)
            {
                if (!this.NowInListId.Contains(aright.PID))
                {
                    this.NowInListId.Add(aright.PID);
                }
            }

            this.gvInRole.DataSource = nowRight;
            this.gvInRole.DataBind();

            this.dl_MenuList.DataSource = NowChild;
            this.dl_MenuList.DataBind();
        }
Пример #4
0
        /// <summary>
        /// 添加菜单项到当前选中的对象中
        /// </summary>
        /// <param name="pid"></param>
        /// <param name="defautExp"></param>
        private void AddPageRight(int pid, string defautExp)
        {
            int    rootid   = this.ddl_Root.SelectedValue.GetInt(0);
            string idlist   = this.ddl_For.SelectedValue;
            bool   isidlist = !idlist.IsNumber(false);

            IRightsSetting irs = GetInterface.GetIRightsSetting(this.NowSettingType);
            IRoleManage    irm = GetInterface.GetIRoleManage();

            //如果权限没有设置,手动设为000000
            if (string.IsNullOrEmpty(defautExp))
            {
                defautExp = "0000000";
            }

            //将这个权限赋给对象
            irs.AddRole(pid, idlist.ToIntList(','), defautExp, false);

            if (isidlist)  //如果对象是一组ID列表,需要将当前的表单缓存起来
            {
                if (this.NowAddToIdList.Count(t => t.PID == pid) == 0)
                {
                    MR_PageInfo info = irm.GetNode(pid);
                    info.BtnRightExp = defautExp;
                    this.NowAddToIdList.Add(info);
                }
                else
                {
                    MR_PageInfo info = this.NowAddToIdList.First(t => t.PID == pid);
                    info.BtnRightExp = defautExp;
                }
            }

            BindChildRight();

            SiteRuleCheck.FlushPageAndRightCache();
        }