public bool TryGetAccessToken(out UserAccessToken userAccessToken) { var accessToken = _httpContext.Session[_sessionKeyName] as UserAccessToken; userAccessToken = accessToken; return accessToken != null; }
public IEnumerable<Hug> GetHugs(UserAccessToken userAccessToken) { _logger.Info("Getting hugs for: " + userAccessToken.Email); var mongoHugs = _hugRepository.GetHugs(userAccessToken.Ticket).ToList(); var hugs = Mapper.Map<IList<Service.Model.Hug>>(mongoHugs); return hugs; }
public void SendHug(UserAccessToken userAccessToken, string recipientUserId) { _logger.Info("Sending hug from: " + userAccessToken.Email + " to " + recipientUserId); var hug = new Hug() { Created = DateTime.Now, SenderID = userAccessToken.Ticket }; var mongoHug = Mapper.Map<Data.MongoDB.Model.Hug>(hug); _hugRepository.InsertHug(recipientUserId, mongoHug); }
public void Login_Success() { var accessTokenProviderMock = new Mock<IUserAccessTokenProvider>(); var accessTokenProvider = accessTokenProviderMock.Object; var userServiceMock = new Mock<IUserService>(); var userService = userServiceMock.Object; var userController = new LoginController(userService, accessTokenProvider); var loginModel = new LoginViewModel() { Email = "testuser", Password = "******" }; var credentials = new UserCredentials() { Email = loginModel.Email, Password = loginModel.Password }; var accessToken = new UserAccessToken("123456"); userServiceMock.Setup(a => a.Login(credentials)).Returns(accessToken); var result = userController.Index(loginModel) as RedirectToRouteResult; Assert.IsNotNull(result, "Login Action did not yield a Redirection"); Assert.AreEqual(result.RouteValues["controller"], "Home"); Assert.AreEqual(result.RouteValues["action"], "Index"); //Assert that the controller forwarded the username and password to IUserService correctly userServiceMock.Verify(a => a.Login(credentials), Times.Once()); //Assert that the controller set the session state correctly accessTokenProviderMock.Verify(a => a.SetUserAccessToken(accessToken)); }
public void SetUserAccessToken(UserAccessToken accessToken) { var hash = GenerateSaltedHash(accessToken.Email + ":" + accessToken.Ticket, GenerateSalt()); var hashString = Convert.ToBase64String(hash); if (!_memcachedClient.Store(StoreMode.Set, hashString, accessToken)) { _logger.Error("Failed to set access token for: " + accessToken.Email); throw new UserTokenPersistenceFailedExpcetion(); } CurrentAccessToken = accessToken; var cookie = new HttpCookie(_cookieName, hashString) { Secure = _useSecureCookie, /* Ensures that this cookie is only used on SSL connections - this prevents Man-in-the-middle attacks */ HttpOnly = true, /* Ensures that the cookie cannot be read from JavaScript - this prevents XSS attacks */ }; HttpContext.Current.Response.Cookies.Add(cookie); _logger.Info("Set access token for: " + accessToken.Email); }
public bool TryGetAccessToken(out UserAccessToken accessToken) { if(CurrentAccessToken != null) { accessToken = CurrentAccessToken; return true; } string hash; if(TryGetHashFromCookie(out hash)) { accessToken = _memcachedClient.Get<UserAccessToken>(hash); CurrentAccessToken = accessToken; return accessToken != null; } accessToken = null; return false; }
public void SetUserAccessToken(UserAccessToken accessToken) { _httpContext.Session[_sessionKeyName] = accessToken; }
public bool Equals(UserAccessToken other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return Equals(other.Ticket, Ticket); }
public void DeleteUser(UserAccessToken accessToken) { _userRepository.DeleteUser(accessToken.Ticket); _logger.Info("Deleted user account: " + accessToken.Email); }
public void DismissHugs(UserAccessToken userAccessToken) { _hugRepository.DismissHugs(userAccessToken.Ticket); }
public void Create_TestSuccess() { var userServiceMock = new Mock<IUserService>(); var userService = userServiceMock.Object; var userProfileServiceMock = new Mock<IUserProfileService>(); var userProfileService = userProfileServiceMock.Object; var controllerContextMock = new Mock<ControllerContext>(); var userController = new UserController(userService, userProfileService); userController.ControllerContext = controllerContextMock.Object; var createModel = new CreateViewModel { Username = "******", Password = "******", StreetAddress = "rofl", City = "mao", ZipCode = 1000 }; var credentials = new UserCredentials() { Email = createModel.Email, Password = createModel.Password }; var accessToken = new UserAccessToken("123456"); userServiceMock.Setup(a => a.Create(credentials)).Returns(accessToken); userServiceMock.Setup(a => a.Login(credentials)).Returns(accessToken); var viewResult = userController.Index(createModel) as RedirectToRouteResult; Assert.IsNotNull(viewResult, "Controller did not return a RedirectToRouteResult"); var userProfile = new UserProfile() { Username = createModel.Username, Address = new Address() { Street = createModel.StreetAddress, City = createModel.City, ZipCode = createModel.ZipCode } }; userServiceMock.Verify(a => a.Create(credentials)); userProfileServiceMock.Verify(a => a.UpdateProfile(accessToken, userProfile)); }