/// <summary> /// 保存权限 /// </summary> /// <param name="request"></param> /// <returns></returns> public SavePermissionsResponse SavePermissions(SavePermissionsRequest request) { var response = new SavePermissionsResponse(); if (request.Entity == null) { response.IsSuccess = false; response.MessageCode = "1"; response.MessageText = "权限信息不能为空"; return(response); } try { var entity = request.Entity.As <PermissionsPo>(); if (entity.Id == 0) { //新增权限 EntityLogger.CreateEntity(entity); _permissionsRepository.InsertReturnIdentity(entity); } else { #region 更新权限信息 var entitytemp = _permissionsRepository.FindSingle <PermissionsPo>(entity.Id); if (entitytemp == null) { throw new Exception("更新权限信息不存在"); } EntityLogger.UpdateEntity(entity); _permissionsRepository.UpdateIgnoreColumns(entity, e => new { e.IsValid, e.CreateTime, e.CreateUserId }); #endregion } } catch (Exception ex) { response.IsSuccess = false; response.MessageCode = "-1"; response.MessageText = ex.ToString(); LogManager.LogicLogger.ErrorFormat("保存权限出错:{0}", new { request, err = ex.ToString() }.ToJson()); } return(response); }
public async Task <ActionResult <SavePermissionsResult> > SavePermissions([FromRoute] int adminId, [FromBody] SavePermissionsRequest request) { if (!await _authManager.HasAppPermissionsAsync(Types.AppPermissions.SettingsAdministrators)) { return(Unauthorized()); } if (!await _authManager.IsSuperAdminAsync()) { return(Unauthorized()); } var adminInfo = await _administratorRepository.GetByUserIdAsync(adminId); await _administratorsInRolesRepository.RemoveUserAsync(adminInfo.UserName); if (request.AdminLevel == "SuperAdmin") { await _administratorRepository.AddUserToRoleAsync(adminInfo.UserName, PredefinedRole.ConsoleAdministrator.GetValue()); } else if (request.AdminLevel == "SiteAdmin") { await _administratorRepository.AddUserToRoleAsync(adminInfo.UserName, PredefinedRole.SystemAdministrator.GetValue()); } else { await _administratorRepository.AddUserToRoleAsync(adminInfo.UserName, PredefinedRole.Administrator.GetValue()); await _administratorRepository.AddUserToRolesAsync(adminInfo.UserName, request.CheckedRoles.ToArray()); } await _administratorRepository.UpdateSiteIdsAsync(adminInfo, request.AdminLevel == "SiteAdmin" ?request.CheckedSites : new List <int>()); _cacheManager.Clear(); await _authManager.AddAdminLogAsync("设置管理员权限", $"管理员:{adminInfo.UserName}"); return(new SavePermissionsResult { Roles = await _administratorRepository.GetRolesAsync(adminInfo.UserName) }); }