public IActionResult Add([FromBody] AddResourceViewModel model) { var resource = resourceService.Detail(model.Content); if (resource != null) { return(APIResult.失败.SetMessage(string.Format(LocalResource.AlreadyExists, model.Content))); } var check = CheckParent(model.ParentId); if (check.Code != APIResult.OK) { return(check); } resource = resourceService.Add( new M_Resource { Authorize = model.Authorize, Name = model.Name, Content = model.Content, Type = model.Type, ParentId = model.ParentId, Sort = model.Sort }); return(APIResult.成功.SetData("id", resource.Id)); }
private async Task <APIResult> CheckResource(HttpContext ctx, string path) { resource = resourceService.Detail(path); if (resource == null) { return(APIResult.失败.SetMessage(LocalResource.NotFound)); } if (resource.Authorize) { var token = ctx.Request.Headers["token"]; if (string.IsNullOrEmpty(token)) { return(APIResult.用户_未登录); } int.TryParse(await redisClient.GetDatabase().StringGetAsync(SignInKey + token), out userId); var roleId = roleService.GetRoles(userId).Select(f => f.Id).ToList(); if (roleId.Count == 0) { return(APIResult.没有访问权限); } else { var access = roleService.ValidatorRole(resource.Id, roleId.ToArray()); if (!access) { return(APIResult.没有访问权限); } } } return(APIResult.成功); }