/// <summary> /// 根据课程 Id 处理授权分配清单 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task <IActionResult> AuthorizationItemsListSelector(Guid id, AuthorizationTypeEnum authorizationType) { var boVM = await _boVMService.GetCourseAuthorizationSelectorVMAsync(id, true, authorizationType); ViewData["CourseId"] = boVM.CourseID; ViewData["ModuleName"] = "课程管理"; ViewData["FunctionName"] = "课程访问授权:" + boVM.CourseName; return(PartialView("_AuthorizationItemsListSelector", boVM)); }
/// <summary> /// 根据角色和授权类型获取课程集合 /// </summary> /// <param name="roleId"></param> /// <returns></returns> public async Task <List <CoursesVM> > GetboVMCollectionByRoleAsyn(string roleName, AuthorizationTypeEnum authorizationType) { var courseWithRolesItems = await _courseWithRolesRepository.GetAllIncludingAsyn(x => x.Course, y => y.ApplicationRole); var boCollection = from item in courseWithRolesItems where item.ApplicationRole.Name == roleName && item.AuthorizationTypeEnum == authorizationType select item.Course; var boVMCollection = new List <CoursesVM>(); var counter = 0; foreach (var bo in boCollection.OrderBy(x => x.SortCode)) { var boVM = GetVM(bo.Id); boVM.OrderNumber = (++counter).ToString(); boVMCollection.Add(boVM); } return(boVMCollection); }
public IAuthorizationBuilder AuthorizationDefault(AuthorizationTypeEnum authorizationDefault) { AuthorizationDefaultValue = authorizationDefault; return(this); }
public IHttpFunctionBuilderMetadataBuilder HttpFunction <TCommand>(AuthorizationTypeEnum authorizationType) where TCommand : ICommand { return(_httpFunctionBuilder.HttpFunction <TCommand>(authorizationType)); }
public Task <string> GetStringAsync(string uri, string authorizationToken = null, AuthorizationTypeEnum authorizationType = AuthorizationTypeEnum.Bearer, IDictionary <string, string> headers = null, CancellationToken cancellationToken = default) { throw new NotImplementedException(); }
public Task <HttpResponseMessage> PutAsync <T>(string uri, T data, string authorizationToken = null, AuthorizationTypeEnum authorizationType = AuthorizationTypeEnum.Bearer, IDictionary <string, string> headers = null, CancellationToken cancellationToken = default) { throw new NotImplementedException(); }
/// <summary> /// 返回全部课程视图对象集合 /// </summary> /// <returns></returns> public async Task <List <CoursesVM> > GetCoursesVMCollectionAsyn(string userName, AuthorizationTypeEnum authorizationType) { var boVMCollection = new List <CoursesVM>(); var courseService = new CourseVMService(_userManager, _roleManager, _employeeRepository, _studentRepository, _departmentRepository, _gradeAndClassRepository, _courseWithRolesRepository, _courseWithUsersRepository, _courseRepository); boVMCollection = await courseService.GetboVMCollectionWithUser(userName, authorizationType); return(boVMCollection); }
public async Task <CourseAuthorizationSelectorVM> GetCourseAuthorizationSelectorVMAsync(Guid id, bool getTobeItems, AuthorizationTypeEnum authorizationType) { var course = await _boRepository.GetSingleAsyn(id); var authorizedCollection = new List <CourseAuthorizationVM>(); var authorizedRoleCollection = new List <ApplicationRole>(); var authorizedUserCollection = new List <ApplicationUser>(); // 授权角色组 var courseWithRoleCollection = await _courseWithRolesRepository.GetAllIncludingAsyn(x => x.ApplicationRole, y => y.Course); foreach (var item in courseWithRoleCollection.Where(x => x.Course.Id == id && x.AuthorizationTypeEnum == authorizationType)) { var courseAuthorizationViewModel = new CourseAuthorizationVM(); courseAuthorizationViewModel.Id = item.ApplicationRole.Id; courseAuthorizationViewModel.Name = item.ApplicationRole.Name; courseAuthorizationViewModel.DisplayName = item.ApplicationRole.DisplayName; courseAuthorizationViewModel.SortCode = item.ApplicationRole.SortCode; courseAuthorizationViewModel.IsUser = false; authorizedRoleCollection.Add(item.ApplicationRole); authorizedCollection.Add(courseAuthorizationViewModel); } // 授权用户 var courseWithUserCollection = await _courseWithUsersRepository.GetAllIncludingAsyn(x => x.ApplicationUser, y => y.Course); foreach (var item in courseWithUserCollection.Where(x => x.Course.Id == id && x.AuthorizationTypeEnum == authorizationType)) { var courseAuthorizationViewModel = new CourseAuthorizationVM(); courseAuthorizationViewModel.Id = item.ApplicationUser.Id; courseAuthorizationViewModel.Name = item.ApplicationUser.UserName; courseAuthorizationViewModel.DisplayName = item.ApplicationUser.ChineseFullName; courseAuthorizationViewModel.SortCode = ""; courseAuthorizationViewModel.IsUser = true; courseAuthorizationViewModel.Description = await _GetCourseAuthorizationVMDescriptionByUser(item.ApplicationUser); authorizedUserCollection.Add(item.ApplicationUser); authorizedCollection.Add(courseAuthorizationViewModel); } var courseAuthorizationSelectorVM = new CourseAuthorizationSelectorVM(); courseAuthorizationSelectorVM.CourseID = course.Id; courseAuthorizationSelectorVM.CourseName = course.Name; // 合成 int count = 0; foreach (var item in authorizedCollection.OrderBy(x => x.Name)) { item.OrderNumber = (++count).ToString(); courseAuthorizationSelectorVM.BeAuthorizationedItemCollection.Add(item); } if (getTobeItems) { var tobeAuthorizedCollection = GetToBeAuthorizeCollection(authorizedRoleCollection, authorizedUserCollection); foreach (var item in tobeAuthorizedCollection.OrderBy(x => x.Name)) { courseAuthorizationSelectorVM.ToBeAuthorizationedItemCollection.Add(item); } } // 附带权限清单 courseAuthorizationSelectorVM.AuthorizationType = authorizationType; courseAuthorizationSelectorVM.AuthorizationTypeForCourseCollection = GetAuthorizationTypeForCourseCollection(); foreach (var item in courseAuthorizationSelectorVM.AuthorizationTypeForCourseCollection) { if (item.AuthorizationType == authorizationType) { item.IsActive = true; } } return(courseAuthorizationSelectorVM); }
public AuthorizationProfile(AuthorizationTypeEnum authorizationType, AuthorizationLimitsEnum authorizationLimits) { this.AuthorizationLimits = authorizationLimits; this.AuthorizationType = authorizationType; }
public IHttpFunctionConfigurationBuilder <TCommand> HttpFunction <TCommand>(AuthorizationTypeEnum authorizationType, params HttpMethod[] method) where TCommand : ICommand { return(BuildHttpFunction <TCommand>(null, authorizationType, method)); }
public IHttpFunctionBuilderMetadataBuilder HttpFunction <TCommand>(string route, AuthorizationTypeEnum authorizationType, params HttpMethod[] method) where TCommand : ICommand { return(BuildHttpFunction <TCommand>(route, authorizationType, method)); }
public IHttpFunctionBuilderMetadataBuilder HttpFunction <TCommand>(AuthorizationTypeEnum authorizationType) where TCommand : ICommand { return(BuildHttpFunction <TCommand>(null, authorizationType, DefaultMethod)); }
public IHttpFunctionBuilderMetadataBuilder HttpFunction <TCommand>(AuthorizationTypeEnum authorizationType, params HttpMethod[] method) where TCommand : ICommand { return(_httpFunctionBuilder.HttpFunction <TCommand>(authorizationType, method)); }
public async Task <List <CoursesVM> > GetboVMCollectionByUserAsyn(string userName, AuthorizationTypeEnum authorizationType) { var boVMCollection = new List <CoursesVM>(); var user = await _userManager.FindByNameAsync(userName); var userRoles = await _userManager.GetRolesAsync(user); foreach (var item in userRoles) { var tempBoCollection = await GetboVMCollectionByRoleAsyn(item, authorizationType); foreach (var courseItem in tempBoCollection) { if (boVMCollection.FirstOrDefault(x => x.Id == courseItem.Id) == null) { courseItem.IsCreatedByMe = false; boVMCollection.Add(courseItem); } } } return(boVMCollection); }
public IHttpFunctionConfigurationBuilder <TCommand> HttpFunction <TCommand>(AuthorizationTypeEnum authorizationType) { return(BuildHttpFunction <TCommand>(null, authorizationType, DefaultMethod)); }
public async Task <List <CoursesVM> > GetboVMCollectionWithUser(string userName, AuthorizationTypeEnum authorizationType) { var boVMCollection = await GetboVMCollectionByCreatorAsyn(userName); var tempCollection = await GetboVMCollectionByUserAsyn(userName, authorizationType); foreach (var item in tempCollection) { if (boVMCollection.FirstOrDefault(x => x.Id == item.Id) == null) { boVMCollection.Add(item); } } return(boVMCollection); }
public IHttpFunctionConfigurationBuilder <TCommand> HttpFunction <TCommand, TClaimsPrincipalAuthorization>( AuthorizationTypeEnum authorizationType, params HttpMethod[] method) where TCommand : ICommand where TClaimsPrincipalAuthorization : IClaimsPrincipalAuthorization { return(_httpFunctionBuilder.HttpFunction <TCommand, TClaimsPrincipalAuthorization>(authorizationType, method)); }
/// <summary> /// 根据前端权限配置的请求参数,重新配置分配清单 /// </summary> /// <param name="id"></param> /// <param name="itemId"></param> /// <param name="isUser"></param> /// <param name="isAdd"></param> /// <returns></returns> public async Task SetAuthorizedAsync(Guid id, Guid itemId, bool isUser, bool isAdd, AuthorizationTypeEnum authorizationType) { var course = await _boRepository.GetSingleAsyn(id); if (isUser) { var user = await _userManager.FindByIdAsync(itemId.ToString()); if (isAdd) { var addUserItem = new CourseWithUsers() { ApplicationUser = user, Course = course, AuthorizationTypeEnum = authorizationType }; await _courseWithUsersRepository.AddOrEditAndSaveAsyn(addUserItem); } else { var removeUserItem = await _courseWithUsersRepository.GetSingleAsyn(x => x.Course.Id == id && x.ApplicationUser.Id == user.Id && x.AuthorizationTypeEnum == authorizationType); if (removeUserItem != null) { await _courseWithUsersRepository.DeleteAndSaveAsyn(removeUserItem.Id); } } } else { var role = await _roleManager.FindByIdAsync(itemId.ToString()); if (isAdd) { var addRoleItem = new CourseWithRoles() { ApplicationRole = role, Course = course, AuthorizationTypeEnum = authorizationType }; await _courseWithRolesRepository.AddOrEditAndSaveAsyn(addRoleItem); } else { var removeRoleItem = await _courseWithRolesRepository.GetSingleAsyn(x => x.Course.Id == id && x.ApplicationRole.Id == role.Id && x.AuthorizationTypeEnum == authorizationType); if (removeRoleItem != null) { await _courseWithRolesRepository.DeleteAndSaveAsyn(removeRoleItem.Id); } } } }
public IHttpFunctionConfigurationBuilder <TCommand> HttpFunction <TCommand>(AuthorizationTypeEnum authorizationType, params HttpMethod[] method) { return(_httpFunctionBuilder.HttpFunction <TCommand>(authorizationType, method)); }
public Task <HttpResponseMessage> PostAsync <T>(string uri, T data, string authorizationToken = null, AuthorizationTypeEnum authorizationType = AuthorizationTypeEnum.Bearer, IDictionary <string, string> headers = null, CancellationToken cancellationToken = default) { return(DoPostPutAsync(HttpMethod.Post, uri, data, authorizationToken, authorizationType, headers, cancellationToken)); }
public IHttpFunctionConfigurationBuilder <TCommand> HttpFunction <TCommand>(AuthorizationTypeEnum authorizationType) where TCommand : ICommand { return(_httpFunctionBuilder.HttpFunction <TCommand>(authorizationType)); }
private async Task <HttpResponseMessage> DoPostPutAsync <T>(HttpMethod method, string uri, T item, string authorizationToken = null, AuthorizationTypeEnum authorizationType = AuthorizationTypeEnum.Bearer, IDictionary <string, string> dictionary = null, CancellationToken cancellationToken = default(CancellationToken)) { if (method != HttpMethod.Post && method != HttpMethod.Put) { throw new ArgumentException("Value must be either post or put.", nameof(method)); } uri = await ResolveUri(uri); var origin = GetOriginFromUri(uri); return(await HttpInvokerAsync(origin, async (context, ctx) => { using (var tracer = new Hummingbird.Extensions.Tracing.Tracer($"HTTP {method.Method.ToUpper()}")) { tracer.SetComponent(_compomentName); tracer.SetTag("http.url", uri); tracer.SetTag("http.method", method.Method.ToUpper()); var requestMessage = new HttpRequestMessage(method, uri); var requestContent = JsonConvert.SerializeObject(item); #region LOG:记录请求 if (dictionary != null && dictionary.ContainsKey("x-masking") && (dictionary["x-masking"] == "all" || dictionary["x-masking"] == "request")) { //日志脱敏 } else { _logger.LogInformation("Http Request Executing:{requestContent}", requestContent); } #endregion SetAuthorizationHeader(requestMessage); requestMessage.Content = new StringContent(requestContent, System.Text.Encoding.UTF8, "application/json"); if (authorizationToken != null) { requestMessage.Headers.Authorization = new AuthenticationHeaderValue(authorizationMethod, authorizationToken); } if (dictionary != null) { foreach (var key in dictionary.Keys) { requestMessage.Headers.Add(key, dictionary[key]); } } var response = await _client.SendAsync(requestMessage, ctx); var responseContent = await response.Content.ReadAsStringAsync(); #region LOG:记录返回 tracer.SetTag("http.status_code", (int)response.StatusCode); if (dictionary != null && dictionary.ContainsKey("x-masking") && (dictionary["x-masking"] == "all" || dictionary["x-masking"] == "response")) { //日志脱敏不记录 } else { _logger.LogInformation("Http Request Executed:{responseContent}", responseContent); } #endregion if (response.StatusCode == HttpStatusCode.InternalServerError) { throw new HttpRequestException(response.ReasonPhrase); } return response; } }, cancellationToken)); }
public IHttpFunctionConfigurationBuilder <TCommand> HttpFunction <TCommand>(string route, AuthorizationTypeEnum authorizationType, params HttpMethod[] method) where TCommand : ICommand { return(_httpFunctionBuilder.HttpFunction <TCommand>(route, authorizationType, method)); }
/// <summary> /// 移除授权元素 /// </summary> /// <param name="id"></param> /// <param name="itemId"></param> /// <param name="isUser"></param> /// <param name="isAdd"></param> /// <returns></returns> public async Task <IActionResult> RemoveItemFromAuthorization(Guid id, Guid itemId, bool isUser, bool isAdd, AuthorizationTypeEnum authorizationType) { await _boVMService.SetAuthorizedAsync(id, itemId, isUser, isAdd, authorizationType); var boVM = await _boVMService.GetCourseAuthorizationSelectorVMAsync(id, true, authorizationType); ViewData["CourseId"] = boVM.CourseID; ViewData["ModuleName"] = "课程管理"; ViewData["FunctionName"] = "课程访问授权:" + boVM.CourseName; return(PartialView("_AuthorizationItemsList", boVM)); }
public IHttpFunctionConfigurationBuilder <TCommand> HttpFunction <TCommand, TClaimsPrincipalAuthorization>( AuthorizationTypeEnum authorizationType) where TCommand : ICommand where TClaimsPrincipalAuthorization : IClaimsPrincipalAuthorization { return(BuildHttpFunction <TCommand, TClaimsPrincipalAuthorization>(null, authorizationType, DefaultMethod)); }