Exemplo n.º 1
0
        public async Task <IViewComponentResult> InvokeAsync(int id)
        {
            var vm = new UserMenuHeaderVM();

            if (userSessionHelper.UserId > 0)
            {
                var u = await userAccountManager.GetUser(userSessionHelper.UserId);

                vm.UserDisplayName = u.Name;

                var teams = await userAccountManager.GetTeams(userSessionHelper.UserId);

                vm.Teams = teams.Select(x => new TeamDto {
                    Id = x.Id, Name = x.Name
                }).ToList();
                if (u.DefaultTeamId != null)
                {
                    if (teams.Any(g => g.Id == u.DefaultTeamId))
                    {
                        vm.CurrentTeamName = teams.FirstOrDefault(g => g.Id == u.DefaultTeamId.Value).Name;
                    }
                    else
                    {
                        vm.CurrentTeamName = teams.FirstOrDefault().Name;
                    }
                }
                else
                {
                    vm.CurrentTeamName = teams.FirstOrDefault().Name;
                }
            }
            return(View(vm));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Login(LoginVM model)
        {
            tc.TrackEvent("Login attempt");
            try
            {
                if (ModelState.IsValid)
                {
                    var user = await _userAccountManager.GetUser(model.Email);

                    if (user != null)
                    {
                        var passwordHash = _userAccountManager.GetHash(model.Password, user.Salt);

                        if (user.Password == passwordHash)
                        {
                            await _userAccountManager.UpdateLastLoginTime(user.Id);

                            if (user.DefaultTeamId == null)
                            {
                                tc.TrackEvent("User with no default team!" + user.Id);
                                // This sould not happen! But if in case
                                var teams = await _userAccountManager.GetTeams(user.Id);

                                if (teams.Any())
                                {
                                    user.DefaultTeamId = teams.First().Id;
                                    await this._userAccountManager.SetDefaultTeam(user.Id, user.DefaultTeamId.Value);
                                }
                            }

                            this._userSessionHelper.SetUserIDToSession(user.Id, user.DefaultTeamId.Value, model.Email);
                            return(RedirectToAction(nameof(DashboardController.Index), "dashboard"));
                        }
                    }
                }
                ModelState.AddModelError("", "Username/Password is incorrect!");
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Oops! Something went wrong :(");
                tc.TrackException(ex);
            }
            return(View(model));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Login(LoginVM model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var user = await userAccountManager.GetUser(model.Email);

                    if (user != null)
                    {
                        var appUser = new AppUser {
                            UserName = user.EmailAddress, Id = user.Id.ToString()
                        };
                        if (user.Password == model.Password)
                        {
                            await userAccountManager.UpdateLastLoginTime(user.Id);

                            if (user.DefaultTeamId == null)
                            {
                                // This sould not happen! But if in case
                                var teams = await userAccountManager.GetTeams(user.Id);

                                if (teams.Any())
                                {
                                    user.DefaultTeamId = teams.First().Id;
                                    await this.userAccountManager.SetDefaultTeam(user.Id, user.DefaultTeamId.Value);
                                }
                            }

                            this.userSessionHelper.SetUserIDToSession(user.Id, user.DefaultTeamId.Value);
                            return(RedirectToAction("index", "dashboard"));
                        }
                    }
                }
                ModelState.AddModelError("", "Username/Password is incorrect!");
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", "Oops! Something went wrong :(");
            }
            return(View(model));
        }