コード例 #1
0
ファイル: LoadConfigFileService.cs プロジェクト: kickgod/lab
 public PrincipalConfig LoadPrincipalConfig(String principalId)
 {
     try
     {
         if (!File.Exists(Path.GetFullPath($@"{_hosting.ContentRootPath}/JsonConfig/{principalId}.json")))
         {
             throw new Exception($"账号为{principalId}的管理员的配置文件丢失!");
         }
         using (var stream = new FileStream(Path.GetFullPath($@"{_hosting.ContentRootPath}/JsonConfig/{principalId}.json"),
                                            FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
         {
             using (StreamReader reader = new StreamReader(stream))
             {
                 String          json   = reader.ReadToEnd();
                 PrincipalConfig config = JsonConvert.DeserializeObject <PrincipalConfig>(json);
                 return(config);
             };
         };
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
コード例 #2
0
 protected ACBrLibConfig(TLib acbrlib, ACBrSessao sessao) : base(acbrlib, sessao)
 {
     Principal     = new PrincipalConfig <TLib>(Parent);
     Sistema       = new SistemaConfig <TLib>(Parent);
     Proxy         = new ProxyConfig <TLib>(Parent);
     SoftwareHouse = new SoftwareHouseConfig <TLib>(Parent);
     Emissor       = new EmissorConfig <TLib>(Parent);
 }
コード例 #3
0
ファイル: PrincipalController.cs プロジェクト: kickgod/lab
        public IActionResult Delete([Required] String pId)
        {
            if (ModelState.IsValid)
            {
                PrincipalConfig principalConfig = _analysis.GetLoginUserConfig(HttpContext);
                if (!principalConfig.Power.SystemManager)
                {
                    if (!_context.Principals.Any(p => p.PrincipalId == principalConfig.PrincipalId && p.PrincipalStatus == PrincipalStatus.Super))
                    {
                        return(Json(new
                        {
                            isOk = false,
                            message = "你并无系统管理操作权限"
                        }));
                    }
                }
                Principal principal = _context.Principals.Find(pId);
                if (principal != null)
                {
                    _context.Remove(principal);
                    _context.SaveChanges();

                    String path = Path.GetFullPath($@"{_hosting.ContentRootPath}/JsonConfig/{pId}.json");
                    if (System.IO.File.Exists(path))
                    {
                        System.IO.File.Delete(path);
                    }

                    return(Json(new
                    {
                        isOk = true,
                        message = "删除成功! "
                    }));
                }
                else
                {
                    return(Json(new
                    {
                        isOk = true,
                        message = "管理员不存在或者已被删除! "
                    }));
                }
            }
            else
            {
                return(Json(new
                {
                    isOk = false,
                    message = $"参数错误!输入了不合规范的参数。 "
                }));
            }
        }
コード例 #4
0
ファイル: PrincipalController.cs プロジェクト: kickgod/lab
 public IActionResult Update([Required] String pId, String jobId, [Required] String name,
                             [Required] String phone, [Required] PrincipalStatus status)
 {
     if (ModelState.IsValid)
     {
         PrincipalConfig principalConfig = _analysis.GetLoginUserConfig(HttpContext);
         if (!principalConfig.Power.SystemManager)
         {
             if (!_context.Principals.Any(p => p.PrincipalId == principalConfig.PrincipalId && p.PrincipalStatus == PrincipalStatus.Super))
             {
                 return(Json(new
                 {
                     isOk = false,
                     message = "你并无系统管理操作权限"
                 }));
             }
         }
         Principal principal = _context.Principals.FirstOrDefault(val => val.PrincipalId == pId);
         if (principal != null)
         {
             principal.JobNumber       = jobId;
             principal.Name            = name;
             principal.Phone           = phone;
             principal.PrincipalStatus = status;
             _context.SaveChanges();
             return(Json(new
             {
                 isOk = true,
                 message = "修改成功!"
             }));
         }
         else
         {
             return(Json(new
             {
                 isOk = false,
                 message = "管理员不存在或者已被删除! "
             }));
         }
     }
     else
     {
         return(Json(new
         {
             isOk = false,
             message = $"参数错误!输入了不合规范的参数。 "
         }));
     }
 }
コード例 #5
0
ファイル: PrincipalController.cs プロジェクト: kickgod/lab
 public JsonResult Person([Required] String pId)
 {
     if (ModelState.IsValid)
     {
         PrincipalConfig principalConfig = _analysis.GetLoginUserConfig(HttpContext);
         if (!principalConfig.Power.SystemManager)
         {
             if (!_context.Principals.Any(p => p.PrincipalId == principalConfig.PrincipalId && p.PrincipalStatus == PrincipalStatus.Super))
             {
                 return(Json(new
                 {
                     isOk = false,
                     message = "你并无系统管理操作权限"
                 }));
             }
         }
         var val = _context.Principals.FirstOrDefault(p => p.PrincipalId == pId);
         if (val != null)
         {
             return(Json(new
             {
                 isOk = false,
                 message = $"加载成功",
                 id = val.PrincipalId,
                 jobId = val.JobNumber,
                 name = val.Name,
                 status = val.PrincipalStatus == PrincipalStatus.Normal ? "正常" : val.PrincipalStatus == PrincipalStatus.Ban ? "禁止" : "超级管理员",
                 phone = val.Phone
             }));
         }
         else
         {
             return(Json(new
             {
                 isOk = false,
                 message = $"用户不存在或者已经被删除!。 "
             }));
         }
     }
     else
     {
         return(Json(new
         {
             isOk = false,
             message = $"参数错误!输入了不合规范的参数。 "
         }));
     }
 }
コード例 #6
0
ファイル: PrincipalController.cs プロジェクト: kickgod/lab
 public IActionResult Reset([Required] String pId)
 {
     if (ModelState.IsValid)
     {
         PrincipalConfig principalConfig = _analysis.GetLoginUserConfig(HttpContext);
         if (!principalConfig.Power.SystemManager)
         {
             if (!_context.Principals.Any(p => p.PrincipalId == principalConfig.PrincipalId && p.PrincipalStatus == PrincipalStatus.Super))
             {
                 return(Json(new
                 {
                     isOk = false,
                     message = "你并无系统管理操作权限"
                 }));
             }
         }
         Principal principal = _context.Principals.Find(pId);
         if (principal != null)
         {
             principal.Password =
                 _encryption.EncodeByRsa(_encryption.EncodeByMd5(_encryption.EncodeByMd5("123456")));
             _context.SaveChanges();
             return(Json(new
             {
                 isOk = true,
                 message = "重置完毕! "
             }));
         }
         else
         {
             return(Json(new
             {
                 isOk = false,
                 message = "管理员不存在或者已被删除! "
             }));
         }
     }
     else
     {
         return(Json(new
         {
             isOk = false,
             message = $"参数错误!输入了不合规范的参数。 "
         }));
     }
 }
コード例 #7
0
ファイル: PrincipalController.cs プロジェクト: kickgod/lab
 public IActionResult Status([Required] String pId, [Required] Boolean status)
 {
     if (ModelState.IsValid)
     {
         PrincipalConfig principalConfig = _analysis.GetLoginUserConfig(HttpContext);
         if (!principalConfig.Power.SystemManager)
         {
             if (!_context.Principals.Any(p => p.PrincipalId == principalConfig.PrincipalId && p.PrincipalStatus == PrincipalStatus.Super))
             {
                 return(Json(new
                 {
                     isOk = false,
                     message = "你并无系统管理操作权限"
                 }));
             }
         }
         Principal principal = _context.Principals.Find(pId);
         if (principal != null)
         {
             principal.PrincipalStatus = status ? PrincipalStatus.Normal : PrincipalStatus.Ban;
             _context.SaveChanges();
             return(Json(new
             {
                 isOk = false,
                 message = $"操作成功! "
             }));
         }
         else
         {
             return(Json(new
             {
                 isOk = false,
                 message = $"管理员不存在或者已经删除! "
             }));
         }
     }
     else
     {
         return(Json(new
         {
             isOk = false,
             message = $"参数错误!输入了不合规范的参数。导致改变用户状态失败 "
         }));
     }
 }
コード例 #8
0
 public PrincipalConfig GetLoginUserConfig(HttpContext httpContext)
 {
     try
     {
         LoginUserModel user = GetLoginUserModel(httpContext);
         if (user == null)
         {
             throw new Exception("用户尚未登录成功!");
         }
         PrincipalConfig setting = _config.LoadPrincipalConfig(user.UserId);
         return(setting);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         throw;
     }
 }
コード例 #9
0
ファイル: PrincipalController.cs プロジェクト: kickgod/lab
        public IActionResult Setting([Required] String pId, [Required] String powerString)
        {
            if (ModelState.IsValid)
            {
                PrincipalConfig principalConfig = _analysis.GetLoginUserConfig(HttpContext);
                if (!principalConfig.Power.SystemManager)
                {
                    if (!_context.Principals.Any(p => p.PrincipalId == principalConfig.PrincipalId && p.PrincipalStatus == PrincipalStatus.Super))
                    {
                        return(Json(new
                        {
                            isOk = false,
                            message = "你并无系统管理操作权限"
                        }));
                    }
                }
                Principal principal = _context.Principals.Find(pId);
                if (principal != null)
                {
                    //写入配置文件 到文件中
                    try
                    {
                        Power           p      = JsonConvert.DeserializeObject <Power>(powerString);
                        PrincipalConfig config = new PrincipalConfig
                        {
                            PrincipalId = pId, Power = p, SettingTime = DateTime.Now
                        };

                        using (var stream = new FileStream(
                                   Path.GetFullPath($@"{_hosting.ContentRootPath}/JsonConfig/{pId}.json"), FileMode.Create,
                                   FileAccess.Write, FileShare.ReadWrite))
                        {
                            using (var writer = new StreamWriter(stream))
                            {
                                JsonSerializer serializer = JsonSerializer.Create(new JsonSerializerSettings());
                                String         jsonResult = JsonConvert.SerializeObject(config, Formatting.Indented);
                                writer.Write(jsonResult);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        throw;
                    }
                    _context.SaveChanges();
                    return(Json(new
                    {
                        isOk = true,
                        message = $"操作成功! "
                    }));
                }
                else
                {
                    return(Json(new
                    {
                        isOk = false,
                        message = $"管理员不存在或者已经删除! "
                    }));
                }
            }
            else
            {
                return(Json(new
                {
                    isOk = false,
                    message = $"参数错误!输入了不合规范的参数。导致改变用户状态失败 "
                }));
            }
        }
コード例 #10
0
ファイル: PrincipalController.cs プロジェクト: kickgod/lab
        public IActionResult Power([Required] String pId)
        {
            if (ModelState.IsValid)
            {
                Principal principal = _context.Principals.Find(pId);
                if (principal != null)
                {
                    if (System.IO.File.Exists(Path.GetFullPath($@"{_hosting.ContentRootPath}/JsonConfig/{pId}.json")))
                    {
                        using (var stream = new FileStream(
                                   Path.GetFullPath($@"{_hosting.ContentRootPath}/JsonConfig/{pId}.json"),
                                   FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                        {
                            using (StreamReader reader = new StreamReader(stream))
                            {
                                String json = reader.ReadToEnd();

                                try
                                {
                                    PrincipalConfig config = JsonConvert.DeserializeObject <PrincipalConfig>(json);


                                    return(Json(new
                                    {
                                        isOk = true,
                                        setting = config,
                                        name = principal.Name,
                                        status = principal.PrincipalStatus == PrincipalStatus.Normal,
                                        message = "管理员不存在或者已被删除! "
                                    }));
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine(e);
                                    throw;
                                }
                            }
                        }
                    }
                    else
                    {
                        return(Json(new
                        {
                            isOk = false,
                            message = "管理员配置文件丢失! 无法使用! "
                        }));
                    }
                }
                else
                {
                    return(Json(new
                    {
                        isOk = false,
                        message = "管理员不存在或者已被删除! "
                    }));
                }
            }
            else
            {
                return(Json(new
                {
                    isOk = false,
                    message = $"参数错误!输入了不合规范的参数。 "
                }));
            }
        }
コード例 #11
0
ファイル: PrincipalController.cs プロジェクト: kickgod/lab
        public IActionResult Create([Required] String id, [Required] String jobId, [Required] String name,
                                    [Required] String phone, [Required] String pwd)
        {
            if (ModelState.IsValid)
            {
                PrincipalConfig principalConfig = _analysis.GetLoginUserConfig(HttpContext);
                if (!principalConfig.Power.SystemManager)
                {
                    if (!_context.Principals.Any(p => p.PrincipalId == principalConfig.PrincipalId && p.PrincipalStatus == PrincipalStatus.Super))
                    {
                        return(Json(new
                        {
                            isOk = false,
                            message = "你并无系统管理操作权限"
                        }));
                    }
                }
                if (_context.Student.Any(stu => stu.StudentId == id))
                {
                    return(Json(new
                    {
                        isOk = false,
                        message = $"编号:{id}是已经存在的学号!无法使用!"
                    }));
                }

                if (id.Length == 12 || id.Length == 10)
                {
                    return(Json(new
                    {
                        isOk = false,
                        message = $"编号:{id}属于学号范围!长度不能为10位或者12位 无法使用!"
                    }));
                }

                if (_context.Principals.Any(admin => admin.PrincipalId == id || admin.JobNumber == jobId))
                {
                    return(Json(new
                    {
                        isOk = false,
                        message = $"编号:{id}或者工号{jobId} 已经使用!"
                    }));
                }
                else
                {
                    Principal principal = new Principal
                    {
                        PrincipalId     = id,
                        JobNumber       = jobId,
                        Name            = name,
                        Phone           = phone,
                        PrincipalStatus = PrincipalStatus.Normal,
                        PrincipalConfig = $"{id}.json"
                    };
                    String password = _encryption.EncodeByRsa(_encryption.EncodeByMd5(_encryption.EncodeByMd5(pwd)));
                    principal.Password = password;
                    _context.Principals.Add(principal);

                    int result = _context.SaveChanges();

                    if (result == 1)
                    {
                        //配置权限
                        PrincipalConfig config = new PrincipalConfig
                        {
                            SettingTime = DateTime.Now, PrincipalId = id, Power = new Power()
                        };

                        using (var stream = new FileStream(
                                   Path.GetFullPath($@"{_hosting.ContentRootPath}/JsonConfig/{id}.json"), FileMode.Create,
                                   FileAccess.Write, FileShare.None))
                        {
                            using (var writer = new StreamWriter(stream))
                            {
                                JsonSerializer serializer = JsonSerializer.Create(new JsonSerializerSettings());
                                String         jsonResult = JsonConvert.SerializeObject(config, Formatting.Indented);
                                writer.Write(jsonResult);
                            }
                        }

                        return(Json(new
                        {
                            isOk = true,
                            message = "信息插入成功"
                        }));
                    }
                    else
                    {
                        return(Json(new
                        {
                            isOk = false,
                            message = "信息插入失败"
                        }));
                    }
                }
            }
            else
            {
                return(Json(new
                {
                    isOk = false,
                    message = $"参数错误!输入了不合规范的参数。 "
                }));
            }
        }