public async Task <bool> UpdateAsync(UserEditModel model) { if (model == null) { return(ToResponse(false, Errors.invalid_data)); } if (!_process.User.isAdmin) { if (!_process.User.Permissions.Contains("employee.me")) { return(ToResponse(false, "Bạn không có quyền")); } if (model.Id != _process.User.Id) { return(ToResponse(false, "Bạn không có quyền")); } } if (!string.IsNullOrWhiteSpace(model.Email) && !BusinessExtensions.IsValidEmail(model.Email.Trim(), 50)) { return(ToResponse(false, "Email không hợp lệ")); } if (model.RoleId <= 0) { return(ToResponse(false, "Vui lòng chọn vai trò")); } if (string.IsNullOrWhiteSpace(model.UserName)) { return(ToResponse(false, Errors.invalid_username_or_pass)); } var user = await _rpEmployee.GetByUserNameAsync(model.UserName.Trim(), _process.User.Id); if (user == null) { return(ToResponse(false, "Tài khoản không tồn tại")); } user = _mapper.Map <UserSql>(model); user.UpdatedBy = _process.User.Id; user.Email = string.IsNullOrWhiteSpace(user.Email) ? string.Empty : user.Email.Trim().ToLower(); var existUser = await _rpEmployee.GetByIdAsync(model.Id); if (!_process.User.isHead && model.RoleId == (int)RoleType.Head) { return(ToResponse(false, "Vai trò không hợp lệ")); } if (!_process.User.isAdmin && (model.RoleId == (int)RoleType.Admin || model.RoleId == (int)RoleType.Head)) { return(ToResponse(false, "Vai trò không hợp lệ")); } if (_process.User.isRsmAsmSS || _process.User.isSale) { user.RoleId = existUser.RoleId; } return(ToResponse(await _rpEmployee.UpdateAsync(user))); }
public async Task <int> CreateAsync(UserCreateModel model) { if (model == null) { return(ToResponse(0, Errors.invalid_data)); } if (string.IsNullOrWhiteSpace(model.UserName)) { return(ToResponse(0, "Tên đăng nhập không được để trống")); } if (model.UserName.Contains(" ")) { return(ToResponse(0, "Tên đăng nhập viết liền không dấu cách")); } if (string.IsNullOrWhiteSpace(model.Password)) { return(ToResponse(0, "Mật khẩu không được để trống")); } if (model.Password.Trim().Length < 5) { return(ToResponse(0, "Mật khẩu phải có ít nhất 5 ký tự")); } if (string.IsNullOrWhiteSpace(model.PasswordConfirm)) { return(ToResponse(0, "Mật khẩu xác thực không được để trống")); } if (model.Password != model.PasswordConfirm) { return(ToResponse(0, "Mật khẩu không khớp")); } if (model.RoleId <= 0) { return(ToResponse(0, "Vui lòng chọn vai trò")); } if (!string.IsNullOrWhiteSpace(model.Email) && !BusinessExtensions.IsValidEmail(model.Email.Trim(), 50)) { return(ToResponse(0, "Email không hợp lệ")); } if (string.IsNullOrWhiteSpace(model.Code)) { return(ToResponse(0, "Mã nhân viên không được để trống")); } var existUserName = await _rpEmployee.GetByUserNameAsync(model.UserName.Trim(), _process.User.Id); if (existUserName != null) { return(ToResponse(0, "Tên đăng nhập đã tồn tại")); } var existCode = await _rpEmployee.GetByCodeAsync(model.Code.Trim(), _process.User.Id); if (existCode != null) { return(ToResponse(0, "Mã đã tồn tại")); } var user = _mapper.Map <UserSql>(model); user.CreatedBy = _process.User.Id; user.Code = user.Code.Trim().ToLower(); user.Email = user.Email.Trim().ToLower(); user.UserName = user.UserName.Trim().ToLower(); user.Password = user.Password.Trim(); user.Password = Utils.getMD5(model.Password); var response = await _rpEmployee.CreateAsync(user); return(ToResponse(response)); }