public string publicKey = "";//公钥 //需要根据不同情况建立或修改的不同学校用户和不同类型的用户,本学校用户唯一,不需要全系统唯一 protected void Page_Load(object sender, EventArgs e) { //if (true)//如果没对应权限,及判断用户类型是否跨界,主要防止非法篡改数据出现 //{ // Response.Write("无对应权限"); // Response.End(); //} if (!IsPostBack) { //公钥 publicKey = PublicProperty.PublicKey.Replace("\r\n", ","); //权限组的增删改 isadd = true; isedit = true; isdel = true; islook = true; //先得到操作类型 dotype = Request.Params["dotype"].ToString(); string uid = "0"; //修改时的用户ID string uname = ""; //修改时的用户账号 if (dotype == "a") //添加 { //根据登录人员的身份,需要得到不同的参数 if (Com.Session.systype == "2")//超管,两个关键参数均需要确认 { schid = Request.Params["schid"].ToString(); systype = Request.Params["systype"].ToString(); if (string.IsNullOrEmpty(schid) || string.IsNullOrEmpty(systype))//如果没有对应参数中任意一个 { Response.Write("学校ID为空或者添加的类型为空!"); Response.End(); } } else//本学校超管或本学校有权限的用户,只能操作普通用户 { schid = Com.Session.schid; systype = "0"; } } else if (dotype == "e")//修改,不能修改用户的类型及学校参数 { btnname = "修改"; uid = Request.Params["uid"].ToString(); if (string.IsNullOrEmpty(uid)) { Response.Write("无对应修改的用户!"); Response.End(); } //获取修改的对应用户的 SchSystem.BLL.SchUserInfo userbll = new SchSystem.BLL.SchUserInfo(); SchSystem.Model.SchUserInfo usermodel = userbll.GetModel(int.Parse(uid)); if (usermodel != null && usermodel.UserId > 0) { //给默认的屏蔽密码,管理员不能随便修改,只能重置为123456 if (!string.IsNullOrEmpty(usermodel.PassWord)) //密码不为空 { if (usermodel.PassWord == Com.Public.StrToMD5("123456")) //初始密码 { usermodel.PassWord = "******"; } else//非初始密码 { usermodel.PassWord = "******"; } } else//密码为空 { usermodel.PassWord = ""; } umodelstr = Newtonsoft.Json.JsonConvert.SerializeObject(usermodel); schid = usermodel.SchId.ToString(); systype = usermodel.SysType.ToString(); uname = usermodel.UserName; } else { Response.Write("无该用户!"); Response.End(); } } else//不在添加及修改之内,则返回 { Response.Write("没有可供确认的操作类型!"); Response.End(); } //判断跨界操作的可能性 /*if (!Com.Public.isVa(schid, systype)) * { * Response.Write("出错,用户非法跨界操作!"); * Response.End(); * }*/ SchSystem.BLL.SchInfo schbll = new SchSystem.BLL.SchInfo(); schname = schbll.GetSchName(int.Parse(schid)); if (!string.IsNullOrEmpty(schid) && !string.IsNullOrEmpty(systype)) { //获取整个学校的科目 subs = Com.Public.GetDrp("sub", schid, "1", false, "", ""); //获取整个学校的部门 SchSystem.BLL.SchDepartInfo dptbll = new SchSystem.BLL.SchDepartInfo(); DataTable dtdept = dptbll.GetList("Pid pId,DepartId id,DepartName name,'false' checked", "SchId=" + schid + " and Stat=1 Order by OrderId").Tables[0]; //获取该用户的关联部门 SchSystem.BLL.SchUserDeptV udeptvbll = new SchSystem.BLL.SchUserDeptV(); string udeptids = udeptvbll.GetIds(" UserId='" + uid + "' and stat=1 and schid=" + schid); if (!string.IsNullOrEmpty(udeptids) && dtdept != null) { string[] ids = udeptids.Split(','); for (int i = 0; i < dtdept.Rows.Count; i++) { string id = dtdept.Rows[i]["id"].ToString(); if (ids.Contains(id)) { dtdept.Rows[i]["checked"] = "true"; } } } depts = Newtonsoft.Json.JsonConvert.SerializeObject(dtdept); //获取角色菜单 SchSystem.BLL.SchRole rolebll = new SchSystem.BLL.SchRole(); DataTable dtrole = rolebll.GetList("RoleId id,null pId,RoleName name,'false' checked", "Stat=1 and SchId=" + schid + " and SysType='" + systype + "' Order by RoleName").Tables[0]; if (dtrole.Rows.Count == 0) { //给个默认根节点 //DataRow dr = dtrole.NewRow(); //dr["id"] = "0"; //dr["pId"] = DBNull.Value; //dr["name"] = "权限组"; //dr["checked"] = "false"; //dtrole.Rows.Add(dr); } //获取该用户关联的角色 SchSystem.BLL.SchUserRoleV urolevbll = new SchSystem.BLL.SchUserRoleV(); string uroleids = urolevbll.GetIds(" UserId='" + uid + "' and stat=1 and schid=" + schid); if (!string.IsNullOrEmpty(uroleids) && dtrole != null) { string[] ids = uroleids.Split(','); for (int i = 0; i < dtrole.Rows.Count; i++) { string id = dtrole.Rows[i]["id"].ToString(); if (ids.Contains(id)) { dtrole.Rows[i]["checked"] = "true"; } } } roles = Newtonsoft.Json.JsonConvert.SerializeObject(dtrole); //获取功能树,查询条件需要根据用户种类和状态等,后面需要改 //根据学校拥有的子系统 SchSystem.BLL.SchAppRole schapprolebll = new SchSystem.BLL.SchAppRole(); string appstr = schapprolebll.GetAppStr(int.Parse(schid)); if (appstr != "") { appstr = " and (AppCode=1 or AppCode=2 or AppCode in (" + appstr + ")) "; } SchSystem.BLL.SchMenuInfoUserFunc funcbll = new SchSystem.BLL.SchMenuInfoUserFunc(); DataTable dtfunc = funcbll.GetList("MenuId id,Pid pId,TextName name,FuncCode funcode,'false' checked", " Stat=1 " + appstr + " Order by OrderId").Tables[0]; funcstr = Newtonsoft.Json.JsonConvert.SerializeObject(dtfunc); //获取特殊权限功能树 SchSystem.BLL.SchMenuInfoUser smieBll = new SchSystem.BLL.SchMenuInfoUser(); DataTable dtsmie = smieBll.GetList("MenuId id,Pid pId,TextName name,FuncCode funcode,'false' checked", " Stat=1 " + appstr + " Order by OrderId").Tables[0]; MenuInfoExt = Newtonsoft.Json.JsonConvert.SerializeObject(dtsmie); } } }
//获取学校系统管理或者普通应用菜单列表 public static DataTable SchMenuData(string cols, string thstr, string schid, string systype) { if (schid == "") { schid = Com.Session.schid; } //查询学校的子系统、资源服务模块状态 SchSystem.BLL.SchInfo siBll = new SchSystem.BLL.SchInfo(); DataTable dtschinfo = siBll.GetList("SonSysStat,SourceSerStat,HomeschServStat", "SchId='" + schid + "'").Tables[0]; string SonSysStat = dtschinfo.Rows[0]["SonSysStat"].ToString(); string SourceSerStat = dtschinfo.Rows[0]["SourceSerStat"].ToString(); string SourceXXTStat = dtschinfo.Rows[0]["HomeschServStat"].ToString(); DataTable dt = new DataTable(); SchSystem.BLL.SchAppRole schapprolebll = new SchSystem.BLL.SchAppRole(); string appstr = schapprolebll.GetAppStr(int.Parse(schid)); if (appstr != "") { appstr = " AppCode in (" + appstr + ")"; } //0普通前台通用菜单,1学校管理后台菜单 if (systype == "0") { string sqlstr = ""; //获取正常的 if (appstr == "") { sqlstr = " Stat=1 and (AppCode=1 or AppCode=2 " + thstr + ")"; } else { sqlstr = " Stat=1 and (AppCode=1 or AppCode=2 or " + appstr + " " + thstr + ")"; } //获取菜单表 SchSystem.BLL.SchMenuInfoUser menuuserbll = new SchSystem.BLL.SchMenuInfoUser(); dt = menuuserbll.GetList(cols, sqlstr + " order by OrderId ").Tables[0]; if (dt.Rows.Count > 0) { DataRow row = dt.NewRow(); row["id"] = 1; row["pId"] = 0; row["name"] = "首页"; dt.Rows.InsertAt(row, 0); } } else if (systype == "1") { string sqlstr = ""; //获取正常的 if (appstr == "") { sqlstr = " Stat=1 and (AppCode=0 or AppCode=1 or AppCode=2 " + thstr + ") "; } else { sqlstr = " Stat=1 and (AppCode=0 or AppCode=1 or AppCode=2 or " + appstr + "" + thstr + ") "; } if (SonSysStat == "0" || SonSysStat == "") //子系统状态为0时,不显示管理平台菜单 { sqlstr += " and FuncCode<>22 and Pid<> (select MenuId from SchMenuInfoAdmin where FuncCode=22) "; //id是MenuId的别名 } if (SourceSerStat == "0" || SourceSerStat == "") //资源服务状态为0时,不显示资源平台菜单 { sqlstr += " and FuncCode<>23 and Pid<> (select MenuId from SchMenuInfoAdmin where FuncCode=23) "; } if (SourceXXTStat == "0" || SourceXXTStat == "")//家校互通服务状态为0时,不显示资源平台菜单 { sqlstr += " and FuncCode<>29 and Pid<> (select MenuId from SchMenuInfoAdmin where FuncCode=29) "; } SchSystem.BLL.SchMenuInfoAdmin menuuserbll = new SchSystem.BLL.SchMenuInfoAdmin(); dt = menuuserbll.GetList(cols, sqlstr + " order by OrderId").Tables[0]; //if (SonSysStat == "0" || SonSysStat == "")//子系统状态为0时,不显示管理平台菜单 //{ // DataRow[] dr = dt.Select("FuncCode=22");//通过FuncCode查找管理平台MenuId // int Manageid = int.Parse(dr[0]["id"].ToString());//id是MenuId的别称 // dt = DataRowToDataTable(dt, "FuncCode<>22 and pId<>" + Manageid);//查找出不属于管理平台的菜单项,并转换为DataTable //} //if (SourceSerStat == "0" || SourceSerStat == "")//资源服务状态为0时,不显示资源平台菜单 //{ // DataRow[] dr = dt.Select("FuncCode=23");//通过FuncCode查找资源平台MenuId // int Sourceid = int.Parse(dr[0]["id"].ToString());//id是MenuId的别称 // dt = DataRowToDataTable(dt, "FuncCode<>23 and pId<>" + Sourceid);//查找出不属于资源平台的菜单项,并转换为DataTable //} //if (SourceXXTStat == "0" || SourceXXTStat == "")//家校互通服务状态为0时,不显示资源平台菜单 //{ // DataRow[] dr = dt.Select("FuncCode=29");//通过FuncCode查找家校互通平台MenuId // int XXTid = int.Parse(dr[0]["id"].ToString());//id是MenuId的别称 // dt = DataRowToDataTable(dt, "FuncCode<>29 and pId<>" + XXTid);//查找出不属于家校互通平台的菜单项,并转换为DataTable //} } else { //获取子系统 if (appstr != "") { string sqlstr = "Stat=1 and (" + appstr + ")"; SchSystem.BLL.SchApp schappbll = new SchSystem.BLL.SchApp(); dt = schappbll.GetList(cols, sqlstr).Tables[0]; } } return(dt); }
public static DataTable MenuData(string thstr) { DataTable dt = new DataTable(); //根据登录的用户身份获取菜单,0学校普通用户,1学校管理员,2系统超管 if (Com.Session.systype == "0") { //再判断用户类型:0普通登录账号,1家长账号,2学生账号 if (Com.Session.usertp == "0")//普通老师 { string sqlstr = " Stat=1 "; //根据不同执教类型并集用户菜单,拼凑用户菜单查询条件 //普通账号执教类型:0普通老师,1年级主任,2科任组长,3班主任,4科任老师,多个用逗号隔开,在用户登录时根据用户情况赋值 //根据Com.Session.usertectp拆分数组,获取该用户能够获取的菜单 ((FuncLv like or FuncLv like )FuncLv:有逗号做查询最好,因现在暂不会重复,则先不做逗号间隔的查询 string funclv = "FuncLv like '%0%'"; if (!string.IsNullOrEmpty(Com.Session.usertectp)) { string[] tp = Com.Session.usertectp.Split(','); if (tp.Length > 0) { foreach (var item in tp) { funclv += " or FuncLv like '%" + item + "%'"; } } } //再根据合并的权限串,根据节点调取菜单组funccode串并组合,OR,并集用户权限 or (FuncCode in )) --如果有 string func = "0"; //菜单组节点,获取菜单组 string sqlfuncg = "0"; for (int i = 0; i < 4000; i++)//权限串长度 { bool bf = Com.Public.IsOne(Com.Session.userrolestr, i + 1); if (bf) { sqlfuncg += "," + (i + 1); } } if (sqlfuncg.Length > 2)//有相应的菜单组,获取菜单组 { //读取菜单组表 SchSystem.BLL.SchMenuInfoUserFunc menubll = new SchSystem.BLL.SchMenuInfoUserFunc(); func += "," + menubll.GetMenug("FuncCode in (" + sqlfuncg + ")"); } sqlstr += " and (" + funclv + " or FuncCode in (" + func + thstr + ")" + ")"; //再组装屏蔽菜单权限串SQL查询串,之前的条件均为并集,最后为差集.and (FuncCode not in ) string nfunc = "0"; for (int i = 0; i < 4000; i++)//权限串长度 { bool bf = Com.Public.IsOne(Com.Session.userrolestrext, i + 1); if (bf) { nfunc += "," + (i + 1); } } sqlstr += " and FuncCode not in (" + nfunc + ")"; //获取菜单表 SchSystem.BLL.SchMenuInfoUser menuuserbll = new SchSystem.BLL.SchMenuInfoUser(); dt = menuuserbll.GetList(sqlstr + "order by OrderId").Tables[0]; } else if (Com.Session.usertp == "1")//家长 { } else if (Com.Session.usertp == "2")//学生 { } } else//超管和学校超管共用菜单表,0学校普通用户,1学校管理员,2系统超管 { string sqlstr = " Stat=1 and FuncLv like '%" + Com.Session.systype + "%' "; SchSystem.BLL.SchMenuInfoIntegral menuuserbll = new SchSystem.BLL.SchMenuInfoIntegral(); dt = menuuserbll.GetList(sqlstr + "order by OrderId").Tables[0]; } return(dt); }
public string MenuInfoExt = ""; //特殊权限功能数据,json //需要根据不同情况建立或修改的不同学校用户和不同类型的用户,本学校用户唯一,不需要全系统唯一 protected void Page_Load(object sender, EventArgs e) { uid = Request.Params["uid"].ToString(); SchSystem.BLL.SchUserInfo userbll = new SchSystem.BLL.SchUserInfo(); SchSystem.Model.SchUserInfo usermodel = userbll.GetModel(int.Parse(uid)); if (usermodel != null && usermodel.UserId > 0) { utname = usermodel.UserTname; usex = usermodel.Sex == 0 ? "女" : "男"; ups = usermodel.Postion; ujb = usermodel.Title; utl = usermodel.Telno; uname = usermodel.UserName; if (usermodel.PassWord == Com.Public.StrToMD5("123456")) { upw = "123456"; upwname = "初始密码"; } else if (usermodel.PassWord == "") { upw = ""; upwname = "初始密码"; } else { upw = "●●●●●●"; upwname = "用户密码"; } ustat = usermodel.AccStat == 0 ? "禁用" : "正常"; SchSystem.BLL.SchUserDeptV dpvbll = new SchSystem.BLL.SchUserDeptV(); udpts = dpvbll.GetNames("UserId=" + uid); uno = "00000000".Substring(0, 8 - uid.Length) + uid; schid = usermodel.SchId.ToString(); SchSystem.BLL.SchRole rolebll = new SchSystem.BLL.SchRole(); DataTable dtrole = rolebll.GetList("RoleId id,null pId,RoleName name,'false' checked", "Stat=1 and SchId=" + schid + " and SysType='0' Order by RoleName").Tables[0]; if (dtrole.Rows.Count == 0) { //给个默认根节点 //DataRow dr = dtrole.NewRow(); //dr["id"] = "0"; //dr["pId"] = DBNull.Value; //dr["name"] = "权限组"; //dr["checked"] = "false"; //dtrole.Rows.Add(dr); } //获取该用户关联的角色 SchSystem.BLL.SchUserRoleV urolevbll = new SchSystem.BLL.SchUserRoleV(); string uroleids = urolevbll.GetIds(" UserId='" + uid + "' and stat=1 and schid=" + usermodel.SchId); if (!string.IsNullOrEmpty(uroleids) && dtrole != null) { string[] ids = uroleids.Split(','); for (int i = 0; i < dtrole.Rows.Count; i++) { string id = dtrole.Rows[i]["id"].ToString(); if (ids.Contains(id)) { dtrole.Rows[i]["checked"] = "true"; } } } roles = Newtonsoft.Json.JsonConvert.SerializeObject(dtrole); //获取功能树,查询条件需要根据用户种类和状态等,后面需要改 //根据学校拥有的子系统 SchSystem.BLL.SchAppRole schapprolebll = new SchSystem.BLL.SchAppRole(); string appstr = schapprolebll.GetAppStr(usermodel.SchId); if (appstr != "") { appstr = " and (AppCode=1 or AppCode=2 or AppCode in (" + appstr + ")) "; } SchSystem.BLL.SchMenuInfoUserFunc funcbll = new SchSystem.BLL.SchMenuInfoUserFunc(); DataTable dtfunc = funcbll.GetList("MenuId id,Pid pId,TextName name,FuncCode funcode,'false' checked", " Stat=1 " + appstr + " Order by OrderId").Tables[0]; funcstr = Newtonsoft.Json.JsonConvert.SerializeObject(dtfunc); //获取特殊权限功能树 SchSystem.BLL.SchMenuInfoUser smieBll = new SchSystem.BLL.SchMenuInfoUser(); DataTable dtsmie = smieBll.GetList("MenuId id,Pid pId,TextName name,FuncCode funcode,'false' checked", " Stat=1 " + appstr + " Order by OrderId").Tables[0]; MenuInfoExt = Newtonsoft.Json.JsonConvert.SerializeObject(dtsmie); } }