/// <summary>
        /// Display the user profile / preferences alteration page if a person is logged in
        /// </summary>
        public IActionResult Preferences()
        {
            string sessionId = _cookie.Get("ReportSession");

            if (!string.IsNullOrEmpty(sessionId))
            {
                GetReportUserByCookieResponse reportUserByCookie = _authenticationService.GetReportUserByWebCookie(sessionId);
                if (reportUserByCookie.Success == true)
                {
                    var viewModel = new AccountPreferencesViewModel(reportUserByCookie.User);
                    return(View(viewModel));
                }
            }
            return(RedirectToAction("Login", "Account"));
        }
Example #2
0
        public GetReportUserByCookieResponse GetReportUserByWebCookie(string cookie)
        {
            GetReportUserByCookieResponse result = new GetReportUserByCookieResponse();
            WebSession webSession = _wrapper.WebSessionRepository.GetOne <WebSession>(f => f.SessionCookie == cookie);

            if (webSession != null && webSession.Expiry > DateTime.UtcNow)
            {
                result.User    = _wrapper.ReportUserRepository.GetOne <ReportUser>(f => f.Id == webSession.ReportUserId);
                result.Success = true;
            }
            else
            {
                result.User    = null;
                result.Success = false;
            }
            return(result);
        }
Example #3
0
        public IActionResult Index()
        {
            string sessionId = _cookie.Get("ReportSession");

            GetReportUserByCookieResponse reportUserByCookie = _authenticationService.GetReportUserByWebCookie(sessionId);

            if (reportUserByCookie.Success == true && reportUserByCookie.User.OrganizationRoles.Contains("ToolAdmin"))
            {
                var viewModel = new ReportWebApp.Models.ViewModels.ToolAdminIndexViewModel(_authenticationService, sessionId);
                viewModel.IsToolAdmin = true;
                return(View(viewModel));
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }
        public IActionResult SaveReport(DateTime forDate, int timeSpent, bool online, string affectedPeople, string narrative)
        {
            string sessionId = _cookie.Get("ReportSession");

            if (!string.IsNullOrEmpty(sessionId))
            {
                GetReportUserByCookieResponse reportUserByCookie = _authenticationService.GetReportUserByWebCookie(sessionId);
                if (reportUserByCookie.Success == true)
                {
                    var viewModel = new AccountSaveReportViewModel();
                    viewModel.CurrentUsername = reportUserByCookie.User.Username;
                    _activityReportService.SaveActivity(reportUserByCookie.User.Id, forDate, timeSpent, online, affectedPeople, narrative);
                    viewModel.Message = "Saved your activity report.";
                    return(View(viewModel));
                }
            }
            return(RedirectToAction("Login", "Account"));
        }
        public IActionResult Index()
        {
            var    viewModel = new AccountIndexViewModel();
            string sessionId = _cookie.Get("ReportSession");

            if (!string.IsNullOrEmpty(sessionId))
            {
                GetReportUserByCookieResponse reportUserByCookie = _authenticationService.GetReportUserByWebCookie(sessionId);
                if (reportUserByCookie.Success == true)
                {
                    viewModel.CurrentUsername = reportUserByCookie.User.Username;
                    viewModel.AllThisMonth    = _activityReportService.CountActivity(reportUserByCookie.User.Id, DateTime.Now, false);
                    viewModel.IngameThisMonth = _activityReportService.CountActivity(reportUserByCookie.User.Id, DateTime.Now, true);
                }
                return(View(viewModel));
            }
            return(RedirectToAction("Login", "Account"));
        }
Example #6
0
        public IActionResult Index()
        {
            var viewModel = new ReportWebApp.Models.ViewModels.Home.HomeIndex(this.discordService);

            string sessionId = _cookie.Get("ReportSession");
            GetReportUserByCookieResponse reportUserByCookie = authService.GetReportUserByWebCookie(sessionId);

            if (reportUserByCookie.Success == true)
            {
                viewModel.NeedToSignIn = false;
            }
            else
            {
                viewModel.NeedToSignIn = true;
            }

            return(View(viewModel));
        }
Example #7
0
        public Signin(IDiscordService discordService, string code, IAuthenticationService authenticationService, string sessionId)
        {
            AccessTokenResponse           response        = discordService.GetAccessTokenWithCode(code);
            MeResponse                    discordUser     = discordService.GetMeResponse(response.access_token);
            GetReportUserByCookieResponse tryRetrieveUser = authenticationService.GetReportUserByWebCookie(sessionId);

            if (tryRetrieveUser.Success == true)
            {
                Message = "You were logged in already, this site has tried to associate your discord ID and report tool account (" + tryRetrieveUser.User.Username + ").";
                authenticationService.AssociateUserWithDiscordId(tryRetrieveUser.User.Id, discordUser.id);
                this.NewSessionCookie = authenticationService.CreateWebSessionFromDiscordId(discordUser.id);
            }
            else
            {
                Message = "You were not logged in to a report tool account before utilizing discord as a signin service.";
                this.NewSessionCookie = authenticationService.CreateWebSessionFromDiscordId(discordUser.id);
                if (this.NewSessionCookie == string.Empty)
                {
                    Message = "This site does not permit auto-creation of users. Seek out a tool administrator's assistance with registration.";
                }
            }
        }