/// <summary> /// Does this instance. /// </summary> public override void PerformAction() { //Determine if [User Information] already exists; this.userInformation = this.Repository.RetrieveUserInformation(this.userInfo.Email); if (userInformation == null) { bool isDomainValid = true; // the default is to allow all domains if user authenticates with Google; if (this.Provider.RestrictUsersToGoogleAppDomain) { isDomainValid = this.Provider.UserDomainIsValid(this.userInfo.Domain); } if (isDomainValid) { // Create [User/Authorization] information; this.userInformation = this.Repository.CreateUserInformation(this.userInfo); // Create [Authorization] information; this.Repository.CreateAuthorizationInformation(this.authorization); // Add new user to default role int roleId = 2;//general user; bool isAdded = this.Provider.AddEmailToRole(this.userInformation.Email, roleId); } } else { // Update [User/Authorization] information; this.userInformation = this.Repository.UpdateUserInformation(this.userInfo); this.Repository.UpdateAuthorizationInformation(this.authorization); } }
/// <summary> /// Initializes a new instance of the <see cref="CreateUpdateAuthorizationUserInfoAction" /> class. /// </summary> /// <param name="authorization">The authorization.</param> /// <param name="userInfo">The user info.</param> /// <param name="provider">The provider.</param> public CreateUpdateAuthorizationUserInfoAction(AuthorizationInformation authorization, UserInformation userInfo, MembershipProviderBase provider) : base(provider) { this.authorization = authorization; this.userInfo = userInfo; }
/// <summary> /// Initializes a new instance of the <see cref="RefreshAccessTokenAction" /> class. /// </summary> /// <param name="user">The user.</param> /// <param name="membershipProvider">The membership provider.</param> public RefreshAccessTokenAction(UserInformation user, MembershipProviderBase membershipProvider) : base(membershipProvider) { this.user = user; this.clientId = this.Provider.GoogleClientId; this.clientSecret = this.Provider.GoogleClientSecret; this.authorization = this.user.Authorization; }
/// <summary> /// Creates the forms authentication ticket. /// </summary> /// <param name="user">The user.</param> private void CreateFormsAuthenticationTicket(UserInformation user) { System.Web.HttpCookie cookie = this.MembershipService.CreateFormsAuthenticationCookie(user); if (cookie != null) { this.Response.Cookies.Add(cookie); } }
public void AttemptCreateFormsAuthenticationCookieWithInvalidUser() { UserInformation userInformation = new UserInformation("1234", "*****@*****.**", true, "ana", "valencia", "ana valencia", "buildmotion.com", string.Empty); userInformation.Email = string.Empty; //invalid email address; this.providerMock.Setup(r => r.RetrieveUserRolesString(It.IsAny<string>())).Returns("admin|user"); var action = new CreateFormsAuthenticationCookieAction(userInformation, this.providerMock.Object); action.Execute(); this.WriteValidationContextRuleResults(action.ValidationContext); Assert.IsNull(action.Cookie); }
/// <summary> /// Initializes a new instance of the <see cref="UserInformationIsValidRule"/> class. /// </summary> /// <param name="name">The name.</param> /// <param name="message">The message.</param> /// <param name="target">The target.</param> public UserInformationIsValidRule(string name, string message, UserInformation target) : base(name, message) { this.Rules.Add(new IsNotNullRule("UserInformationIsNotNull", "UserInformation is null.", target)); if (target != null) { this.Rules.Add(new StringIsNotEmptySpace("EmailStringIsValid", "The email string value is not valid.", target.Email)); //TODO: GET A BETTER reGEX; //this.Rules.Add(new RegularExpression("EmailAddressIsValid", "The email address is not valid.", target.Email, @"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b")); this.Rules.Add(new StringIsNotEmptySpace("FullNameStringIsValid", "The full name value is not valid.", target.FullName)); this.Rules.Add(new StringIsNotEmptySpace("GoogleIdStringIsValid", "The googleId value is not valid. Cannot be empty or null string.", target.GoogleId)); } }
public void AttemptCreateUpdateAuthorizationUserInfoWithInvalidEmailAddress() { // test setup; UserInformation userInformation = new UserInformation("1234", "*****@*****.**", true, "ana", "valencia", "ana valencia", "buildmotion.com", string.Empty); AuthorizationInformation authorization = new AuthorizationInformation("abc", DateTime.Now.ToUniversalTime().AddHours(1), DateTime.Now.ToUniversalTime(), "xyz"); authorization.Email = string.Empty; //remove this to fail the test; userInformation.Email = string.Empty; this.repositoryMock.Setup(r => r.RetrieveUserInformation(It.IsAny<string>())); this.repositoryMock.Setup(r => r.CreateUserInformation(It.IsAny<UserInformation>())).Returns(userInformation); this.repositoryMock.Setup(c => c.CreateAuthorizationInformation(It.IsAny<AuthorizationInformation>())).Returns(true); // test; var action = new CreateUpdateAuthorizationUserInfoAction(authorization, userInformation, this.providerMock.Object); action.Execute(); UserInformation user = action.UserInformation; // Assertions; WriteValidationContextRuleResults(action.ValidationContext); Assert.IsFalse(action.ValidationContext.IsValid); Assert.IsNull(user); }
/// <summary> /// Does this instance. /// </summary> public override void PerformAction() { var userInfoUrl = "https://www.googleapis.com/oauth2/v1/userinfo"; var hc = new HttpClient(); hc.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", this.accessToken); var response = hc.GetAsync(userInfoUrl).Result; dynamic userInfo = response.Content.ReadAsAsync<dynamic>().Result; if (userInfo != null) { this.userInformation = new UserInformation { Id = Guid.NewGuid(), Email = userInfo.email, FullName= userInfo.name, FirstName = userInfo.given_name, LastName = userInfo.family_name, Domain = userInfo.hd, IsVerifiedEmail = userInfo.verified_email, Link = userInfo.link, GoogleId = userInfo.id }; } }
public void CanUpdateUserAuthorizationInformation() { // test setup; UserInformation userInformation = new UserInformation("1234", "*****@*****.**", true, "ana", "valencia", "ana valencia", "buildmotion.com", string.Empty); AuthorizationInformation authorization = new AuthorizationInformation("abc", DateTime.Now.ToUniversalTime().AddHours(1), DateTime.Now.ToUniversalTime(), "xyz"); authorization.Email = userInformation.Email; //remove this to fail the test; userInformation.Id = Guid.NewGuid(); this.repositoryMock.Setup(r => r.RetrieveUserInformation(It.IsAny<string>())).Returns(userInformation); this.repositoryMock.Setup(u => u.UpdateUserInformation(It.IsAny<UserInformation>())).Returns(userInformation); this.repositoryMock.Setup(a => a.UpdateAuthorizationInformation(It.IsAny<AuthorizationInformation>())).Returns(true); // test; var action = new CreateUpdateAuthorizationUserInfoAction(authorization, userInformation, this.providerMock.Object); action.Execute(); UserInformation user = action.UserInformation; // Assertions; WriteValidationContextRuleResults(action.ValidationContext); Assert.IsTrue(action.ValidationContext.IsValid); Assert.IsNotNull(user); Assert.AreNotEqual(Guid.Empty, user.Id); Assert.IsNotNullOrEmpty(user.Email); }
/// <summary> /// Creates the user information. /// </summary> /// <param name="userInfo">The user info.</param> /// <returns></returns> public UserInformation CreateUserInformation(UserInformation userInfo) { return this.adaptor.CreateUserInformation(userInfo); }
/// <summary> /// Updates the user information. /// </summary> /// <param name="userInfo">The user info.</param> /// <returns></returns> public UserInformation UpdateUserInformation(UserInformation userInfo) { return this.adaptor.UpdateUserInformation(userInfo); }
/// <summary> /// Updates the user. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public bool UpdateUser(UserInformation user) { return this.provider.UpdateUser(user); }
/// <summary> /// Adds the roles to user. /// </summary> /// <param name="addRoles">The add roles.</param> /// <param name="user">The user.</param> /// <returns></returns> public bool AddRolesToUser(List<Role> addRoles, UserInformation user) { return this.provider.AddRolesToUser(addRoles, user); }
/// <summary> /// Refreshes the access token. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public string RefreshAccessToken(UserInformation user) { return this.provider.RefreshAccessToken(user); }
/// <summary> /// Removes the roles from user. /// </summary> /// <param name="removeRoles">The remove roles.</param> /// <param name="user">The user.</param> /// <returns></returns> public bool RemoveRolesFromUser(List<Role> removeRoles, UserInformation user) { return this.provider.RemoveRolesFromUser(removeRoles, user); }
/// <summary> /// Adds the roles to user. /// </summary> /// <param name="addRoles">The add roles.</param> /// <param name="user">The user.</param> /// <returns></returns> public override bool AddRolesToUser(List<Role> addRoles, UserInformation user) { bool isAdded = false; AddRolesToUserAction action = new AddRolesToUserAction(addRoles, user, this); action.Execute(); if (action.Result == ActionResult.Success) { isAdded = action.IsAdded; } return isAdded; }
/// <summary> /// Creates the update authorization user info. /// </summary> /// <param name="authorization">The authorization.</param> /// <param name="userInfo">The user info.</param> /// <returns></returns> public UserInformation CreateUpdateAuthorizationUserInfo(AuthorizationInformation authorization, UserInformation userInfo) { return this.provider.CreateUpdateAuthorizationUserInfo(authorization, userInfo); }
/// <summary> /// Initializes a new instance of the <see cref="UpdateUserAction"/> class. /// </summary> /// <param name="user">The user.</param> /// <param name="membershipProvider">The membership provider.</param> public UpdateUserAction(UserInformation user, MembershipProviderBase membershipProvider) : base(membershipProvider) { this.user = user; }
/// <summary> /// Creates the user information. /// </summary> /// <param name="userInfo">The user info.</param> /// <returns></returns> public override UserInformation CreateUserInformation(UserInformation userInfo) { UserInformation userInformation = null; using (this.dbContext = new BuildMotionDb(this.connectionStringName)) { //add and save; this.dbContext.UserInfos.Add(userInfo); int result = this.dbContext.SaveChanges(); //retrieve; userInformation = this.dbContext.UserInfos.Find(userInfo.Email); } return userInformation; }
/// <summary> /// Creates the forms authentication cookie. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public override HttpCookie CreateFormsAuthenticationCookie(UserInformation user) { HttpCookie cookie = null; CreateFormsAuthenticationCookieAction action = new CreateFormsAuthenticationCookieAction(user, this); action.Execute(); if (action.Result == ActionResult.Success) { cookie = action.Cookie; } return cookie; }
/// <summary> /// Updates the user. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public override bool UpdateUser(UserInformation user) { bool isUpdated = false; var action = new UpdateUserAction(user, this); action.Execute(); if (action.Result == ActionResult.Success) { isUpdated = action.IsUpdated; } return isUpdated; }
public override bool RemoveRolesFromUser(List<Role> removeRoles, UserInformation user) { bool isRemoved = false; var action = new RemoveRolesFromUserAction(removeRoles, user, this); action.Execute(); if (action.Result == ActionResult.Success) { isRemoved = action.IsRemoved; } return isRemoved; }
/// <summary> /// Refreshes the access token. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public override string RefreshAccessToken(UserInformation user) { string accessToken = string.Empty; RefreshAccessTokenAction action = new RefreshAccessTokenAction(user, this); action.Execute(); if (action.Result == ActionResult.Success) { accessToken = action.AccessToken; } return accessToken; }
/// <summary> /// Creates the update authorization user info. /// </summary> /// <param name="authorization">The authorization.</param> /// <param name="userInfo">The user info.</param> /// <returns></returns> public override UserInformation CreateUpdateAuthorizationUserInfo(AuthorizationInformation authorization, UserInformation userInfo) { UserInformation userInformation = null; CreateUpdateAuthorizationUserInfoAction action = new CreateUpdateAuthorizationUserInfoAction(authorization, userInfo, this); action.Execute(); if (action.Result == ActionResult.Success) { userInformation = action.UserInformation; } return userInformation; }
/// <summary> /// Creates the user information. /// </summary> /// <param name="userInfo">The user info.</param> /// <returns></returns> public UserInformation CreateUserInformation(UserInformation userInfo) { return this.dataAccessContext.EntityFrameworkDataAccess.CreateUserInformation(userInfo); }
/// <summary> /// Initializes a new instance of the <see cref="AddRolesToUserAction"/> class. /// </summary> /// <param name="addRoles">The add roles.</param> /// <param name="user">The user.</param> /// <param name="provider">The provider.</param> public AddRolesToUserAction(List<Role> addRoles, UserInformation user, MembershipProviderBase provider) : base(provider) { this.addRoles = addRoles; this.user = user; }
public RemoveRolesFromUserAction(List<Role> removeRoles, UserInformation user, MembershipProviderBase membershipProvider) : base(membershipProvider) { this.removeRoles = removeRoles; this.user = user; }
/// <summary> /// Creates the forms authentication cookie. /// </summary> /// <param name="user">The user.</param> /// <returns></returns> public HttpCookie CreateFormsAuthenticationCookie(UserInformation user) { return this.provider.CreateFormsAuthenticationCookie(user); }
/// <summary> /// Updates the user information. /// </summary> /// <param name="userInfo">The user info.</param> /// <returns></returns> public override UserInformation UpdateUserInformation(UserInformation userInfo) { UserInformation userInformation = null; using (this.dbContext = new BuildMotionDb(this.connectionStringName)) { this.dbContext.UserInfos.Attach(userInfo); this.dbContext.Entry(userInfo).State = EntityState.Modified; int result = this.dbContext.SaveChanges(); userInformation = this.RetrieveUserInformation(userInfo.Email); } return userInformation; }
/// <summary> /// Creates the user information. /// </summary> /// <param name="userInfo">The user info.</param> /// <returns></returns> public abstract UserInformation CreateUserInformation(UserInformation userInfo);