예제 #1
0
 public static void CopyFromEntity(GetUserDetailsResponse response, Consumer consumer)
 {
     if (response.user_details == null)
     {
         response.user_details = new UserDetailsDto();
     }
     response.user_details.user_id = consumer.ConsID;
     //response.user_details.user_activated = consumer.ConsActivated ? 1 : 0;
     //response.user_details.user_blocked = consumer.ConsBlocked ? 1 : 0;
     response.user_details.user_name       = consumer.Name;
     response.user_details.user_mobile_num = consumer.PhoneNumber;
     //response.user_details.user_created_date = consumer.CreatedDate;
     //response.user_details.user_last_login = consumer.LastLogin ?? DateTime.MinValue;
     response.user_details.profile_image = consumer.ProfileImage != null ? ImagePathService.consumerImagePath + consumer.ProfileImage : string.Empty;
     //if (consumer.ConsumerAddresses.Count() > 0)
     //{
     //    response.user_details.user_addresses = new List<UserAddressesDto>();
     //    foreach (ConsumerAddress consAddr in consumer.ConsumerAddresses)
     //    {
     //        UserAddressesDto usrAddr = new UserAddressesDto();
     //        CopyFromEntity(usrAddr, consAddr, consumer.Name);
     //        response.user_details.user_addresses.Add(usrAddr);
     //        if (consAddr.IsDefault)
     //        {
     //            response.user_details.user_latitude = consAddr.Latitude;
     //            response.user_details.user_longitude = consAddr.Longitude;
     //        }
     //    }
     //}
     response.user_details.user_mobile_num = consumer.PhoneNumber;
 }
        public GetUserDetailsResponse GetUserDetails(GetUserDetailsRequest request)
        {
            GetUserDetailsResponse response = new GetUserDetailsResponse();
            Consumer consumer = null;

            try
            {
                using (UserDao dao = new UserDao())
                {
                    consumer = GetAuthUser(dao, request.user_id, request.auth_token, true);
                    if (consumer == null)
                    {
                        MakeNouserResponse(response);
                        return(response);
                    }
                    UsersHelper.CopyFromEntity(response, consumer);
                    response.has_resource = 1;
                    response.code         = 0;
                    response.message      = MessagesSource.GetMessage("user.details");
                    return(response);
                }
            }
            catch (Exception ex)
            {
                response.MakeExceptionResponse(ex);
                return(response);
            }
        }
예제 #3
0
        /// <summary>
        /// Returns basic information about the logged-in user
        /// Endpoint : https://api.surveymonkey.net/v2/user/get_user_details?api_key=your_api_key
        /// Example Request
        ///     curl -H 'Authorization:bearer XXXYYYZZZ' -H 'Content-Type: application/json' https://api.surveymonkey.net/v2/user/get_user_details/?api_key=your_api_key
        /// </summary>
        public GetUserDetailsResponse GetUserDetails(BasicRequestData requestData)
        {
            JsonResponse = MakeApiRequest(GET_USER_DETAILS, requestData);
            GetUserDetailsResponse surveyList = JsonConvert.DeserializeObject <GetUserDetailsResponse>(JsonResponse);

            return(surveyList);
        }
예제 #4
0
            public void GetUserDetails()
            {
                GetUserDetailsRequest  request  = new GetUserDetailsRequest(connection, testToken, testUser);
                GetUserDetailsResponse response = request.Send();

                Assert.AreEqual(response.StatusCode, System.Net.HttpStatusCode.OK);
            }
예제 #5
0
        /**
         * Get user details.
         */
        public static async Task <GetUserDetailsResponse> GetUserDetails(AmazonDynamoDBClient dbClient, string loggedInUserId)
        {
            Debug.Untested();
            Debug.AssertValid(dbClient);
            Debug.AssertID(loggedInUserId);

            User user = await IdentityServiceLogicLayer.FindUserByID(dbClient, loggedInUserId);

            Debug.AssertValid(user);
            GetUserDetailsResponse retVal = new GetUserDetailsResponse()
            {
                emailAddress                  = user.EmailAddress,
                givenName                     = user.GivenName,
                familyName                    = user.FamilyName,
                preferredName                 = user.PreferredName,
                fullName                      = user.FullName,
                dateOfBirth                   = APIHelper.APIDateStringFromDate(user.DateOfBirth),
                gender                        = user.Gender,
                address1                      = user.Address1,
                address2                      = user.Address2,
                address3                      = user.Address3,
                address4                      = user.Address4,
                city                          = user.City,
                region                        = user.Region,
                country                       = user.Country,
                postalCode                    = user.PostalCode,
                phoneNumber                   = user.PhoneNumber,
                phoneNumberVerified           = APIHelper.APIDateTimeStringFromDateTime(user.PhoneNumberVerified),
                newEmailAddress               = user.NewEmailAddress,
                allowNonEssentialEmails       = user.AllowNonEssentialEmails,
                totalTicketsPurchased         = user.TotalTicketsPurchased,
                ticketsPurchasedInCurrentGame = user.TicketsPurchasedInCurrentGame,
                preferredLanguage             = user.PreferredLanguage,
                preferredCurrency             = user.PreferredCurrency,
                preferredTimeZone             = user.PreferredTimeZone,
                maxDailySpendingAmount        = user.MaxDailySpendingAmount,
                newMaxDailySpendingAmount     = user.NewMaxDailySpendingAmount,
                newMaxDailySpendingAmountTime = APIHelper.APIDateTimeStringFromDateTime(user.NewMaxDailySpendingAmountTime),
                maxTimeLoggedIn               = user.MaxTimeLoggedIn,
                newMaxTimeLoggedIn            = user.NewMaxTimeLoggedIn,
                newMaxTimeLoggedInTime        = APIHelper.APIDateTimeStringFromDateTime(user.NewMaxTimeLoggedInTime),
                excludeUntil                  = APIHelper.APIDateTimeStringFromDateTime(user.ExcludeUntil),
                newExcludeUntil               = APIHelper.APIDateTimeStringFromDateTime(user.NewExcludeUntil),
                newExcludeUntilTime           = APIHelper.APIDateTimeStringFromDateTime(user.NewExcludeUntilTime)
            };

            return(retVal);
        }
 public async Task <GetUserDetailsResponse> GetUserInformationAsync(GetUserDetailsRequest userDetails)
 {
     try
     {
         var context         = new UserDetailsContext();
         var userInformation = context.UserDetails.Where(user => user.UserEmail == userDetails.UserEmail).SingleOrDefault();
         GetUserDetailsResponse userResponse = new GetUserDetailsResponse();
         userResponse.FirstName   = userInformation.FirstName;
         userResponse.LastName    = userInformation.LastName;
         userResponse.PhoneNumber = userInformation.PhoneNumber;
         userResponse.UserEmail   = userInformation.UserEmail;
         userResponse.UserType    = ((UserAccessType)userInformation.UserTypeId).ToString();
         return(userResponse);
     }
     catch (Exception e)
     {
         throw;
         return(null);
     }
 }
        public ActionResult EditInfo()
        {
            string          connection  = ConfigurationManager.AppSettings["InternalAPIURL"];
            var             ctx         = Request.GetOwinContext();
            ClaimsPrincipal user        = ctx.Authentication.User;
            string          accessToken = user.Claims.FirstOrDefault(x => x.Type == "AccessToken").Value;
            string          userID      = user.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value;

            GetUserDetailsRequest  userDetailRequest  = new GetUserDetailsRequest(connection, accessToken, new Guid(userID));
            GetUserDetailsResponse userDetailResponse = userDetailRequest.Send();

            EditInfo model = new EditInfo()
            {
                Nicknane  = userDetailResponse.NICKNAME,
                FirstName = userDetailResponse.FIRST_NAME,
                LastName  = userDetailResponse.LAST_NAME,
            };

            return(View(model));
        }
        public ActionResult Index()
        {
            string         connection  = ConfigurationManager.AppSettings["InternalAPIURL"];
            ClaimsIdentity identity    = new ClaimsIdentity(Request.GetOwinContext().Authentication.User.Identity);
            string         accessToken = identity.FindFirst("AccessToken").Value;
            string         userID      = identity.FindFirst(ClaimTypes.NameIdentifier).Value;

            GetUserDetailsRequest  detailRequest = new GetUserDetailsRequest(connection, accessToken, new Guid(userID));
            GetUserDetailsResponse model         = detailRequest.Send();

            if (model.StatusCode == System.Net.HttpStatusCode.OK)
            {
                return(View(model));
            }
            else
            {
                TempData["Errors"] = "There was an error processing your request";
                return(View());
            }
        }
예제 #9
0
        public IActionResult GetUserProfile()
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var isOperationSuccessful = Getemail(out var email);

            if (!isOperationSuccessful)
            {
                return(NotFound());
            }

            var returnObject = new GetUserDetailsResponse();
            var userMaster   = Repo.GetUserMaster(email);

            returnObject = Mapper.Map(userMaster, returnObject);
            var userDetails = Repo.GetUserDetails(userMaster.UserId);

            returnObject = Mapper.Map(userDetails, returnObject);
            return(Ok(returnObject));
        }
예제 #10
0
        /**
         * Get user details.
         */
        public async Task <APIGatewayProxyResponse> GetUserDetails(IDataStores dataStores,
                                                                   IDictionary <string, string> requestHeaders)
        {
            Debug.Untested();
            Debug.AssertValid(dataStores);
            Debug.AssertValid(requestHeaders);

            try {
                // Log call
                LoggingHelper.LogMessage($"UserIdentityService::GetUserDetails()");

                // Get the NoSQL DB client
                AmazonDynamoDBClient dbClient = (AmazonDynamoDBClient)dataStores.GetNoSQLDataStore().GetDBClient();
                Debug.AssertValid(dbClient);

                // Check authenticated endpoint security
                string loggedInUserId = await APIHelper.CheckLoggedIn(dbClient, requestHeaders);

                Debug.AssertID(loggedInUserId);

                // Perform logic
                GetUserDetailsResponse response = await UserIdentityService_GetUserDetails_LogicLayer.GetUserDetails(dbClient, loggedInUserId);

                Debug.AssertValid(response);

                // Respond
                return(new APIGatewayProxyResponse {
                    StatusCode = APIHelper.STATUS_CODE_OK,
                    Body = JsonConvert.SerializeObject(response)
                });
                //??--return Ok(response);
            } catch (Exception exception) {
                Debug.Tested();
                return(APIHelper.ResponseFromException(exception));
            }
        }
예제 #11
0
        public async Task <UserDetails> GetUserDetailsAsync(string userId)
        {
            GetUserDetailsResponse response = await RequestApiAsync <GetUserDetailsResponse>("get_user_details", new  { id = userId });

            return(response.User);
        }
        public void OnAuthentication(AuthenticationContext filterContext)
        {
            //Get current user
            ClaimsPrincipal user = filterContext.HttpContext.User as ClaimsPrincipal;

            if (user != null && user.Identity.IsAuthenticated)
            {
                ClaimsIdentity identity    = new ClaimsIdentity(user.Identity);
                DateTime       expiresTime = DateTimeOffset.FromUnixTimeSeconds(long.Parse(identity.FindFirst(ClaimTypes.Expiration).Value)).LocalDateTime;

                if (expiresTime < DateTime.Now)
                {
                    string connection   = ConfigurationManager.AppSettings["InternalAPIURL"];
                    string refreshToken = identity.FindFirst("RefreshToken").Value;

                    RefreshRequest  refreshRequest  = new RefreshRequest(connection, refreshToken);
                    RefreshResponse refreshResponse = refreshRequest.Send();

                    GetUserDetailsRequest  userDetailRequest  = new GetUserDetailsRequest(connection, refreshResponse.access_token, new Guid(refreshResponse.user_id));
                    GetUserDetailsResponse userDetailResponse = userDetailRequest.Send();

                    if (refreshResponse.StatusCode == System.Net.HttpStatusCode.OK && userDetailResponse.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        //Update the user's claims
                        identity.RemoveClaim(identity.FindFirst("AccessToken"));
                        identity.RemoveClaim(identity.FindFirst(ClaimTypes.Expiration));
                        identity.RemoveClaim(identity.FindFirst(ClaimTypes.Name));
                        identity.RemoveClaim(identity.FindFirst(ClaimTypes.NameIdentifier));
                        identity.AddClaim(new Claim("AccessToken", refreshResponse.access_token));
                        identity.AddClaim(new Claim(ClaimTypes.Expiration, refreshResponse.expireTime));
                        identity.AddClaim(new Claim(ClaimTypes.Name, refreshResponse.user_nick));
                        identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, refreshResponse.user_id));

                        var roleClaims = identity.FindAll(ClaimTypes.Role);
                        foreach (Claim role in roleClaims)
                        {
                            identity.RemoveClaim(role);
                        }

                        if (userDetailResponse.PERMISSIONS.Administrator)
                        {
                            identity.AddClaim(new Claim(ClaimTypes.Role, "Administrator"));
                        }
                        if (userDetailResponse.PERMISSIONS.Developer)
                        {
                            identity.AddClaim(new Claim(ClaimTypes.Role, "Developer"));
                        }

                        var authenticationManager = filterContext.HttpContext.GetOwinContext().Authentication;
                        authenticationManager.SignOut();

                        AuthenticationProperties properties = new AuthenticationProperties {
                            IsPersistent = Convert.ToBoolean(identity.FindFirst(ClaimTypes.IsPersistent).Value)
                        };
                        authenticationManager.SignIn(properties, identity);

                        ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(identity);
                        filterContext.HttpContext.User = claimsPrincipal;
                    }
                    else
                    {
                        filterContext.HttpContext.GetOwinContext().Authentication.SignOut();
                    }
                }
            }
            else
            {
                filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary {
                    { "controller", "Account" }, { "action", "Login" }
                });
            }
        }
예제 #13
0
        public NegotiatedContentResult <GetUserDetailsResponse> PostGetUserDetails([FromBody] GetUserDetailsRequest request)
        {
            GetUserDetailsResponse resp = _userServices.GetUserDetails(request);

            return(Content(HttpStatusCode.OK, resp));
        }
        public ActionResult Login(Login model)
        {
            if (ModelState.IsValid)
            {
                //make login request
                string connection = ConfigurationManager.AppSettings["InternalAPIURL"];

                LoginRequest  loginRequest  = new LoginRequest(connection, model.Email, model.password);
                LoginResponse loginResponse = loginRequest.Send();

                if (loginResponse.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    string accessToken = loginResponse.access_token;
                    Guid   userID      = new Guid(loginResponse.user_id);

                    GetUserDetailsRequest  userDetailRequest  = new GetUserDetailsRequest(connection, accessToken, userID);
                    GetUserDetailsResponse userDetailResponse = userDetailRequest.Send();
                    if (userDetailResponse.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        List <Claim> claims = new List <Claim>();
                        claims.Add(new Claim("AccessToken", loginResponse.access_token));
                        claims.Add(new Claim("RefreshToken", loginResponse.refresh_token));
                        claims.Add(new Claim(ClaimTypes.Name, loginResponse.user_nick));
                        claims.Add(new Claim(ClaimTypes.NameIdentifier, loginResponse.user_id));
                        claims.Add(new Claim(ClaimTypes.Expiration, loginResponse.expireTime));
                        claims.Add(new Claim(ClaimTypes.IsPersistent, model.RememberMe.ToString()));
                        if (userDetailResponse.PERMISSIONS.Administrator)
                        {
                            claims.Add(new Claim(ClaimTypes.Role, "Administrator"));
                        }
                        if (userDetailResponse.PERMISSIONS.Developer)
                        {
                            claims.Add(new Claim(ClaimTypes.Role, "Developer"));
                        }

                        ClaimsIdentity id = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
                        var            authenticationManager = Request.GetOwinContext().Authentication;

                        AuthenticationProperties properties = new AuthenticationProperties {
                            IsPersistent = model.RememberMe
                        };
                        authenticationManager.SignIn(properties, id);

                        //redirect to register success, login success
                        TempData["Success"] = "You have successfully signed in!";
                        return(RedirectToAction("Index", "Account"));
                    }
                    else
                    {
                        TempData["Errors"] = "There was an error processing your request.";
                        return(View(model));
                    }
                }
                else
                {
                    if (loginResponse.StatusCode == System.Net.HttpStatusCode.NotFound)
                    {
                        TempData["Errors"] = "Your email and password do not match. Please try again.";
                    }
                    else if (loginResponse.StatusCode == System.Net.HttpStatusCode.NotAcceptable)
                    {
                        TempData["Resend"] = model.Email;
                    }
                    else
                    {
                        TempData["Errors"] = "There was an error processing your request. Please try again.";
                    }
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
        }