public IActionResult DeleteStreamSolution(string name, string authByUserId, string code) { var auth = new GoogleAuthDataModel() { AuthByUserID = authByUserId, Code = code }; var auditUser = currentUserService.CurrentUser; if (auth?.AuthByUserID != null && auditUser?.Id != auth?.AuthByUserID) { if (auth.Verify(googleAuthService, currentUserService.CurrentUser?.Id)) { auditUser = usersService.GetById(auth.AuthByUserID); } else { return(new JsonResult(ActionStatusMessage.Account.Auth.AuthCode.Invalid)); } } ApplyAuditStream node = applyAuditStreamServices.EditSolution(name); if (node == null) { return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.StreamSolution.NotExist)); } // 检查删除目标的权限 var result = CheckPermission(auditUser, null, node.RegionOnCompany, node.RegionOnCompany); if (result != null && result.Status != 0) { return(new JsonResult(result)); } var nStr = (node.Nodes?.Length ?? 0) == 0 ? Array.Empty <string>() : node.Nodes.Split("##"); var nList = context.ApplyAuditStreamNodeActionDb.Where(node => nStr.Contains(node.Name)); // 检查包含节点的权限 result = CheckPermissionNodes(auditUser, nList); if (result != null && result.Status != 0) { return(new JsonResult(result)); } node.Remove(); context.ApplyAuditStreams.Update(node); context.SaveChanges(); return(new JsonResult(ActionStatusMessage.Success)); }
/// <summary> /// 检查是否符合授权 /// </summary> /// <param name="auth"></param> /// <param name="permission">需要何授权</param> /// <param name="operation">进行何操作</param> /// <param name="targetCompany">被授权方使用何单位,为空表示需要root授权</param> /// <param name="description"></param> private User CheckPermission(GoogleAuthDataModel auth, PermissionDescription permission = null, Operation operation = Operation.Update, string targetCompany = "", string description = null) { var authUser = auth.AuthUser(googleAuthService, usersService, currentUserService.CurrentUser?.Id); if (authUser == null) { throw new ActionStatusMessageException(ActionStatusMessage.UserMessage.NotExist); } if (permission == null) { permission = DictionaryAllPermission.Grade.Subject; } if (!userActionServices.Permission(authUser.Application.Permission, permission, operation, authUser.Id, targetCompany, description)) { throw new ActionStatusMessageException(auth.PermitDenied()); } return(authUser); }
public IActionResult DeleteStreamNode(string name, string authByUserId, string code) { var auth = new GoogleAuthDataModel() { AuthByUserID = authByUserId, Code = code }; var auditUser = currentUserService.CurrentUser; if (auth?.AuthByUserID != null && auth?.AuthByUserID != null && auditUser?.Id != auth?.AuthByUserID) { if (auth.Verify(googleAuthService, currentUserService.CurrentUser?.Id)) { auditUser = usersService.GetById(auth.AuthByUserID); } else { return(new JsonResult(ActionStatusMessage.Account.Auth.AuthCode.Invalid)); } } var n = applyAuditStreamServices.EditNode(name); if (n != null) { // 判断此目标的权限 var result = CheckPermission(auditUser, n.ToDtoModel(), n.RegionOnCompany, n.RegionOnCompany); if (result.Status == 0) { n.Remove(); context.ApplyAuditStreamNodeActions.Update(n); context.SaveChanges(); } } else { return(new JsonResult(ActionStatusMessage.ApplyMessage.AuditStreamMessage.Node.NotExist)); } return(new JsonResult(ActionStatusMessage.Success)); }