public async Task <MainRolePermissionResponse> AddRolePermission(RolePermissionRequest rolePermissionRequest) { var rolePermissions = _mapper.Map <RolePermissions>(rolePermissionRequest); try { var isExist = _rolePermissionRepository.GetRolesPerminssion(rolePermissionRequest); if (rolePermissions.RolePermissionId == 0 && isExist.Result == null) { rolePermissions.CreatedBy = rolePermissionRequest.UserId.ToString(); var dataRole = await _rolePermissionRepository.AddAsync(rolePermissions); } else { _response.Message = Constants.RolePermission_Already_Exists; _response.Status = false; return(_response); } _response.Message = Constants.RolePermission_Created_Success; _response.Status = true; } catch (Exception) { _response.Status = false; _response.Message = Constants.DEFAULT_ERROR_MSG; } return(_response); }
public Task <IActionResult> Add(RolePermission model) { return(Task.Factory.StartNew <IActionResult>(() => { if (!ModelState.IsValid) { return Json(ExcutedResult.FailedResult("数据验证失败")); } RolePermissionRepository.AddAsync(model, false); return Json(ExcutedResult.SuccessResult()); })); }
public async Task <IResultModel> BindPages(RolePageBindModel model) { if (!await _repository.ExistsAsync(model.RoleId)) { return(ResultModel.NotExists); } using var uow = _dbContext.NewUnitOfWork(); var deletePagesTask = _pageRepository.DeleteByRole(model.RoleId, uow); var deleteButtonsTask = _buttonRepository.DeleteByRole(model.RoleId, uow); var deletePermissionsTask = _permissionRepository.DeleteByRole(model.RoleId, Platform.Web, uow); if (await deletePagesTask && await deleteButtonsTask && await deletePermissionsTask) { if (model.Pages != null && model.Pages.Any()) { foreach (var page in model.Pages) { //插入绑定页面 await _pageRepository.AddAsync(new RolePageEntity { PageCode = page.Code, RoleId = model.RoleId }, uow); //插入绑定按钮 if (page.Buttons != null && page.Buttons.Any()) { foreach (var button in page.Buttons) { await _buttonRepository.AddAsync(new RoleButtonEntity { RoleId = model.RoleId, ButtonCode = button, PageCode = page.Code }, uow); } } //插入绑定权限 if (page.Permissions != null && page.Permissions.Any()) { foreach (var permission in page.Permissions) { await _permissionRepository.AddAsync(new RolePermissionEntity { RoleId = model.RoleId, Platform = Platform.Web, PermissionCode = permission }, uow); } } } } uow.Commit(); //清楚缓存 await ClearAccountPermissionCache(model.RoleId); return(ResultModel.Success()); } return(ResultModel.Failed()); }
public async Task <IResultModel> BindPages(RolePageBindModel model) { if (!await _repository.ExistsAsync(model.RoleId)) { return(ResultModel.NotExists); } using var uow = _dbContext.NewUnitOfWork(); if (!await _pageRepository.DeleteByRole(model.RoleId, uow)) { return(ResultModel.Failed()); } if (!await _buttonRepository.DeleteByRole(model.RoleId, uow)) { return(ResultModel.Failed()); } if (!await _permissionRepository.DeleteByRole(model.RoleId, Platform.Web, uow)) { return(ResultModel.Failed()); } if (model.Pages != null && model.Pages.Any()) { var pages = new List <RolePageEntity>(); var buttons = new List <RoleButtonEntity>(); var permissions = new List <RolePermissionEntity>(); foreach (var page in model.Pages) { //插入绑定页面 pages.Add(new RolePageEntity { PageCode = page.Code, RoleId = model.RoleId }); //插入绑定按钮 if (page.Buttons != null && page.Buttons.Any()) { buttons.AddRange(page.Buttons.Select(button => new RoleButtonEntity { RoleId = model.RoleId, ButtonCode = button, PageCode = page.Code })); } //插入绑定权限 if (page.Permissions != null && page.Permissions.Any()) { permissions.AddRange(page.Permissions.Select(permission => new RolePermissionEntity { RoleId = model.RoleId, Platform = Platform.Web, PermissionCode = permission })); } } if (pages.Any()) { await _pageRepository.AddAsync(pages, uow); } if (buttons.Any()) { await _buttonRepository.AddAsync(buttons, uow); } if (permissions.Any()) { await _permissionRepository.AddAsync(permissions, uow); } } uow.Commit(); //清除缓存 await ClearAccountPermissionCache(model.RoleId); return(ResultModel.Success()); }