public static bool Check(BusinessModel bm) { using (var cdmdb = new UserDbc()) { var user = cdmdb.USERS.FirstOrDefault(c => c.USERNAME == bm.userName); if (user == null) { return(false); } if (user.DISABLED == false) { return(false); } Log.InfoFormat("permissioionCheck-{0}-,-{1}-", int.Parse(user.AUTHORITYLEVEL), (int)AuthorityLevel.Administrator); if (int.Parse(user.AUTHORITYLEVEL) == (int)AuthorityLevel.Administrator) { return(true); } var perm = JsonConvert.DeserializeObject <Dictionary <string, bool> >(user.LIMIT); if (perm.Where(keyValuePair => bm.type.ToString(CultureInfo.InvariantCulture) == keyValuePair.Key).Any(keyValuePair => keyValuePair.Value)) { return(true); } } return(false); }
public static bool CheckLevelPermission(BusinessModel bm) { using (var cdmdb = new UserDbc()) { var user = cdmdb.USERS.FirstOrDefault(c => c.USERNAME == bm.userName); if (user == null) { return(false); } if (user.DISABLED == false) { return(false); } switch ((AuthorityLevel)int.Parse(user.AUTHORITYLEVEL)) { case AuthorityLevel.Administrator: return(true); break; case AuthorityLevel.CountyMagistrate: if (bm.countyCode == user.COUNTYCODE) { return(true); } var permcm = JsonConvert.DeserializeObject <Dictionary <string, bool> >(user.LIMIT); if (permcm.Where(keyValuePair => bm.countyCode == keyValuePair.Key).Any(keyValuePair => keyValuePair.Value)) { return(true); } break; default: var perm = JsonConvert.DeserializeObject <Dictionary <string, bool> >(user.LIMIT); if (bm.countyCode == user.COUNTYCODE) { if ( perm.Where( keyValuePair => bm.type.ToString(CultureInfo.InvariantCulture) == keyValuePair.Key) .Any(keyValuePair => keyValuePair.Value)) { return(true); } } else { if (perm.Where(keyValuePair => bm.countyCode == keyValuePair.Key).Any(keyValuePair => keyValuePair.Value) && perm.Where( keyValuePair => bm.type.ToString(CultureInfo.InvariantCulture) == keyValuePair.Key) .Any(keyValuePair => keyValuePair.Value)) { return(true); } } break; } } return(false); }
public static bool Check(UserTransaction bm, UserDbc cdmdb) { //using (var cdmdb = new UserDbc()) //{ var user = cdmdb.USERS.FirstOrDefault(c => c.USERNAME == bm.UserName); if (user == null) { Log.InfoFormat("无此用户{0}.", bm.UserName); return(false); } if (user.DISABLED == false) { Log.InfoFormat("用户已经停用{0}.", bm.UserName); return(false); } // Log.InfoFormat("permissioionCheck-{0}-,-{1}-", int.Parse(user.AUTHORITYLEVEL), (int)AuthorityLevel.Administrator); switch ((AuthorityLevel)int.Parse(user.AUTHORITYLEVEL)) { case AuthorityLevel.CountyMagistrate: //switch (bm.UserTransactionType) //{ // case UserTransactionType.GetUserList: // case UserTransactionType.Add: // case UserTransactionType.Update: if (bm.UserInfo.CountyCode != user.COUNTYCODE) { return(false); } // break; //} break; case AuthorityLevel.Administrator: return(true); break; default: switch (bm.UserTransactionType) { case UserTransactionType.Update: return(true); break; } return(false); break; } // var perm = JsonConvert.DeserializeObject<Dictionary<string, bool>>(user.LIMIT); //return true; return(false); }
public static bool Check(BusinessModel bm) { using (var cdmdb = new UserDbc()) { var user = cdmdb.USERS.FirstOrDefault(c => c.USERNAME == bm.userName); if (user == null) { return(false); } var perm = JsonConvert.DeserializeObject <Dictionary <string, bool> >(user.LIMIT); if (perm.Where(keyValuePair => bm.type.ToString(CultureInfo.InvariantCulture) == keyValuePair.Key).Any(keyValuePair => keyValuePair.Value)) { return(true); } } return(false); }
public static bool CheckLevelPermission(UserTransaction bm, UserDbc cdmdb) { // if (cdmdb == null) return false; var user = cdmdb.USERS.FirstOrDefault(c => c.USERNAME == bm.UserName); if (user == null) { return(false); } if (user.DISABLED == false) { return(false); } switch ((AuthorityLevel)int.Parse(user.AUTHORITYLEVEL)) { case AuthorityLevel.Administrator: return(true); break; case AuthorityLevel.CountyMagistrate: if (bm.UserInfo.CountyCode == user.COUNTYCODE) { return(true); } var permcm = JsonConvert.DeserializeObject <Dictionary <string, bool> >(user.LIMIT); if (permcm.Where(keyValuePair => bm.UserInfo.CountyCode == keyValuePair.Key).Any(keyValuePair => keyValuePair.Value)) { return(true); } break; default: if (bm.UserTransactionType == UserTransactionType.ChangePass) { return(true); } //var perm = JsonConvert.DeserializeObject<Dictionary<string, bool>>(user.LIMIT); //if (bm.UserInfo.CountyCode == user.COUNTYCODE) //{ // if ( // perm.Where( // keyValuePair => bm..ToString(CultureInfo.InvariantCulture) == keyValuePair.Key) // .Any(keyValuePair => keyValuePair.Value)) // { // return true; // } //} //else //{ // if (perm.Where(keyValuePair => bm.countyCode == keyValuePair.Key).Any(keyValuePair => keyValuePair.Value) && perm.Where( // keyValuePair => bm.type.ToString(CultureInfo.InvariantCulture) == keyValuePair.Key) // .Any(keyValuePair => keyValuePair.Value)) // { // return true; // } //} break; } return(false); }
public SimpleResult UserTransaction([FromBody] UserTransaction param) { try { Log.Info("UserTransaction input:" + JsonConvert.SerializeObject(param)); if (!PermissionCheck.Check(param)) { return(new SimpleResult { StatusCode = "000007", Content = "没有权限" }); } var userslist = new List <PoliceUser>(); switch (param.UserTransactionType) { case UserTransactionType.Add: Log.Info("in user add-----------------"); using (var userdb = new UserDbc()) { var u = new USERS { AUTHORITYLEVEL = ((int)param.UserInfo.AuthorityLevel).ToString(), COUNTYCODE = param.UserInfo.CountyCode, LIMIT = JsonConvert.SerializeObject(param.UserInfo.Permission), PASSWORD = CdmEncrypt(param.UserInfo.Password), POLICENUM = param.UserInfo.PoliceCode, ID = new Random().Next(), DEPARTMENT = " ff", POST = param.UserInfo.UserRole.ToString(), USERNAME = param.UserInfo.UserName, REALNAME = param.UserInfo.RealName, }; userdb.USERS.Add(u); userdb.SaveChanges(); } break; case UserTransactionType.Disable: using (var userdb = new UserDbc()) { var theuser = userdb.USERS.FirstOrDefault(a => a.USERNAME == param.UserInfo.UserName); if (theuser == null) { return(new SimpleResult { StatusCode = "000005", Content = "无此用户:" + param.UserInfo.UserName }); } theuser.DISABLED = false; userdb.SaveChanges(); } break; case UserTransactionType.Update: using (var userdb = new UserDbc()) { var theuser = userdb.USERS.FirstOrDefault(a => a.USERNAME == param.UserInfo.UserName); if (theuser == null) { return(new SimpleResult { StatusCode = "000005", Content = "无此用户:" + param.UserInfo.UserName }); } theuser.REALNAME = param.UserInfo.RealName; theuser.LIMIT = JsonConvert.SerializeObject(param.UserInfo.Permission); userdb.SaveChanges(); } break; case UserTransactionType.ResetPass: using (var userdb = new UserDbc()) { var theuser = userdb.USERS.FirstOrDefault(a => a.USERNAME == param.UserInfo.UserName); if (theuser == null) { return(new SimpleResult { StatusCode = "000005", Content = "无此用户:" + param.UserInfo.UserName }); } theuser.PASSWORD = CdmEncrypt(param.UserInfo.Password); userdb.SaveChanges(); } break; case UserTransactionType.GetUserList: using (var userdb = new UserDbc()) { var theuser = userdb.USERS.Where(a => a.COUNTYCODE == param.UserInfo.CountyCode); userslist.AddRange(theuser.Select(users => new PoliceUser { AuthorityLevel = (AuthorityLevel)int.Parse(users.AUTHORITYLEVEL), CountyCode = users.COUNTYCODE, Notation = string.Empty, Password = users.PASSWORD, Permission = JsonConvert.DeserializeObject <Dictionary <string, bool> >(users.LIMIT), PoliceCode = users.POLICENUM, RealName = users.REALNAME, UserName = users.USERNAME, UserRole = (UserRole)int.Parse(users.POST) })); } return(new SimpleResult { StatusCode = "000000", Content = "", Users = userslist }); break; default: using (var userdb = new UserDbc()) { var theuser = userdb.USERS.FirstOrDefault(a => a.USERNAME == param.UserInfo.UserName); if (theuser == null) { return(new SimpleResult { StatusCode = "000005", Content = "无此用户:" + param.UserInfo.UserName }); } if (theuser.PASSWORD != CdmEncrypt(param.UserInfo.Password)) { return(new SimpleResult { StatusCode = "000004", Content = "密码错误" }); } } break; } Log.Info("before ok----------------"); return(new SimpleResult { StatusCode = "000000", Content = "ok" }); } catch (DbEntityValidationException e) { var err = string.Empty; foreach (var eve in e.EntityValidationErrors) { var err1 = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); err += err1; Log.InfoFormat(err1); foreach (var ve in eve.ValidationErrors) { var err2 = string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); Log.InfoFormat(err2); err += err2; } } return(new SimpleResult { StatusCode = "000003", Content = "DbEntityValidationException:" + err }); } catch (EntityDataSourceValidationException ex) { Log.Error("EntityDataSourceValidationException", ex); return(new SimpleResult { StatusCode = "000003", Content = "EntityDataSourceValidationException:" + ex.Message }); } catch (OracleException ex) { Log.Error("OracleException", ex); return(new SimpleResult { StatusCode = "000003", Content = "OracleException:" + ex.Message }); } catch (DbUpdateException ex) { Log.Error("DbUpdateException", ex); return(new SimpleResult { StatusCode = "000003", Content = "DbUpdateException:" + (ex.ToString().Contains("违反唯一约束条件 (CITY.USERSNAME)")?"用户名已经存在":ex.ToString()) }); } catch (Exception ex) { Log.Error("UserTransaction", ex); return(new SimpleResult { StatusCode = "000003", Content = ex.Message }); } }