public async Task GetUserByNameAsyncShouldReturnUserByName() { var db = DbInfrastructure.GetDatabase(); const string UserName = "******"; var user = new User { UserName = UserName, Email = "*****@*****.**" }; await db.AddAsync(user); await db.SaveChangesAsync(); for (var i = 0; i < 10; i++) { await db.AddAsync(new User { UserName = $"Gosho {i}" }); } await db.SaveChangesAsync(); var userAdminService = new UserAdminService(db); var actualUser = await userAdminService.GetUserByNameAsync(UserName); user.Should().BeSameAs(actualUser); }
public void GetAllGroups_will_return_groups_sorted_by_title() { //arrange var group1 = new Group() { Title = "zTitle" }; var group2 = new Group() { Title = "xTitle" }; _repositoryGroup.Add(group1); _repositoryGroup.Add(group2); var mut = new UserAdminService(_provider); //act var result = mut.GetAllGroups(); //assert Assert.AreEqual("xTitle", result[0].Title); //cleanup _repositoryGroup.Delete(group1); _repositoryGroup.Delete(group2); }
public ActionResult ChnageUserApproval(LocalUser model) { var user = UserAdminService.ApprovalStatus(model); var feedback = ""; if (!model.IsApproved) { KaamShaam.Services.EmailService.SendEmail(user.Email, "User Account Status Changed - KamSham.Pk", user.FullName + " admin has deleted your account. Please review your account.\n Feedback : " + feedback); // sms is in DeleteUser method } else { KaamShaam.Services.EmailService.SendEmail(user.Email, "User Account Status Changed - KamSham.Pk", user.FullName + " we noticed that admin has updated your account status. Please review your account." + feedback); KaamShaam.Services.EmailService.SendSms(user.Mobile, "Your account status has been changed. Please visit https://kamsham.pk"); } if (!model.IsApproved) { AdminService.DeleteUser(new AspNetUser { Id = model.Id }, model.Feedback); } return(Json(true, JsonRequestBehavior.AllowGet)); }
public void ChangePassword_when_oldpassword_is_null_throw_exception() { //arrange var mut = new UserAdminService(_provider); //act var result = mut.ChangePassword("username", null, "newpassword"); //assert //cleanup }
public void ValidateUser_when_password_is_emptystring_throw_exception() { //arrange var mut = new UserAdminService(_provider); //act var result = mut.ValidateUser("username", ""); //assert //cleanup }
public void ValidateUser_when_username_is_null_throw_exception() { //arrange var mut = new UserAdminService(_provider); //act var result = mut.ValidateUser(null, "password"); //assert //cleanup }
public void ChangePassword_when_newpassword_is_emptystring_throw_exception() { //arrange var mut = new UserAdminService(_provider); //act var result = mut.ChangePassword("username", "oldpassword", ""); //assert //cleanup }
public void CreateUser_when_username_is_empty_throw_exception() { //arrange var mut = new UserAdminService(_provider); //act var result = mut.CreateUser("", "password", "email", "role"); //assert //cleanup }
public UserAdminServiceUnitTest(TestFixture fixture) : base(fixture) { _db = new MockDbBuilder() .WithUser(ADMIN_USER) .WithSecurityAccessRoles(ACCESS_ROLES) .WithSecurityAccessRoleParents(ACCESS_ROLE_PARENTS) .WithCarrierScacs(CARRIER_SCACS) .WithUserCarrierScacs(USER_CARRIER_SCACS) .Build(); _logger = new Mock <ILogger <UserAdminService> >(); var mockTopsLoadshopApiService = new Mock <ITopsLoadshopApiService>(); mockTopsLoadshopApiService.Setup(_ => _.GetIdentityUser(It.IsAny <string>())).ReturnsAsync( new ResponseMessage <IdentityUserData> { Data = new IdentityUserData { UserName = USER_DATA.Username, Company = USER_DATA.CompanyName, Email = USER_DATA.Email } }); _securityService.Setup(_ => _.GetAuthorizedCustomersforUserAsync()).ReturnsAsync((new List <CustomerData>() { new CustomerData { CustomerId = CUSTOMER_ID } }).AsReadOnly()); _securityService.Setup(_ => _.GetAllMyAuthorizedCarriersAsync()).ReturnsAsync((new List <CarrierData>()).AsReadOnly()); _securityService.Setup(_ => _.GetUserRolesAsync()).ReturnsAsync((new List <SecurityAccessRoleData> { new SecurityAccessRoleData { AccessRoleLevel = 1 } }).AsReadOnly()); _securityService.Setup(_ => _.UserHasRoleAsync(It.IsAny <string[]>())).ReturnsAsync(true); _securityService.Setup(_ => _.UserHasActionAsync(It.IsAny <string[]>())).ReturnsAsync(true); _securityService.Setup(_ => _.GetAuthorizedScacsForCarrierAsync(It.IsAny <string>(), It.IsAny <Guid>())) .ReturnsAsync((new List <CarrierScacData> { new CarrierScacData { CarrierId = "KBXL", Scac = "KBXL" } }).AsReadOnly()); _userContext.SetupGet(_ => _.UserId).Returns(ADMIN_USER_IDENT_ID); _dateTimeProvider = new Mock <IDateTimeProvider>(); _dateTimeProvider.SetupGet(x => x.Now).Returns(NOW); _dateTimeProvider.SetupGet(x => x.Today).Returns(NOW); CrudService = new UserAdminService(_db.Object, _mapper, _logger.Object, _userContext.Object, _securityService.Object, mockTopsLoadshopApiService.Object, GetCacheManager()); }
public void ChangePassword_when_no_exception_returns_change_password_status_result() { //arrange var mock = new Mock <MembershipProvider>(); mock.Setup(x => x.GetUser("username", true)).Returns(new FakeMembershipUser()); _provider = mock.Object; var mut = new UserAdminService(_provider); //act var result = mut.ChangePassword("username", "oldpassword", "newpassword"); //assert Assert.AreEqual(true, result); //cleanup _provider = null; }
public void ChangePassword_when_get_user_or_change_password_throws_membershippasswordexception_exception_returns_false() { //arrange var mock = new Mock <MembershipProvider>(); mock.Setup(x => x.GetUser("username", true)).Throws(new MembershipPasswordException()); _provider = mock.Object; var mut = new UserAdminService(_provider); //act var result = mut.ChangePassword("username", "oldpassword", "newpassword"); //assert Assert.AreEqual(false, result); //cleanup _provider = null; }
public void DeleteUser_when_no_exception_occurs_returns_true() { //arrange var mock = new Mock <MembershipProvider>(); mock.Setup(x => x.DeleteUser("username", true)); _provider = mock.Object; var mut = new UserAdminService(_provider); //act var result = mut.DeleteUser("username"); //assert Assert.AreEqual(true, result); //cleanup _provider = null; }
public void UpdateGroup_when_group_is_found_updates_group_title() { //arrange var originalGroup = new Group() { Id = 1, Title = "title" }; var groupToUpdate = new Group() { Id = 1, Title = "updatedTitle" }; _repositoryGroup.Add(originalGroup); var mut = new UserAdminService(_provider); //act mut.UpdateGroup(groupToUpdate); var result = _repositoryGroup.GetQuery().First(x => x.Id == 1); //assert Assert.AreEqual("updatedTitle", result.Title); //cleanup }
public void UpdateGroup_when_group_is_found_updates_group_Description() { //arrange var originalGroup = new Group() { Id = 1, Description = "description" }; var groupToUpdate = new Group() { Id = 1, Description = "updateddescription" }; _repositoryGroup.Add(originalGroup); var mut = new UserAdminService(_provider); //act mut.UpdateGroup(groupToUpdate); var result = _repositoryGroup.GetQuery().First(x => x.Id == 1); //assert Assert.AreEqual("updateddescription", result.Description); //cleanup _repositoryGroup.Delete(originalGroup); }
public bool UserAdminLogin(string name, string pwd) { UserAdminService userSvc = new UserAdminService(); return(userSvc.Login(name, pwd)); }
protected void Application_Start() { #region Autofac在MVC中注册 ContainerBuilder builder = new ContainerBuilder(); var service = Assembly.Load("IService"); var service1 = Assembly.Load("Service"); var service2 = Assembly.Load("Model"); Assembly[] assemblyArr = new Assembly[] { service, service1, service2 }; builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterAssemblyTypes(assemblyArr).AsImplementedInterfaces(); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); #endregion DbContext db = new MyContext(); if (db.Database.CreateIfNotExists()) { //产品表 IProductAdminService productSerivce = new ProductAdminService(); List <Product> productList = new List <Product>() { new Product() { Category = 1, ImagePath = "../image", MarketTime = DateTime.Now, Number = 30, Name = "可口可乐", Price = 2.5, ProduceTime = DateTime.Now, ProtectTime = 12, Status = 1 }, new Product() { Category = 1, ImagePath = "../image", MarketTime = DateTime.Now, Number = 30, Name = "雪碧", Price = 2.5, ProduceTime = DateTime.Now, ProtectTime = 12, Status = 1 } }; productSerivce.AddRange(productList); //机器表 IMachineAdminService machineService = new MachineAdminService(); List <Machine> machineList = new List <Machine>() { new Machine() { Address = "雨花台软件大道", Code = "JQ0001", MaintainTime = DateTime.Now, MarketTime = DateTime.Now }, new Machine() { Address = "玄武区孝陵卫", Code = "JQ0002", MaintainTime = DateTime.Now, MarketTime = DateTime.Now } }; machineService.AddRange(machineList); //权限 IAuthorityService authorityService = new AuthorityAdminService(); List <Authority> authorityList = new List <Authority>() { new Authority() { Id = 1, BuildTime = DateTime.Now, Description = "测试", Name = "R&W", Status = 0, Type = 0, UpdateTime = DateTime.Now, Roles = new List <Role>() }, new Authority() { Id = 2, BuildTime = DateTime.Now, Description = "测试1", Name = "W", Status = 0, Type = 0, UpdateTime = DateTime.Now, Roles = new List <Role>() } }; authorityService.AddRange(authorityList); Authority authority1 = new Authority(); authority1 = authorityService.GetList(s => s.Id == 1).FirstOrDefault(); Authority authority2 = new Authority(); authority2 = authorityService.GetList(s => s.Id == 2).FirstOrDefault(); //角色 IRoleAdminService roleService = new RoleAdminService(); List <Role> roleList = new List <Role>() { new Role() { Id = 1, BuildTime = DateTime.Now, Description = "测试1", RoleName = "测试1", Status = 0, UpateTime = DateTime.Now, Authoritys = new List <Authority>() }, new Role() { Id = 2, BuildTime = DateTime.Now, Description = "测试2", RoleName = "测试2", Status = 0, UpateTime = DateTime.Now, Authoritys = new List <Authority>() } }; roleService.AddRange(roleList); Role role1 = new Role(); role1 = roleService.GetList(s => s.Id == 1).FirstOrDefault(); Role role2 = new Role(); role2 = roleService.GetList(s => s.Id == 2).FirstOrDefault(); role1.Authoritys.Add(authority1); role2.Authoritys.Add(authority2); //用户表 IUserAdminService userService = new UserAdminService(); List <User> userList = new List <User>() { new User() { ID = 1, NickName = "薄荷", Password = "******", EMail = "*****@*****.**", Role = role1, RoleID = role1.Id, Status = 0, LoginTime = DateTime.Now, Count = 0, BuildTime = DateTime.Now, UpdateTime = DateTime.Now }, new User() { ID = 2, NickName = "少年", Password = "******", EMail = "*****@*****.**", Role = role2, RoleID = role2.Id, Status = 0, LoginTime = DateTime.Now, Count = 0, BuildTime = DateTime.Now, UpdateTime = DateTime.Now } }; userService.AddRange(userList); } //log4net.Config.XmlConfigurator.Configure();//读取Log4Net配置信息 AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //MiniProfilerEF6.Initialize();//注册MiniProfiler,网页性能插件 log4net.Config.XmlConfigurator.Configure(); //WaitCallback ThreadPool.QueueUserWorkItem((a) => { while (true) { if (MyExceptionAttribute.ExceptionQueue.Count > 0) { Exception ex = MyExceptionAttribute.ExceptionQueue.Dequeue();//出队 //string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; //File.AppendAllText(Path.Combine("App_Data", fileName), ex.ToString(), System.Text.Encoding.Default); //ILog logger = LogManager.GetLogger("errorMsg"); ILog logger = log4net.LogManager.GetLogger("logger"); logger.Error(ex.ToString()); #region 发送邮件 //MailHelper mail = new MailHelper(); //mail.MailServer = "smtp.qq.com"; //mail.MailboxName = "*****@*****.**"; //mail.MailboxPassword = "******";//开启QQ邮箱POP3/SMTP服务时给的授权码 ////操作打开QQ邮箱->在账号下方点击"设置"->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 ////obxxsfowztbideee为2872845261@qq的授权码 //mail.MailName = "Error"; //try //{ // mail.Send("*****@*****.**", "Error", ex.ToString()); //} //catch //{ } #endregion } else { Thread.Sleep(3000);//如果队列中没有数据,则休息为了避免占用CPU的资源. } } }); }
public async Task <ActionResult> Login(RegisterPageWraper model, string returnUrl) { if (!ModelState.IsValid) { return(RedirectToAction("Login", "Account")); } if (string.IsNullOrEmpty(returnUrl)) { returnUrl = "Home/Index"; } var findByEmail = UserManager.FindByEmail(model.LoginViewModel.Email); if (findByEmail == null) { ModelState.AddModelError("", "Invalid login attempt or user does not exist"); return(GetLoginStuff()); } var uid = findByEmail.Id; var uObj = UserServices.GetUserById(uid); if (uObj.Roles.Any(r => r.ToLower().Contains("admin") || r.ToLower().Contains("super admin"))) { ModelState.AddModelError("", "Invalid login attempt."); return(GetLoginStuff()); } if (!uObj.PhoneNumberConfirmed) { TempData.Add("userId", uObj.Id); TempData.Add("userNumber", uObj.Mobile); return(RedirectToAction("VerifyNumber", "Account")); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.LoginViewModel.Email, model.LoginViewModel.Password, true, shouldLockout : false); switch (result) { case SignInStatus.Success: { var isApproved = UserAdminService.IsUserApproved(model.LoginViewModel.Email); if (!isApproved) { var mesge = string.IsNullOrEmpty(uObj.Feedback) ? "User is not approved by admin." : uObj.Feedback; ModelState.AddModelError("", mesge); return(GetLoginStuff()); } SetUserSession(uObj); returnUrl = uObj.Type == "User" ? "/Job/ManageJobs" : "/Job/findJobs"; return(RedirectToLocal(returnUrl)); } case SignInStatus.LockedOut: return(View("Lockout")); case SignInStatus.RequiresVerification: return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.LoginViewModel.RememberMe })); case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid login attempt."); return(GetLoginStuff()); } }
public UserAdminController(ICategoryService categoryService, ISystemConfigurationService systemConfigurationService) : base(systemConfigurationService, categoryService) { userAdminService = new UserAdminService(); }
public ActionResult ChnageVendorsApproval(LocalUser model) { UserAdminService.ApprovalStatus(model); return(Json(true, JsonRequestBehavior.AllowGet)); }
public ActionResult ApproveVendors() { var data = UserAdminService.GetNotApprovedUsers("Vendor"); return(View(data)); }
public async Task <HttpResponseMessage> LoginUser(LoginViewModel model) { try { HttpResponseMessage endResponse; var response = new ApiResponseModel { Data = model }; if (model == null || string.IsNullOrEmpty(model.Password) || string.IsNullOrEmpty(model.Email)) { response.Success = false; response.Message = "Mandatory data fields are missing/not mapped or not in right format"; endResponse = Request.CreateResponse(HttpStatusCode.BadRequest, response); return(endResponse); } var isApproved = UserAdminService.IsUserApproved(model.Email); if (!isApproved) { response.Message = "Account is not approved by Admin."; response.Success = false; #region Check credential of unapproved user var signInManager = HttpContext.Current.GetOwinContext().Get <ApplicationSignInManager>(); var result = await signInManager.PasswordSignInAsync(model.Email, model.Password, true, shouldLockout : false); switch (result) { case SignInStatus.Failure: { response.Message = "Invalid Username/Password."; break; } } #endregion } else { var signInManager = HttpContext.Current.GetOwinContext().Get <ApplicationSignInManager>(); var result = await signInManager.PasswordSignInAsync(model.Email, model.Password, true, shouldLockout : false); switch (result) { case SignInStatus.Success: { var usermanager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>(); var uid = usermanager.FindByEmail(model.Email).Id; response.Message = "Logged-in successfully"; response.Success = true; response.JToken = "a%&@JK*@#CG|wJ"; response.UserId = uid; break; } default: /* Optional */ { response.Message = "Invalid Username/Password."; response.Success = false; response.JToken = null; break; } } } endResponse = Request.CreateResponse(HttpStatusCode.OK, response); return(endResponse); } catch (Exception excep) { var response = new ApiResponseModel { Data = model, Message = excep.InnerException.Message, Success = false }; var endResponse = Request.CreateResponse(HttpStatusCode.InternalServerError, response); return(endResponse); } }