Beispiel #1
0
 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);
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 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);
 }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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
                });
            }
        }