public void SimpleUserTestDeserializeBase(byte[] Result, SimpleUserInfo Value, BaseOptionInfo SerializerOptions) { //in this example server side has SimpleUserInfo //server side has Id, Name, Family //and the client side has SimpleUserOldStructureInfo //client side has Id, Age, BirthDate ,Name //new structure of models var newStructureModels = BinarySerializer.GetStructureModels(SerializerOptions); //my old deserializer var myDeserializer = new BinaryDeserializer(); myDeserializer.Options = new BinaryGo.Helpers.BaseOptionInfo(); #region VersionChangedControl //generate type myDeserializer.Options.GenerateType <SimpleUserOldStructureInfo>(); //add model renamed myDeserializer.AddMovedType(myDeserializer.GetStrcutureModelName(typeof(SimpleUserInfo)), typeof(SimpleUserOldStructureInfo)); //build new structure to old structure myDeserializer.BuildStructure(newStructureModels); #endregion var result = myDeserializer.Deserialize <SimpleUserOldStructureInfo>(Result); Assert.True(result.IsEquals(Value)); //now serialize from client side and deserialize from server side happen result.Age = 150; result.BirthDate = DateTime.Now.AddYears(-20); BinarySerializer binarySerializer = new BinarySerializer(myDeserializer.Options); var resultSerialized = binarySerializer.Serialize(result); var resultDeserialized = myDeserializer.Deserialize <SimpleUserOldStructureInfo>(resultSerialized); Assert.True(resultDeserialized.IsEquals(Value)); }
private IUserInfo ChangeUserState(DataRow rowUser, bool isValid) { IUserInfo result = null; SetCommands(AdapterCommand.Update); if (!isValid) { //strSQL = "UPDATE UR_USERS SET USER_ACTIVE = 0, USER_UNLOCK_DATE = {0} WHERE USER_ID ={1} "; //strSQL = string.Format(strSQL, Context.GetSqlParamName("USER_UNLOCK_DATE"), Context.GetSqlParamName("USER_ID")); //parameters.Add("USER_UNLOCK_DATE", XmlDataType.DateTime, DateTime.Now.AddDays(1)); //parameters.Add("USER_ID", XmlDataType.String, rowUser["USER_ID"]); } else { rowUser.BeginEdit(); rowUser["Active"] = 1; rowUser["LoginDate"] = DateTime.Now; rowUser["UnlockDate"] = DBNull.Value; rowUser.EndEdit(); result = new SimpleUserInfo(rowUser["Name"].ToString(), rowUser["LoginName"].ToString(), rowUser["Id"], rowUser["OrgId"]); } UpdateDatabase(); return(result); }
/// <summary> /// 构造一个简单用户信息类集合 /// </summary> /// <param name="sql"></param> /// <returns></returns> private List <SimpleUserInfo> FillSimpleUsers(string sql) { Database db = CreateDatabase(); DbCommand command = db.GetSqlStringCommand(sql); List <SimpleUserInfo> list = new List <SimpleUserInfo>(); using (IDataReader reader = db.ExecuteReader(command)) { SmartDataReader dr = new SmartDataReader(reader); while (reader.Read()) { SimpleUserInfo info = new SimpleUserInfo(); info.Id = dr.GetInt32("Id"); info.Name = dr.GetString("Name"); info.Password = dr.GetString("Password"); info.FullName = dr.GetString("FullName"); info.UserCode = dr.GetString("UserCode"); info.MobilePhone = dr.GetString("MobilePhone"); info.Email = dr.GetString("Email"); list.Add(info); } } return(list); }
// From body is a hack. Because query have length limit. public async Task <IActionResult> GetUsersSimpleInfoBatch(ulong guildId, [FromBody] GetUsersSimpleInfoBatchRequest request) { var guild = DiscordClient.GetGuild(guildId); if (guild == null) { return(BadRequest(new { Message = "Requested guild not found." })); } await guild.SyncGuildAsync(); var users = new List <SimpleUserInfo>(); foreach (var id in request.UserIDs) { var user = await guild.GetUserFromGuildAsync(id); if (user != null) { users.Add(SimpleUserInfo.Create(user)); } } return(Ok(users)); }
public async Task <List <SimpleUserInfo> > GetSimpleUsersList(ulong guildID, List <ulong> userIds) { var guild = DiscordClient.GetGuild(guildID); if (guild == null) { throw new BadRequestException("Requested guild not found.", new { guildID }); } await guild.SyncGuildAsync(); var users = new List <SimpleUserInfo>(); foreach (var id in userIds) { var user = await guild.GetUserFromGuildAsync(id); if (user != null) { users.Add(SimpleUserInfo.Create(user)); } } return(users); }
public bool IsEquals(SimpleUserInfo user) { var isEqual = user.Id == Id && user.Name == Name; return(isEqual); }
public ChannelboardViewModel(SocketGuild guild, SocketGuildUser user, List <ChannelStatItem> items) { Guild = guild; if (user != null) { User = SimpleUserInfo.Create(user); } Items = items; }
public SimpleUserInfo GetSimpleSample() { SimpleUserInfo userInfo = new SimpleUserInfo() { Age = 28, CreatedDate = DateTime.Now, FullName = "Ali Yousefi Telori", Id = 1, }; return(userInfo); }
public override bool Delete(object key) { List <SimpleUserInfo> list = new Role().getSimpleUserList(); if (list.Count == 1) { SimpleUserInfo info = list[0]; if (Convert.ToInt32(key) == info.ID) { throw new MyException("管理员角色至少需要包含一个用户!"); } } return(base.baseDal.Delete(key)); }
/// <summary> /// 重写删除操作,检查保留管理员用户 /// </summary> /// <param name="key">主键的值</param> /// <param name="trans">事务对象</param> /// <returns></returns> public override bool Delete(object key, DbTransaction trans = null) { List <SimpleUserInfo> adminSimpleUsers = BLLFactory <Role> .Instance.GetAdminSimpleUsers(); if (adminSimpleUsers.Count == 1) { SimpleUserInfo info = adminSimpleUsers[0]; if (Convert.ToInt32(key) == info.ID) { throw new MyException("管理员角色至少需要包含一个用户!"); } } return(baseDal.Delete(key, trans)); //return SetDeletedFlag(key, true, trans); }
public void RemoveUser(int userID, int ouID) { if (this.OUInRole(ouID, "超级管理员")) { List <SimpleUserInfo> list = new Role().getSimpleUserList(); if (list.Count == 1) { SimpleUserInfo info = list[0]; if (userID == info.ID) { throw new MyException("超级管理员角色至少需要包含一个用户!"); } } } this.iou_0.RemoveUser(userID, ouID); }
/// <summary> /// 在机构中移除指定的用户 /// </summary> /// <param name="userID">用户ID</param> /// <param name="ouID">机构ID</param> public void RemoveUser(int userID, int ouID) { if (this.OUInRole(ouID, RoleInfo.SuperAdminName)) { List <SimpleUserInfo> adminSimpleUsers = BLLFactory <Role> .Instance.GetAdminSimpleUsers(); if (adminSimpleUsers.Count == 1) { SimpleUserInfo info = (SimpleUserInfo)adminSimpleUsers[0]; if (userID == info.ID) { throw new MyException("管理员角色至少需要包含一个用户!"); } } } ouDal.RemoveUser(userID, ouID); }
private List <SimpleUserInfo> GetSqlList(string strSQL) { Database database = DatabaseFactory.CreateDatabase(); DbCommand sqlStringCommand = database.GetSqlStringCommand(strSQL); List <SimpleUserInfo> list = new List <SimpleUserInfo>(); using (IDataReader reader = database.ExecuteReader(sqlStringCommand)) { SmartDataReader reader2 = new SmartDataReader(reader); while (reader.Read()) { SimpleUserInfo item = new SimpleUserInfo { ID = reader2.GetInt32("ID"), Name = reader2.GetString("Name"), Password = reader2.GetString("Password"), FullName = reader2.GetString("FullName") }; list.Add(item); } } return(list); }
private IEnumerable <ISimpleUserInfo> GetDisplaySimpleUserInfo(Models.SqlQueryModel.UserInfo[] users, IUserDisplayStrategy strategy) { var kind = strategy.GetUserDisplayKind(); foreach (var user in users) { var simpleUser = new SimpleUserInfo() { Uid = user.uid, Mobile = user.mobile, UserName = strategy.GetUserName(user.uid, user.name, user.verifyStatus == VerifyStatus.Pass), Sex = user.sex, Kind = kind, Job = user.job, Corver = user.cover, Company = user.company, IsSelf = strategy.CheckIsSelfInfo(user.uid), VerifyState = VerifyStateConvert(user), ForceShowMobile = strategy.GetIsForceShowMobile(user.uid), ForceShowName = strategy.GetIsForceShowName(user.uid), }; yield return(simpleUser); } }
public ChannelboardViewModel(SocketGuild guild, SocketGuildUser user, List <ChannelStatItem> items) { Guild = ChannelboardWebGuild.Create(guild); User = SimpleUserInfo.Create(user); Items = items; }
public ServiceResult <object> SelectUserRole([FromBody] UserInfo userInfo) { if (userInfo.RoleId == DataLayer.Tools.SystemConfig.SystemRoleId) { var clientIp = Util.GetClientIp(Request); if (!DataLayer.Tools.SystemConfig.AdminValidIp.Contains(clientIp)) { return(new ServiceResult <object>(Enumerator.ErrorCode.AccessDeny, $"Admin IP is invalid: {clientIp}")); } } var httpSession = HttpContext.Session; var ip = Util.GetClientIp(Request); if (httpSession == null || string.IsNullOrEmpty(httpSession.Id)) { return(new ServiceResult <object>(Enumerator.ErrorCode.BusinessMessage, "داده های ارسالی معتبر نمی باشد")); } var requestedUrl = Request.Headers["referer"].ToString(); if (requestedUrl == null) { return(new ServiceResult <object>(Enumerator.ErrorCode.BusinessMessage, "درخواست معتبر نمی باشد")); } try { if (string.IsNullOrEmpty(userInfo.Username.Trim())) { return(new ServiceResult <object>(Enumerator.ErrorCode.ApplicationError, "لطفا نام کاربری را وارد نمایید")); } if (string.IsNullOrEmpty(userInfo.Password.Trim())) { return(new ServiceResult <object>(Enumerator.ErrorCode.ApplicationError, "لطفا کلمه عبور را وارد نمایید")); } var token = UserFacade.GetInstance() .GetHashPassword(Util.GetTimeStamp(DateTime.Now).ToString(CultureInfo.InvariantCulture)); using (var context = new ParsiContext()) { var userRole = context.UserRole.Where(p => p.CurrentUsers.Username == userInfo.Username.ToLower().Trim() && p.CurrentUsers.Password == UserFacade.GetInstance().GetHashPassword(userInfo.Password.Trim()) && p.RoleId == userInfo.RoleId && p.OrganizationId == userInfo.OrganizationId) .Include(p => p.CurrentRole) .Include(p => p.CurrentOrganization) .Include(p => p.CurrentUsers) .ThenInclude(p => p.CurrentPerson) .ThenInclude(p => p.CurrentFile) .FirstOrDefault(); if (userRole != null) { var info = new UserInfo { Active = userRole.CurrentUsers.Active, AccessKey = userRole.OrgAccess, Token = token, FirstName = userRole.CurrentUsers.FirstName, LastName = userRole.CurrentUsers.LastName, Password = "", Username = userRole.CurrentUsers.Username, PersonId = userRole.CurrentUsers.PersonId, RoleId = userRole.RoleId, UserId = userRole.UserId, RoleName = userRole.CurrentRole.RoleName, OrganizationName = userRole.CurrentOrganization.Name, OrganizationId = userRole.OrganizationId, Timestamp = Util.GetTimeStamp( DateTime.Now.AddMinutes( Convert.ToDouble(userRole.CurrentRole.ExpireMinute.ToString()))), Picture = userRole.CurrentUsers.CurrentPerson?.CurrentFile?.Path }; info.UseCase = new Dictionary <string, HashSet <string> >(); var accessGroup = context.RoleAccessGroup.Where(p => p.Role == info.RoleId) .Select(p => p.AccessGroup) .ToList(); if (accessGroup.Count > 0) { var data = context.UseCaseActionAccessGroup.Where(p => accessGroup.Contains(p.AccessGroup)) .Include(p => p.CurrentUseCaseAction) .ThenInclude(p => p.CurrentUseCase) .Include(p => p.CurrentUseCaseAction) .ThenInclude(p => p.CurrentAction).ToList(); foreach (var item in data) { if (info.UseCase.ContainsKey(item.CurrentUseCaseAction.CurrentUseCase.Clazz.ToLower())) { var current = info.UseCase[item.CurrentUseCaseAction.CurrentUseCase.Clazz.ToLower()]; current.Add(item.CurrentUseCaseAction.CurrentAction.ActionEnName); info.UseCase.Remove(item.CurrentUseCaseAction.CurrentUseCase.Clazz.ToLower()); info.UseCase.Add(item.CurrentUseCaseAction.CurrentUseCase.Clazz.ToLower(), current); } else { var current = new HashSet <string>(); current.Add(item.CurrentUseCaseAction.CurrentAction.ActionEnName); info.UseCase.Add(item.CurrentUseCaseAction.CurrentUseCase.Clazz.ToLower(), current); } } } var offset = new DateTimeOffset( DateTime.Now.AddMinutes( Convert.ToDouble(userRole.CurrentRole.ExpireMinute.ToString()))); var option = new MemoryCacheEntryOptions().SetAbsoluteExpiration(offset) .SetPriority(CacheItemPriority.High); _memoryCache.Set("session_" + info.Username, info, option); var claims = new List <Claim> { new Claim("userId", info.UserId.ToString()), new Claim(ClaimTypes.Name, info.Username), new Claim("username", info.Username), new Claim("firstName", info.FirstName), new Claim("lastName", info.LastName), new Claim("roleName", info.RoleName), new Claim("token", info.Token), new Claim("picture", info.Picture ?? "images/users/avatar.png"), new Claim("IsAdmin", userRole.CurrentUsers.IsAdmin.ToString()) }; var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var principal = new ClaimsPrincipal(identity); var properties = new AuthenticationProperties { IsPersistent = userInfo.Remember }; HttpContext.SignInAsync(principal, properties); var newUserInfo = new SimpleUserInfo { Token = info.Token, Username = info.Username, FirstName = info.FirstName, LastName = info.LastName, RoleName = info.RoleName, OrganizationName = info.OrganizationName, Timestamp = Util.GetTimeStamp( DateTime.Now.AddMinutes(Convert.ToDouble(userRole.CurrentRole.ExpireMinute.ToString()))) }; var ticket = _jwtHandlers.Create(new TokenOption { UserInfo = newUserInfo, ExpireMinutes = userRole.CurrentRole.ExpireMinute, Ip = ip }); newUserInfo.Ticket = ticket.Ticket; return(new ServiceResult <object>(newUserInfo, 1)); } return(new ServiceResult <object>(Enumerator.ErrorCode.ApplicationError, "کاربری با این مشخصات یافت نشد")); } } catch (Exception e) { return(new ServiceResult <object>(Enumerator.ErrorCode.BusinessMessage, "امکان ورود به سایت در حال حاضر میسر نمی باشد")); } }