public ErpUser GetUser(string email, string password) { var encryptedPassword = PasswordUtil.GetMd5Hash(password); var result = new EqlCommand("SELECT *, $user_role.* FROM user WHERE email = @email AND password = @password", new List <EqlParameter> { new EqlParameter("email", email), new EqlParameter("password", encryptedPassword) }).Execute(); if (result.Count != 1) { return(null); } return(result[0].MapTo <ErpUser>()); }
public ErpUser GetUser(string email, string password) { if (string.IsNullOrWhiteSpace(email)) return null; var encryptedPassword = PasswordUtil.GetMd5Hash(password); var result = new EqlCommand("SELECT *, $user_role.* FROM user WHERE email ~* @email AND password = @password", new List<EqlParameter> { new EqlParameter("email", email), new EqlParameter("password", encryptedPassword) }).Execute(); foreach(var rec in result) { if (((string)rec["email"]).ToLowerInvariant() == email.ToLowerInvariant()) return rec.MapTo<ErpUser>(); } return null; }
private void btnLogin_Click(object sender, EventArgs e) { AuthenService authenService = new AuthenService(); string username = txtUsername.Text; string password = PasswordUtil.GetMd5Hash(txtPassword.Text); UserDataTable userDataTable = authenService.GetUsersForLogin(this.userTableAdapter, username, password); if (userDataTable.Count == 0) { MessageBox.Show("Tên đăng nhập hoặc Mật khẩu không đúng. Xin vui lòng thử lại.", "Lỗi đăng nhập", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { UserPrivilegeDataTable upTable = authenService.LoadUserPrivileges(this.userPrivilegeTableAdapter, userDataTable[0].UserId); authenService.SetAuthenticatedUser(userDataTable[0], upTable); this.Close(); showCurrentForm(); } }
private object ExtractFieldValue(KeyValuePair <string, object>?fieldValue, Field field, bool encryptPasswordFields = false) { if (fieldValue != null && fieldValue.Value.Key != null) { var pair = fieldValue.Value; if (field is AutoNumberField) { if (pair.Value == null) { return(null); } if (pair.Value is string) { return(decimal.Parse(pair.Value as string)); } return(Convert.ToDecimal(pair.Value)); } else if (field is CheckboxField) { return(pair.Value as bool?); } else if (field is CurrencyField) { if (pair.Value == null) { return(null); } if (pair.Value is string) { return(decimal.Parse(pair.Value as string)); } return(Convert.ToDecimal(pair.Value)); } else if (field is DateField) { if (pair.Value == null) { return(null); } DateTime?date = null; if (pair.Value is string) { date = DateTime.Parse(pair.Value as string); } else { date = pair.Value as DateTime?; } if (date != null) { return(new DateTime(date.Value.Year, date.Value.Month, date.Value.Day, 0, 0, 0, DateTimeKind.Utc)); } } else if (field is DateTimeField) { if (pair.Value == null) { return(null); } if (pair.Value is string) { return(DateTime.Parse(pair.Value as string)); } return(pair.Value as DateTime?); } else if (field is EmailField) { return(pair.Value as string); } else if (field is FileField) { //TODO convert file path to url path return(pair.Value as string); } else if (field is ImageField) { //TODO convert image path to url path return(pair.Value as string); } else if (field is HtmlField) { return(pair.Value as string); } else if (field is MultiLineTextField) { return(pair.Value as string); } else if (field is MultiSelectField) { if (pair.Value == null) { return(null); } else if (pair.Value is JArray) { return(((JArray)pair.Value).Select(x => ((JToken)x).Value <string>()).ToList <string>()); } else if (pair.Value is List <object> ) { return(((List <object>)pair.Value).Select(x => ((object)x).ToString()).ToList <string>()); } else { return(pair.Value as IEnumerable <string>); } } else if (field is NumberField) { if (pair.Value == null) { return(null); } if (pair.Value is string) { return(decimal.Parse(pair.Value as string)); } return(Convert.ToDecimal(pair.Value)); } else if (field is PasswordField) { if (encryptPasswordFields) { if (((PasswordField)field).Encrypted == true) { if (string.IsNullOrWhiteSpace(pair.Value as string)) { return(null); } return(PasswordUtil.GetMd5Hash(pair.Value as string)); } } return(pair.Value); } else if (field is PercentField) { if (pair.Value == null) { return(null); } if (pair.Value is string) { return(decimal.Parse(pair.Value as string)); } return(Convert.ToDecimal(pair.Value)); } else if (field is PhoneField) { return(pair.Value as string); } else if (field is GuidField) { if (pair.Value is string) { if (string.IsNullOrWhiteSpace(pair.Value as string)) { return(null); } return(new Guid(pair.Value as string)); } if (pair.Value is Guid) { return((Guid?)pair.Value); } if (pair.Value == null) { return((Guid?)null); } throw new Exception("Invalid Guid field value."); } else if (field is SelectField) { return(pair.Value as string); } else if (field is TextField) { return(pair.Value as string); } else if (field is UrlField) { return(pair.Value as string); } else if (field is TreeSelectField) { if (pair.Value == null) { return(null); } else if (pair.Value is JArray) { return(((JArray)pair.Value).Select(x => new Guid(((JToken)x).Value <string>())).ToList <Guid>()); } else if (pair.Value is List <object> ) { return(((List <object>)pair.Value).Select(x => ((Guid)x)).ToList <Guid>()); } else { return(pair.Value as IEnumerable <Guid>); } } } else { return(field.GetDefaultValue()); } throw new Exception("System Error. A field type is not supported in field value extraction process."); }
private void ProcessQueryObject(Entity entity, QueryObject obj) { if (obj == null) { return; } if (obj.QueryType != QueryType.AND && obj.QueryType != QueryType.OR && obj.QueryType != QueryType.RELATED && obj.QueryType != QueryType.NOTRELATED) { var field = entity.Fields.SingleOrDefault(x => x.Name == obj.FieldName); if (!(obj.QueryType == QueryType.RELATED || obj.QueryType == QueryType.NOTRELATED)) { if (field == null) { throw new Exception(string.Format("There is not entity field '{0}' you try to query by.", obj.FieldName)); } } if (field is NumberField || field is AutoNumberField) { if (obj.FieldValue != null) { obj.FieldValue = Convert.ToDecimal(obj.FieldValue); } } else if (field is GuidField) { if (obj.FieldValue != null && obj.FieldValue is string) { var stringGuid = obj.FieldValue as string; if (!string.IsNullOrWhiteSpace(stringGuid)) { obj.FieldValue = new Guid(stringGuid); } else { obj.FieldValue = null; } } } else if (field is CheckboxField) { if (obj.FieldValue != null && obj.FieldValue is string) { obj.FieldValue = bool.Parse(obj.FieldValue as string); } } else if (field is PasswordField && obj.FieldValue != null) { obj.FieldValue = PasswordUtil.GetMd5Hash(obj.FieldValue as string); } } if (obj.QueryType == QueryType.RELATED || obj.QueryType == QueryType.NOTRELATED) { var relation = relationRepository.Read(obj.FieldName); if (relation == null) { throw new Exception(string.Format("There is not relation with name '{0}' used in your query.", obj.FieldName)); } if (relation.RelationType != EntityRelationType.ManyToMany) { throw new Exception(string.Format("Only many to many relations can used in Related and NotRelated query operators.", obj.FieldName)); } var direction = obj.FieldValue as string ?? "origin-target"; if (relation.OriginEntityId == relation.TargetEntityId) { if (direction == "target-origin") { obj.FieldName = $"#{obj.FieldName}_origins"; } else { obj.FieldName = $"#{obj.FieldName}_targets"; } } else { if (entity.Id == relation.OriginEntityId) { obj.FieldName = $"#{obj.FieldName}_targets"; } else { obj.FieldName = $"#{obj.FieldName}_origins"; } } } if (obj.QueryType == QueryType.AND || obj.QueryType == QueryType.OR) { if (obj.SubQueries != null && obj.SubQueries.Count > 0) { foreach (var subObj in obj.SubQueries) { ProcessQueryObject(entity, subObj); } } } }
private void txtPassword_EditValueChanged(object sender, EventArgs e) { this.GridView.SetFocusedRowCellValue("Password", PasswordUtil.GetMd5Hash(txtPassword.Text)); }