protected void Module_Sub_ItemDataBound(object sender, RepeaterItemEventArgs e) { sys_ModuleTable s_Mt = (sys_ModuleTable)e.Item.DataItem; //获得当前设定角色权限 sys_RolePermissionTable s_Rp = BusinessFacade.sys_RolePermissionDisp(RoleID, ApplicationID, s_Mt.M_PageCode); DataList dlist = (DataList)e.Item.FindControl("PermissionList"); if (dlist != null) { List <sys_PermissionItem> lst = GetPermissionList(s_Mt.ModuleID); FormatPermission(lst, s_Mt.M_PageCode, s_Rp.P_Value); dlist.DataSource = lst; dlist.DataBind(); } #region "原有代码" /* * string rightString = string.Format("<img src='{0}'>",ResolveClientUrl("~/Manager/images/right.gif")); * string wrongString = string.Format("<img src='{0}'>",ResolveClientUrl("~/Manager/images/wrong.gif")); * string dispString = ""; * string SelectTxt = ""; * string DisableCheckbox = ""; * int TempStep = 1; * for (int i = 0; i < 8; i++) * { * TempStep = TempStep + TempStep; * Literal li = (Literal)e.Item.FindControl(string.Format("Lab{0}_Txt",TempStep)); * if (li != null) * { * //判断当前角色所属用户是否享有当前权限 * if (!UserData.CheckPageCode(Common.Get_UserID, ApplicationID, s_Mt.M_PageCode, TempStep)) * { * DisableCheckbox = "disabled"; * } * else * { * DisableCheckbox = ""; * } * if ((s_Rp.P_Value & TempStep) == TempStep) * { * dispString = rightString; * SelectTxt = "checked"; * } * else * { * dispString = wrongString; * SelectTxt = ""; * } * if (CMD == "Edit") * { * dispString = string.Format("<input type=checkbox id='PageCode{0}' name='PageCode{0}' value='{1}' {2} {3}>", s_Mt.M_PageCode, TempStep, SelectTxt, DisableCheckbox); * } * li.Text = dispString; * } * } */ #endregion }
/// <summary> /// 根据用户ID,获取用户模块权限列表 /// </summary> /// <param name="UserID">用户ID</param> /// <returns></returns> private static Hashtable Get_sys_RolePermissionTable(int UserID) { Hashtable PageCodeList = new Hashtable(); List <sys_RolePermissionTable> List = new List <sys_RolePermissionTable>(); QueryParam qp = new QueryParam(); qp.Where = string.Format("Where R_UserID={0}", UserID); int RecordCount = 0; ArrayList lst = BusinessFacade.sys_UserRolesList(qp, out RecordCount); foreach (sys_UserRolesTable var in lst) { Get_RolesPermission(var.R_RoleID, List); } for (int i = 0; i < List.Count; i++) { string Key = string.Format("{0}-{1}", List[i].P_ApplicationID, List[i].P_PageCode); if (PageCodeList.ContainsKey(Key)) { sys_RolePermissionTable Rpt = (sys_RolePermissionTable)PageCodeList[Key]; if (Rpt.P_Value != List[i].P_Value) { //PageCodeList[Key] = List[i]; Rpt.P_Value = Rpt.P_Value | List[i].P_Value; } } else { PageCodeList.Add(Key, List[i]); } } return(PageCodeList); }
/// <summary> /// 将记录集转为sys_RolePermissionTable实体类 /// </summary> /// <param name="dr">记录集</param> /// <returns>sys_RolePermissionTable</returns> protected object Populatesys_RolePermission(IDataReader dr) { sys_RolePermissionTable nc = new sys_RolePermissionTable(); if (!Convert.IsDBNull(dr["PermissionID"])) { nc.PermissionID = Convert.ToInt32(dr["PermissionID"]); // 角色应用权限自动ID } if (!Convert.IsDBNull(dr["P_RoleID"])) { nc.P_RoleID = Convert.ToInt32(dr["P_RoleID"]); // 角色ID与sys_Roles表中RoleID相 } if (!Convert.IsDBNull(dr["P_ApplicationID"])) { nc.P_ApplicationID = Convert.ToInt32(dr["P_ApplicationID"]); // 角色所属应用ID与sys_Applicatio } if (!Convert.IsDBNull(dr["P_PageCode"])) { nc.P_PageCode = Convert.ToString(dr["P_PageCode"]).Trim(); // 角色应用中页面权限代码 } if (!Convert.IsDBNull(dr["P_Value"])) { nc.P_Value = Convert.ToInt32(dr["P_Value"]); // 权限值 } return(nc); }
protected void Button1_Click(object sender, EventArgs e) { BusinessFacade.sys_RolePermission_Move(RoleID, ApplicationID); string TempPageCodeString = ""; string[] ArrayInt; int PageCodeValue = 0; sys_RolePermissionTable s_Rt = new sys_RolePermissionTable(); s_Rt.DB_Option_Action_ = "Insert"; s_Rt.P_ApplicationID = ApplicationID; s_Rt.P_RoleID = RoleID; foreach (string var in Request.Form) { if (var.Length > 8) { TempPageCodeString = var.Substring(0, 8); if (TempPageCodeString == "PageCode") { PageCodeValue = 0; TempPageCodeString = var.Substring(8, var.Length - 8); ArrayInt = Request.Form[var].Split(','); for (int i = 0; i < ArrayInt.Length; i++) { //判断当前用户是否享有当前权限 if (UserData.CheckPageCode(GetRoleUserID, ApplicationID, TempPageCodeString, Convert.ToInt32(ArrayInt[i]))) { PageCodeValue = PageCodeValue + Convert.ToInt32(ArrayInt[i]); } } s_Rt.P_PageCode = TempPageCodeString; s_Rt.P_Value = PageCodeValue; BusinessFacade.sys_RolePermissionInsertUpdate(s_Rt); } } } UserData.Move_RoleUserPermissionCache(RoleID); UpdateRolesUserToRulesPermission(RoleID, ApplicationID); EventMessage.MessageBox(1, "操作成功", string.Format("修改角色({0})应用({1})权限成功!", RoleID, ApplicationID), Icon_Type.OK, Common.GetHomeBaseUrl(string.Format("RolePermissionManager.aspx?RoleID={0}&ApplicationID={1}&CMD=Look", RoleID, ApplicationID))); }
/// <summary> /// 新增/删除/修改 sys_RolePermission /// </summary> /// <param name="fam">sys_RolePermissionTable实体类</param> /// <returns>返回0操正常</returns> public override int sys_RolePermissionInsertUpdate(sys_RolePermissionTable fam) { int rInt = 0; using (SqlConnection Conn = GetSqlConnection()) { SqlCommand cmd = new SqlCommand("sys_RolePermissionInsertUpdateDelete", Conn); cmd.CommandType = CommandType.StoredProcedure; //设置参数 cmd.Parameters.Add("@DB_Option_Action_", SqlDbType.NVarChar).Value = fam.DB_Option_Action_; //操作方法 Insert:增加 Update:修改 Delete:删除 Disp:显示单笔记录 cmd.Parameters.Add("@PermissionID", SqlDbType.Int).Value = fam.PermissionID; //角色应用权限自动ID cmd.Parameters.Add("@P_RoleID", SqlDbType.Int).Value = fam.P_RoleID; //角色ID与sys_Roles表中RoleID相 cmd.Parameters.Add("@P_ApplicationID", SqlDbType.Int).Value = fam.P_ApplicationID; //角色所属应用ID与sys_Applicatio cmd.Parameters.Add("@P_PageCode", SqlDbType.VarChar).Value = fam.P_PageCode; //角色应用中页面权限代码 cmd.Parameters.Add("@P_Value", SqlDbType.Int).Value = fam.P_Value; //权限值 Conn.Open(); rInt = Convert.ToInt32(cmd.ExecuteScalar()); cmd.Dispose(); Conn.Dispose(); Conn.Close(); } return(rInt); }
/// <summary> /// 新增/删除/修改 sys_RolePermission /// </summary> /// <param name="fam">sys_RolePermissionTable实体类</param> /// <returns>返回0操正常</returns> public abstract int sys_RolePermissionInsertUpdate(sys_RolePermissionTable fam);