Example #1
0
        public TracktorWebModel Update(ManageInfoViewModel userModel)
        {
            var             userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>();
            ApplicationUser user        = userManager.FindById(User.Identity.GetUserId());

            if (user != null)
            {
                user.TimeZone = userModel.TimeZone;
                userManager.Update(user);
            }

            return(GenerateWebModel());
        }
Example #2
0
        public async Task <IHttpActionResult> GetManageInfo(string returnUrl, bool generateState = false)
        {
            IdentityUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            if (user == null)
            {
                return(NotFound());
            }

            List <UserLoginInfoViewModel> logins = new List <UserLoginInfoViewModel>();

            foreach (IdentityUserLogin linkedAccount in user.Logins)
            {
                logins.Add(new UserLoginInfoViewModel
                {
                    LoginProvider = linkedAccount.LoginProvider,
                    ProviderKey   = linkedAccount.ProviderKey
                });
            }

            if (user.PasswordHash != null)
            {
                logins.Add(new UserLoginInfoViewModel
                {
                    LoginProvider = LocalLoginProvider,
                    ProviderKey   = user.UserName,
                });
            }

            ManageInfoViewModel manageInfo = new ManageInfoViewModel
            {
                LocalLoginProvider     = LocalLoginProvider,
                UserName               = user.UserName,
                Logins                 = logins,
                ExternalLoginProviders = GetExternalLogins(returnUrl, generateState)
            };

            return(Ok(manageInfo));
        }
Example #3
0
        private async void WebViewOnNavigated(object sender, WebNavigatedEventArgs e)
        {
            string accessToken = ExtractAccessTokenFromUrl(e.Url);

            if (accessToken != "")
            {
                AccountClient accountClient = new AccountClient(await ApiHelper.GetApiClient());

                ManageInfoViewModel manageInfoViewModel = await accountClient.GetManageInfoAsync("/", true);

                if (manageInfoViewModel != null && manageInfoViewModel.Logins.Count > 0)
                {
                    //ottengo l'id dell'utente di facebook.
                    string idFacebookUser = ((UserLoginInfoViewModel)manageInfoViewModel.Logins.First()).ProviderKey;

                    var requestUrl =
                        $"https://graph.facebook.com/v2.7/{idFacebookUser}/permissions/email?&access_token={accessToken}";

                    //Elimino i permessi di facebook
                    HttpClient          httpFacebookClient  = new HttpClient();
                    HttpResponseMessage httpResponseMessage = await httpFacebookClient.DeleteAsync(requestUrl);

                    //Rimuovo il token
                    Api.ApiHelper.RemoveSettings();

                    if (httpResponseMessage != null && httpResponseMessage.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        //eseguo il logout.
                        await accountClient.LogoutAsync();

                        //torno alla pagina di login.
                        Application.Current.MainPage = new NavigationPage(new Login.Login());
                    }
                }
            }
        }
        public async Task<IHttpActionResult> GetManageInfo(string returnUrl, bool generateState = false)
        {
            IdentityUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

            if (user == null)
            {
                return NotFound();
            }

            List<UserLoginInfoViewModel> logins = new List<UserLoginInfoViewModel>();

            foreach (IdentityUserLogin linkedAccount in user.Logins)
            {
                logins.Add(new UserLoginInfoViewModel
                {
                    LoginProvider = linkedAccount.LoginProvider,
                    ProviderKey = linkedAccount.ProviderKey
                });
            }

            if (user.PasswordHash != null)
            {
                logins.Add(new UserLoginInfoViewModel
                {
                    LoginProvider = LocalLoginProvider,
                    ProviderKey = user.UserName,
                });
            }

            ManageInfoViewModel manageInfo = new ManageInfoViewModel
            {
                LocalLoginProvider = LocalLoginProvider,
                UserName = user.UserName,
                Logins = logins,
                ExternalLoginProviders = GetExternalLogins(returnUrl, generateState)
            };

            return Ok(manageInfo);
        }
Example #5
0
 // PUT api/values/5
 public void Put(int id, [FromBody] ManageInfoViewModel user)
 {
     Users[id] = user;
 }
Example #6
0
 // POST api/values
 public void Post([FromBody] ManageInfoViewModel value)
 {
     Users.Add(value);
 }
Example #7
0
 public void Init()
 {
     instance = new ManageInfoViewModel();
 }