Compare commits
No commits in common. "df9fbe55c4aae2faf9e72d890f05d4c893ba82d2" and "ea382b1aa111714e612843f59b52741773a3610b" have entirely different histories.
df9fbe55c4
...
ea382b1aa1
|
|
@ -115,11 +115,11 @@
|
||||||
"DockerConfig": {
|
"DockerConfig": {
|
||||||
"Prot": "5192:5192",
|
"Prot": "5192:5192",
|
||||||
"AspNetCoreEnv": "",
|
"AspNetCoreEnv": "",
|
||||||
"LastEnvName": "29dev",
|
"LastEnvName": "marking001",
|
||||||
"RemoveDaysFromPublished": "10",
|
"RemoveDaysFromPublished": "10",
|
||||||
"WorkDir": "",
|
"WorkDir": "",
|
||||||
"Volume": "",
|
"Volume": "",
|
||||||
"Other": "--name wgshare-api -e ASPNETCORE_ENVIRONMENT=Development -e TZ=Asia/Shanghai",
|
"Other": "--name wgshare-api -e ASPNETCORE_ENVIRONMENT=Production -e TZ=Asia/Shanghai",
|
||||||
"EnvPairList": [
|
"EnvPairList": [
|
||||||
{
|
{
|
||||||
"EnvName": "29dev",
|
"EnvName": "29dev",
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,6 @@ namespace WGShare.API.Controllers
|
||||||
btnAutn.Add(new Claim("ssid", user.ScreenShareId));
|
btnAutn.Add(new Claim("ssid", user.ScreenShareId));
|
||||||
btnAutn.Add(new Claim("year", user.Year.ToString()));
|
btnAutn.Add(new Claim("year", user.Year.ToString()));
|
||||||
btnAutn.Add(new Claim("subject", ((int)user.Subject).ToString()));
|
btnAutn.Add(new Claim("subject", ((int)user.Subject).ToString()));
|
||||||
btnAutn.Add(new Claim("anonymous", user.IsAnonymous ? "1" : "0"));
|
|
||||||
|
|
||||||
// 获取已登录的token
|
// 获取已登录的token
|
||||||
var tokens = RedisHelper.Instance.Get<AccessAndRefreshToken>(RedisKeyConstant.Data.GetAccessTokenKey(user.Id));
|
var tokens = RedisHelper.Instance.Get<AccessAndRefreshToken>(RedisKeyConstant.Data.GetAccessTokenKey(user.Id));
|
||||||
|
|
@ -170,7 +169,6 @@ namespace WGShare.API.Controllers
|
||||||
btnAutn.Add(new Claim("ssid", user.ScreenShareId));
|
btnAutn.Add(new Claim("ssid", user.ScreenShareId));
|
||||||
btnAutn.Add(new Claim("year", user.Year.ToString()));
|
btnAutn.Add(new Claim("year", user.Year.ToString()));
|
||||||
btnAutn.Add(new Claim("subject", ((int)user.Subject).ToString()));
|
btnAutn.Add(new Claim("subject", ((int)user.Subject).ToString()));
|
||||||
btnAutn.Add(new Claim("anonymous", user.IsAnonymous ? "1" : "0"));
|
|
||||||
|
|
||||||
var accessToken = _jwtHelper.CreateToken(user.Id, btnAutn);
|
var accessToken = _jwtHelper.CreateToken(user.Id, btnAutn);
|
||||||
var refreshTokenNew = Guid.NewGuid().ToString();
|
var refreshTokenNew = Guid.NewGuid().ToString();
|
||||||
|
|
@ -266,7 +264,6 @@ namespace WGShare.API.Controllers
|
||||||
btnAutn.Add(new Claim("account", user.Account));
|
btnAutn.Add(new Claim("account", user.Account));
|
||||||
btnAutn.Add(new Claim("uname", loginDTO.NickName));
|
btnAutn.Add(new Claim("uname", loginDTO.NickName));
|
||||||
btnAutn.Add(new Claim("ssid", user.ScreenShareId));
|
btnAutn.Add(new Claim("ssid", user.ScreenShareId));
|
||||||
btnAutn.Add(new Claim("anonymous", user.IsAnonymous ? "1" : "0"));
|
|
||||||
|
|
||||||
var accessToken = _jwtHelper.CreateToken(user.Id, btnAutn);
|
var accessToken = _jwtHelper.CreateToken(user.Id, btnAutn);
|
||||||
return Ok(new
|
return Ok(new
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ namespace WGShare.API.Controllers.Basic
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var roleId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "roleid")?.Value;
|
var roleId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "roleid").Value;
|
||||||
if (string.IsNullOrWhiteSpace(roleId) || !int.TryParse(roleId, out int role) || role == 0)
|
if (string.IsNullOrWhiteSpace(roleId) || !int.TryParse(roleId, out int role) || role == 0)
|
||||||
{
|
{
|
||||||
throw Oops.Oh("用户信息有误,请重新登录");
|
throw Oops.Oh("用户信息有误,请重新登录");
|
||||||
|
|
@ -72,7 +72,7 @@ namespace WGShare.API.Controllers.Basic
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var tenant = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "tenant")?.Value;
|
var tenant = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "tenant").Value;
|
||||||
if (string.IsNullOrWhiteSpace(tenant))
|
if (string.IsNullOrWhiteSpace(tenant))
|
||||||
{
|
{
|
||||||
throw Oops.Oh("用户信息有误,请重新登录");
|
throw Oops.Oh("用户信息有误,请重新登录");
|
||||||
|
|
@ -85,7 +85,7 @@ namespace WGShare.API.Controllers.Basic
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var ssId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "ssid")?.Value;
|
var ssId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "ssid").Value;
|
||||||
if (string.IsNullOrWhiteSpace(ssId))
|
if (string.IsNullOrWhiteSpace(ssId))
|
||||||
{
|
{
|
||||||
throw Oops.Oh("用户信息有误,请重新登录");
|
throw Oops.Oh("用户信息有误,请重新登录");
|
||||||
|
|
@ -121,7 +121,7 @@ namespace WGShare.API.Controllers.Basic
|
||||||
return year;
|
return year;
|
||||||
}
|
}
|
||||||
|
|
||||||
var year_str = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "year")?.Value;
|
var year_str = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "year").Value;
|
||||||
if (string.IsNullOrWhiteSpace(year_str) || !int.TryParse(year_str, out year))
|
if (string.IsNullOrWhiteSpace(year_str) || !int.TryParse(year_str, out year))
|
||||||
{
|
{
|
||||||
throw Oops.Oh("用户信息有误,请重新登录");
|
throw Oops.Oh("用户信息有误,请重新登录");
|
||||||
|
|
@ -140,7 +140,7 @@ namespace WGShare.API.Controllers.Basic
|
||||||
return (SubjectType)subject;
|
return (SubjectType)subject;
|
||||||
}
|
}
|
||||||
|
|
||||||
var subject_str = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "subject")?.Value;
|
var subject_str = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "subject").Value;
|
||||||
if (string.IsNullOrWhiteSpace(subject_str) || !int.TryParse(subject_str, out subject))
|
if (string.IsNullOrWhiteSpace(subject_str) || !int.TryParse(subject_str, out subject))
|
||||||
{
|
{
|
||||||
throw Oops.Oh("用户信息有误,请重新登录");
|
throw Oops.Oh("用户信息有误,请重新登录");
|
||||||
|
|
@ -149,25 +149,5 @@ namespace WGShare.API.Controllers.Basic
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 匿名用户
|
|
||||||
/// </summary>
|
|
||||||
public bool IsAnonymous
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (!HttpContext.User.Identity.IsAuthenticated)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
var anonymous_str = HttpContext.User.Claims.FirstOrDefault(x => x.Type == "anonymous")?.Value;
|
|
||||||
if (string.IsNullOrWhiteSpace(anonymous_str) || !int.TryParse(anonymous_str, out int anonymous))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return anonymous == 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -109,9 +109,7 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
entity.Id = YitIdHelper.NextId().ToString();
|
entity.Id = YitIdHelper.NextId().ToString();
|
||||||
entity.TenantId = TenantId;
|
entity.TenantId = TenantId;
|
||||||
|
|
||||||
|
if (await _sqlSugar.Queryable<Room>().AnyAsync(x => x.RoomNum == inputDTO.RoomNum))
|
||||||
var room = await _sqlSugar.Queryable<Room>().FirstAsync(x => x.RoomNum == inputDTO.RoomNum);
|
|
||||||
if (room != null)
|
|
||||||
{
|
{
|
||||||
throw Oops.Oh("无效会议号,请重新输入");
|
throw Oops.Oh("无效会议号,请重新输入");
|
||||||
}
|
}
|
||||||
|
|
@ -129,7 +127,7 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
{
|
{
|
||||||
var entity = inputDTO.Adapt<Room>();
|
var entity = inputDTO.Adapt<Room>();
|
||||||
return await _sqlSugar.Updateable(entity)
|
return await _sqlSugar.Updateable(entity)
|
||||||
.UpdateColumns(x => new { x.Year, x.Subject, x.RoomName, x.AllowAnonymous })
|
.UpdateColumns(x => new { x.Year, x.Subject })
|
||||||
.ExecuteCommandHasChangeAsync();
|
.ExecuteCommandHasChangeAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ using Hangfire.MemoryStorage.Database;
|
||||||
using Mapster;
|
using Mapster;
|
||||||
using Masuit.Tools;
|
using Masuit.Tools;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Components.Forms;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.SignalR;
|
using Microsoft.AspNetCore.SignalR;
|
||||||
using Microsoft.IdentityModel.Tokens;
|
using Microsoft.IdentityModel.Tokens;
|
||||||
|
|
@ -64,9 +63,9 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
public async Task SetRoomManager([FromBody] RoomManagerInputDTO inputDTO)
|
public async Task SetRoomManager([FromBody] RoomManagerInputDTO inputDTO)
|
||||||
{
|
{
|
||||||
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum));
|
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum));
|
||||||
if (users.Count(x => x.IsRoomManager || x.RoleId == ((int)RoleEnums.Admin).ToString() || x.RoleId == ((int)RoleEnums.RoomManager).ToString()) >= 32)
|
if (users.Count(x => x.IsRoomManager || x.RoleId == ((int)RoleEnums.Admin).ToString() || x.RoleId == ((int)RoleEnums.RoomManager).ToString()) >= 12)
|
||||||
{
|
{
|
||||||
throw Oops.Oh("房间已达到32个发言人限制。请移除一位发言人");
|
throw Oops.Oh("房间已达到12个发言人限制。请移除一位发言人");
|
||||||
}
|
}
|
||||||
var user = users.FirstOrDefault(x => x.UID == inputDTO.UserId);
|
var user = users.FirstOrDefault(x => x.UID == inputDTO.UserId);
|
||||||
if (user == null)
|
if (user == null)
|
||||||
|
|
@ -193,34 +192,7 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
[HttpGet("checkout"), AllowAnonymous]
|
[HttpGet("checkout"), AllowAnonymous]
|
||||||
public async Task<bool> ExistsRoom([FromQuery] string roomNum)
|
public async Task<bool> ExistsRoom([FromQuery] string roomNum)
|
||||||
{
|
{
|
||||||
if (IsAnonymous)
|
return await _sqlSugar.Queryable<Room>().AnyAsync(x => x.RoomNum == roomNum && x.IsDelete == false);
|
||||||
{
|
|
||||||
// 匿名用户
|
|
||||||
var room = await _sqlSugar.Queryable<Room>().FirstAsync(x => x.RoomNum == roomNum && x.IsDelete == false);
|
|
||||||
if (room == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!room.AllowAnonymous)
|
|
||||||
{
|
|
||||||
throw Oops.Oh("房间不允许匿名用户进入");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// 非匿名用户
|
|
||||||
var room = await _sqlSugar.Queryable<Room>()
|
|
||||||
.WhereIF(Year > 0 && RoleId == RoleEnums.User, x => x.Year == Year || x.Year == 0)
|
|
||||||
.WhereIF(Subject > 0 && RoleId == RoleEnums.User, x => x.Subject == Subject || x.Subject == 0)
|
|
||||||
.FirstAsync(x => x.RoomNum == roomNum && x.IsDelete == false);
|
|
||||||
if (room == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -716,21 +688,5 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
|
|
||||||
await _sqlSugar.Insertable(entitys).ExecuteCommandAsync();
|
await _sqlSugar.Insertable(entitys).ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 修改昵称
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="dto"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpPut("alter-uname")]
|
|
||||||
public async Task ModifyNickName([FromBody] UserModifyNickNameDto dto)
|
|
||||||
{
|
|
||||||
var user = RedisHelper.Instance.HGet<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, dto.RoomNum), dto.UId.ToString());
|
|
||||||
user.UserName = dto.NickName;
|
|
||||||
|
|
||||||
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, dto.RoomNum), dto.UId.ToString(), user);
|
|
||||||
|
|
||||||
await _hubContext.Clients.Group(dto.RoomNum).ModifyNickName(dto.UId, dto.NickName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -144,13 +144,5 @@ namespace WGShare.API.Hubs
|
||||||
/// <param name="driversJsonString"></param>
|
/// <param name="driversJsonString"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task ShowDriverList(string driversJsonString);
|
Task ShowDriverList(string driversJsonString);
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 修改昵称
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="UId"></param>
|
|
||||||
/// <param name="NickName"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
Task ModifyNickName(long UId, string NickName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -68,11 +68,6 @@
|
||||||
<param name="file"></param>
|
<param name="file"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WGShare.API.Controllers.Basic.BasicController.IsAnonymous">
|
|
||||||
<summary>
|
|
||||||
匿名用户
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:WGShare.API.Controllers.Frontend.AgoraCallbackController">
|
<member name="T:WGShare.API.Controllers.Frontend.AgoraCallbackController">
|
||||||
<summary>
|
<summary>
|
||||||
Agora接口
|
Agora接口
|
||||||
|
|
@ -328,13 +323,6 @@
|
||||||
<param name="list"></param>
|
<param name="list"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WGShare.API.Controllers.Frontend.RoomController.ModifyNickName(WGShare.Domain.DTOs.User.UserModifyNickNameDto)">
|
|
||||||
<summary>
|
|
||||||
修改昵称
|
|
||||||
</summary>
|
|
||||||
<param name="dto"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:WGShare.API.Controllers.Frontend.UserController.GetUserList(System.String,System.Nullable{System.Boolean},WGShare.Domain.GeneralModel.PagedBaseDto)">
|
<member name="M:WGShare.API.Controllers.Frontend.UserController.GetUserList(System.String,System.Nullable{System.Boolean},WGShare.Domain.GeneralModel.PagedBaseDto)">
|
||||||
<summary>
|
<summary>
|
||||||
获取用户列表
|
获取用户列表
|
||||||
|
|
@ -688,14 +676,6 @@
|
||||||
<param name="driversJsonString"></param>
|
<param name="driversJsonString"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WGShare.API.Hubs.IMessageClient.ModifyNickName(System.Int64,System.String)">
|
|
||||||
<summary>
|
|
||||||
修改昵称
|
|
||||||
</summary>
|
|
||||||
<param name="UId"></param>
|
|
||||||
<param name="NickName"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:WGShare.API.Hubs.SessionManageHub.JoinChannel(System.String,System.Boolean,System.Boolean,System.Boolean)">
|
<member name="M:WGShare.API.Hubs.SessionManageHub.JoinChannel(System.String,System.Boolean,System.Boolean,System.Boolean)">
|
||||||
<summary>
|
<summary>
|
||||||
加入频道
|
加入频道
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,6 @@ namespace WGShare.Domain.DTOs.Room
|
||||||
/// 科目
|
/// 科目
|
||||||
///</summary>
|
///</summary>
|
||||||
public SubjectType Subject { get; set; }
|
public SubjectType Subject { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -48,10 +47,5 @@ namespace WGShare.Domain.DTOs.Room
|
||||||
/// 会议室名称
|
/// 会议室名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string RoomName { get; set; }
|
public string RoomName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 是否允许匿名
|
|
||||||
/// </summary>
|
|
||||||
public bool AllowAnonymous { get; set; } = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,5 @@ namespace WGShare.Domain.DTOs.Room
|
||||||
/// 科目
|
/// 科目
|
||||||
///</summary>
|
///</summary>
|
||||||
public SubjectType Subject { get; set; }
|
public SubjectType Subject { get; set; }
|
||||||
|
|
||||||
public bool AllowAnonymous { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace WGShare.Domain.DTOs.User
|
|
||||||
{
|
|
||||||
public class UserModifyNickNameDto
|
|
||||||
{
|
|
||||||
public string RoomNum { get; set; }
|
|
||||||
public string NickName { get; set; }
|
|
||||||
public long UId { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -62,11 +62,5 @@ namespace WGShare.Domain.Entities
|
||||||
///</summary>
|
///</summary>
|
||||||
[SugarColumn(ColumnName = "subject")]
|
[SugarColumn(ColumnName = "subject")]
|
||||||
public SubjectType Subject { get; set; }
|
public SubjectType Subject { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 是否允许匿名
|
|
||||||
///</summary>
|
|
||||||
[SugarColumn(ColumnName = "allow_anonymous")]
|
|
||||||
public bool AllowAnonymous { get; set; } = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue