|
@@ -119,88 +119,6 @@ namespace TEAMModelBI.Controllers.BISchool
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 依据传输的数据更新和删除权限
|
|
|
- /// </summary>
|
|
|
- /// <param name="jsonElement"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [ProducesDefaultResponseType]
|
|
|
- [AuthToken(Roles = "assist")]
|
|
|
- [HttpPost("upd-permissions")]
|
|
|
- public async Task<IActionResult> SetSchoolPermissions(JsonElement jsonElement)
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- if (!jsonElement.TryGetProperty("ids", out JsonElement ids)) return Ok(new { state = 1, message = "ids参数错误!" });
|
|
|
- if (!jsonElement.TryGetProperty("school_code", out JsonElement school_code)) return Ok(new { state = 1, message = "school_code参数错误!" });
|
|
|
- if (!jsonElement.TryGetProperty("mode", out JsonElement mode)) return Ok(new { state = 1, message = "mode参数错误!" }); //del删除权限 up更新权限
|
|
|
- if (!jsonElement.TryGetProperty("paramPower", out JsonElement paramPower)) return Ok(new { state = 1, message = "paramPower参数错误!" });
|
|
|
-
|
|
|
- var (_tmdId, _tmdName, pic, did, dname, dpic) = HttpJwtAnalysis.JwtXAuthBI(HttpContext.GetXAuth("AuthToken"), _option);
|
|
|
- List<Exist> havepower = new(); //已存在的
|
|
|
- var client = _azureCosmos.GetCosmosClient();
|
|
|
-
|
|
|
- StringBuilder stringBuilder = new StringBuilder($"{_tmdName}【{_tmdId}】账户操作:");
|
|
|
- //更新权限
|
|
|
- foreach (var id in ids.EnumerateArray())
|
|
|
- {
|
|
|
- SchoolTeacher st = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<SchoolTeacher>($"{id}", new PartitionKey($"Teacher-{school_code}"));
|
|
|
-
|
|
|
- if (mode.GetString().Equals("del"))
|
|
|
- {
|
|
|
- stringBuilder.Append($"{st.name}【{st.id}】的权限,删除权限有:");
|
|
|
- foreach (var pm in paramPower.EnumerateArray())
|
|
|
- {
|
|
|
- var bools = st.permissions.Find(x => x.Equals($"{pm}"));
|
|
|
- if (!string.IsNullOrEmpty($"{bools}"))
|
|
|
- {
|
|
|
- st.permissions.RemoveAll(x => x.Equals($"{bools}"));
|
|
|
- stringBuilder.Append(pm);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else if (mode.GetString().Equals("up"))
|
|
|
- {
|
|
|
- stringBuilder.Append($"{st.name}【{st.id}】的权限,更新权限有:");
|
|
|
- var stes = st.roles.Find(x => x.Equals("assistant"));
|
|
|
- if (string.IsNullOrEmpty($"{stes}"))
|
|
|
- {
|
|
|
- st.roles.Add("assistant");
|
|
|
- }
|
|
|
- foreach (var pm in paramPower.EnumerateArray())
|
|
|
- {
|
|
|
- var bools = st.permissions.Find(x => x.Equals($"{pm}"));
|
|
|
- if (!string.IsNullOrEmpty($"{bools}"))
|
|
|
- {
|
|
|
- havepower.Add(new Exist { ID = id.GetString(), name = bools });
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- st.permissions.Add(pm.GetString());
|
|
|
- stringBuilder.Append(pm);
|
|
|
- }
|
|
|
- }
|
|
|
- if (havepower.Count > 0)
|
|
|
- {
|
|
|
- stringBuilder.Append($";已存在的权限:{havepower}");
|
|
|
- }
|
|
|
- }
|
|
|
- else { return Ok(new { state = 1, message = "mode参数错误!" }); }
|
|
|
- await client.GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync<SchoolTeacher>(st, id.GetString(), new PartitionKey($"Teacher-{school_code}"));
|
|
|
- }
|
|
|
-
|
|
|
- //保存操作记录
|
|
|
- await _azureStorage.SaveBILog("school-update", stringBuilder?.ToString(), _dingDing, httpContext: HttpContext);
|
|
|
-
|
|
|
- return Ok(new { state = 200, havepower });
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- await _dingDing.SendBotMsg($"BI,{_option.Location}, /batchschool/upd-permissions \n{ex.Message}{ex.StackTrace}", GroupNames.成都开发測試群組);
|
|
|
- return BadRequest();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 批量创校
|
|
|
/// </summary>
|