用户从全局唯一改成租户范围唯一
This commit is contained in:
parent
8ed93030a4
commit
9dd4383a04
@ -20,6 +20,8 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
private readonly SqlSugarRepository<SysUser> _sysUserRep;
|
||||
private readonly SysConfigService _sysConfigService;
|
||||
private readonly SysCacheService _sysCacheService;
|
||||
private readonly SysTenantService _sysTenantService;
|
||||
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly ICaptcha _captcha;
|
||||
private readonly IEventPublisher _eventPublisher;
|
||||
@ -28,6 +30,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
SqlSugarRepository<SysUser> sysUserRep,
|
||||
SysConfigService sysConfigService,
|
||||
SysCacheService sysCacheService,
|
||||
SysTenantService sysTenantService,
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
ICaptcha captcha,
|
||||
IEventPublisher eventPublisher)
|
||||
@ -36,6 +39,7 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
_sysUserRep = sysUserRep;
|
||||
_sysConfigService = sysConfigService;
|
||||
_sysCacheService = sysCacheService;
|
||||
_sysTenantService = sysTenantService;
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_captcha = captcha;
|
||||
_eventPublisher = eventPublisher;
|
||||
@ -114,8 +118,8 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
//}
|
||||
|
||||
// 判断账号是否存在
|
||||
var user = await _sysUserRep.AsQueryable().Includes(t => t.SysOrg).ClearFilter<ITenantIdFilter>()
|
||||
//.WhereIF(tenantId > 0, u => u.TenantId == tenantId)
|
||||
var user = await _sysUserRep.AsQueryable().Includes(t => t.SysOrg)
|
||||
.WhereIF(tenantId > 0, u => u.TenantId == tenantId)
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(account), u => u.Account.Equals(account))
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(phone), u => u.Phone.Equals(phone))
|
||||
.FirstAsync();
|
||||
@ -405,4 +409,20 @@ public class SysAuthService : IDynamicApiController, ITransient
|
||||
return 401;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据域名获取租户ID 🔖
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[SuppressMonitor]
|
||||
[DisplayName("根据域名获取租户ID")]
|
||||
[AllowAnonymous]
|
||||
public long GetTenantIdByHostname(string hostname)
|
||||
{
|
||||
var list = _sysCacheService.Get<List<SysTenant>>(CacheConst.KeyTenant);
|
||||
var tenant = list.Find(p => p.Host.Contains(hostname));
|
||||
if(tenant != null)
|
||||
return tenant.Id;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -109,7 +109,7 @@ public class SysUserService : IDynamicApiController, ITransient
|
||||
// 是否有权操作此账号
|
||||
if (!_userManager.SuperAdmin && input.AccountType is AccountTypeEnum.SuperAdmin) throw Oops.Oh(ErrorCodeEnum.D1033);
|
||||
|
||||
var query = _sysUserRep.AsQueryable().ClearFilter<ITenantIdFilter>();
|
||||
var query = _sysUserRep.AsQueryable();
|
||||
if (await query.AnyAsync(u => u.Account == input.Account)) throw Oops.Oh(ErrorCodeEnum.D1003);
|
||||
if (!string.IsNullOrWhiteSpace(input.Phone) && await query.AnyAsync(u => u.Phone == input.Phone)) throw Oops.Oh(ErrorCodeEnum.D1032);
|
||||
|
||||
@ -142,7 +142,7 @@ public class SysUserService : IDynamicApiController, ITransient
|
||||
[DisplayName("更新用户")]
|
||||
public virtual async Task UpdateUser(UpdateUserInput input)
|
||||
{
|
||||
var query = _sysUserRep.AsQueryable().ClearFilter<ITenantIdFilter>().Where(u => u.Id != input.Id);
|
||||
var query = _sysUserRep.AsQueryable().Where(u => u.Id != input.Id);
|
||||
if (await query.AnyAsync(u => u.Account == input.Account)) throw Oops.Oh(ErrorCodeEnum.D1003);
|
||||
if (!string.IsNullOrWhiteSpace(input.Phone) && await query.AnyAsync(u => u.Phone == input.Phone)) throw Oops.Oh(ErrorCodeEnum.D1032);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user