public bool canEdit(string right, GMUser user) { if (user.m_type == "admin") { return(true); } if (!m_rs.ContainsKey(user.m_type)) { return(false); } RightSet rs = m_rs[user.m_type]; return(rs.canEdit(right)); }
// 读取权限集 public void readRightSet() { m_rs.Clear(); List <Dictionary <string, object> > dataList = DBMgr.getInstance().executeQuery(TableName.GM_TYPE, 0, DbName.DB_ACCOUNT, null, 0, 0, null, "genTime"); if (dataList == null || dataList.Count == 0) { return; } for (int i = 0; i < dataList.Count; i++) { Dictionary <string, object> data = dataList[i]; RightSet rs = new RightSet(); string typeId = ""; DateTime time = DateTime.Now; foreach (var d in data) { if (d.Key == "_id") { continue; } else if (d.Key == "id") { typeId = Convert.ToString(d.Value); } else if (d.Key == "typeName") { rs.m_gmTypeName = Convert.ToString(d.Value); } else if (d.Key == "genTime") { time = Convert.ToDateTime(d.Value).ToLocalTime(); } else { rs.addRightByStr(d.Key, Convert.ToString(d.Value)); } } rs.setTime(time); m_rs.Add(typeId, rs); } }
public RightResCode hasRight(string right, HttpSessionState session, string className = "") { if (session["user"] == null) { return(RightResCode.right_not_login); } if (right == "") { return(RightResCode.right_success); } GMUser user = (GMUser)session["user"]; if (!user.isSwitchDbServer) { return(RightResCode.right_need_switch); } if (user.m_type == "admin") { return(RightResCode.right_success); } if (!m_rs.ContainsKey(user.m_type)) { return(RightResCode.right_no_right); } RightSet rs = m_rs[user.m_type]; if (!rs.canView(right)) { return(RightResCode.right_no_right); } return(RightResCode.right_success); }
public OpRes modifyGmTypeRight(string gmType, string fun, string right) { Dictionary <string, object> data = new Dictionary <string, object>(); data.Add(fun, right); bool res = DBMgr.getInstance().update(TableName.GM_TYPE, data, "id", gmType, 0, DbName.DB_ACCOUNT); if (res) { RightSet rst = null; if (m_rs.ContainsKey(gmType)) { rst = m_rs[gmType]; } else { rst = new RightSet(); m_rs.Add(gmType, rst); } rst.addRightByStr(fun, right); } return(res ? OpRes.opres_success : OpRes.op_res_failed); }