/// <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(); }
/// <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(); }
/// <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(); }
/// <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(); }