hdong: fix admin account conflict with common account.

This commit is contained in:
YouWeiDH 2024-11-14 20:42:25 +08:00
parent 805dbbbe08
commit f9466ab398
3 changed files with 18 additions and 2 deletions

View file

@ -19,6 +19,7 @@ public interface IBotSharpRepository : IHaveServiceProvider
#region User
User? GetUserByEmail(string email) => throw new NotImplementedException();
User? GetUserByPhone(string phone, string regionCode = "CN") => throw new NotImplementedException();
User? GetAdminUserByPhone(string phone, string regionCode = "CN") => throw new NotImplementedException();
User? GetAffiliateUserByPhone(string phone) => throw new NotImplementedException();
User? GetUserById(string id) => throw new NotImplementedException();
List<User> GetUserByIds(List<string> ids) => throw new NotImplementedException();

View file

@ -172,7 +172,7 @@ public class UserService : IUserService
var base64 = Encoding.UTF8.GetString(Convert.FromBase64String(authorization));
var (id, password) = base64.SplitAsTuple(":");
var db = _services.GetRequiredService<IBotSharpRepository>();
var record = db.GetUserByPhone(id);
var record = db.GetAdminUserByPhone(id);
var isCanLogin = record != null && !record.IsDisabled
&& record.Type == UserType.Internal && new List<string>
{

View file

@ -22,7 +22,22 @@ public partial class MongoRepository
string phoneSecond = phone.StartsWith("+86") ? phone.Replace("+86", "") : $"+86{phone}";
var user = _dc.Users.AsQueryable().FirstOrDefault(x => (x.Phone == phone || x.Phone == phoneSecond) && x.Type != UserType.Affiliate && (x.RegionCode == regionCode || string.IsNullOrWhiteSpace(x.RegionCode)));
var user = _dc.Users.AsQueryable().FirstOrDefault(x => (x.Phone == phone || x.Phone == phoneSecond) && x.Type != UserType.Affiliate
&& (x.RegionCode == regionCode || string.IsNullOrWhiteSpace(x.RegionCode)));
return user != null ? user.ToUser() : null;
}
public User? GetAdminUserByPhone(string phone, string regionCode = "CN")
{
if (string.IsNullOrWhiteSpace(phone))
{
return null;
}
string phoneSecond = phone.StartsWith("+86") ? phone.Replace("+86", "") : $"+86{phone}";
var user = _dc.Users.AsQueryable().FirstOrDefault(x => (x.Phone == phone || x.Phone == phoneSecond) && x.Type != UserType.Affiliate
&& (x.RegionCode == regionCode || string.IsNullOrWhiteSpace(x.RegionCode)) && (x.Role == "admin" || x.Role == "root"));
return user != null ? user.ToUser() : null;
}