Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
 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
 }
Beispiel #5
0
 public void ValidateUser_when_password_is_emptystring_throw_exception()
 {
     //arrange
     var mut = new UserAdminService(_provider);
     //act
     var result = mut.ValidateUser("username", "");
     //assert
     //cleanup
 }
Beispiel #6
0
 public void ValidateUser_when_username_is_null_throw_exception()
 {
     //arrange
     var mut = new UserAdminService(_provider);
     //act
     var result = mut.ValidateUser(null, "password");
     //assert
     //cleanup
 }
Beispiel #7
0
 public void ChangePassword_when_newpassword_is_emptystring_throw_exception()
 {
     //arrange
     var mut = new UserAdminService(_provider);
     //act
     var result = mut.ChangePassword("username", "oldpassword", "");
     //assert
     //cleanup
 }
Beispiel #8
0
 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
 }
Beispiel #9
0
        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());
        }
Beispiel #10
0
        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;
        }
Beispiel #11
0
        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;
        }
Beispiel #12
0
        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;
        }
Beispiel #13
0
        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
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        public bool UserAdminLogin(string name, string pwd)
        {
            UserAdminService userSvc = new UserAdminService();

            return(userSvc.Login(name, pwd));
        }
Beispiel #16
0
        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的资源.
                    }
                }
            });
        }
Beispiel #17
0
        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());
            }
        }
Beispiel #18
0
 public UserAdminController(ICategoryService categoryService, ISystemConfigurationService systemConfigurationService)
     : base(systemConfigurationService, categoryService)
 {
     userAdminService = new UserAdminService();
 }
Beispiel #19
0
 public ActionResult ChnageVendorsApproval(LocalUser model)
 {
     UserAdminService.ApprovalStatus(model);
     return(Json(true, JsonRequestBehavior.AllowGet));
 }
Beispiel #20
0
        public ActionResult ApproveVendors()
        {
            var data = UserAdminService.GetNotApprovedUsers("Vendor");

            return(View(data));
        }
Beispiel #21
0
        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);
            }
        }