Ejemplo n.º 1
0
        private void SetFormsAuth(Services.Person authenticatedPerson, bool rememberMe)
        {
            this.CurrentUser = new uiModel.Person
            {
                ID            = authenticatedPerson.ID,
                ImageUrl      = authenticatedPerson.ImageUrl,
                Website       = authenticatedPerson.Website,
                Email         = authenticatedPerson.Email,
                Bio           = authenticatedPerson.Bio,
                Twitter       = authenticatedPerson.Twitter,
                Blog          = authenticatedPerson.Blog,
                Title         = authenticatedPerson.Title,
                FirstName     = authenticatedPerson.FirstName,
                LastName      = authenticatedPerson.LastName,
                IsAdmin       = authenticatedPerson.IsAdmin,
                Location      = authenticatedPerson.Location,
                LoginProvider = authenticatedPerson.LoginProvider
            };

            HttpContext.Session.Add("auth", true);
            HttpContext.User = CurrentUser;

            SetPersonRoles(this.CurrentUser);

            CreateAuthTicket(rememberMe);

            // FormsAuthentication.SetAuthCookie(CurrentUser.Email, false);
            // ???
        }
Ejemplo n.º 2
0
        public int RegisterPerson(Person person)
        {
            var p = new CC.Data.Person();

            Mapper.CopyProperties(person, p);

            _dbContext.People.Add(p);
            _dbContext.SaveChanges();

            return(p.ID);
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> ExternalLoginCallback(string returnUrl)
        {
            ExternalLoginInfo loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

            if (loginInfo == null)
            {
                return(RedirectToAction("LogOn"));
            }

            Services.Person authenticatedPerson = null;
            Services.Person person = service.FindPersonByEmail(loginInfo.Email);
            if (person == null)
            {
                ViewBag.ReturnUrl     = returnUrl;
                ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                ViewBag.TShirtSizes   = repo.GetTShirtSizes();
                return(View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel
                {
                    Email = loginInfo.Email,
                    LoginProvider = loginInfo.Login.LoginProvider
                }));
            }
            else
            {
                if (person.LoginProvider != loginInfo.Login.LoginProvider)
                {
                    person.LoginProvider = loginInfo.Login.LoginProvider;
                    //service.ChangePassword(person.ID, person.PasswordHash, null);
                    service.UpdatePerson(person);
                }
                authenticatedPerson = service.Login(person);
            }

            if (authenticatedPerson != null)
            {
                //bool rememberMe = frm["rememberMe"] == "on";
                SetFormsAuth(authenticatedPerson, false);
                if (string.IsNullOrEmpty(authenticatedPerson.Location))
                {
                    return(RedirectToAction("UpdateProfile", "Account"));
                }
                else
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            else
            {
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }
            return(RedirectToAction("LogOn"));
        }
Ejemplo n.º 4
0
        public Person FindPersonByEmail(string email)
        {
            Person dcAttendee = default(Person);

            var bcAttendee = _dbContext.People.SingleOrDefault(p => p.Email == email);

            if (bcAttendee != null)
            {
                dcAttendee = new Person();
                Mapper.CopyProperties(bcAttendee, dcAttendee);
            }
            return dcAttendee;
        }
Ejemplo n.º 5
0
        public Person FindPersonByEmail(string email)
        {
            Person dcAttendee = default(Person);

            var bcAttendee = _dbContext.People.SingleOrDefault(p => p.Email == email);

            if (bcAttendee != null)
            {
                dcAttendee = new Person();
                Mapper.CopyProperties(bcAttendee, dcAttendee);
            }
            return(dcAttendee);
        }
Ejemplo n.º 6
0
        public Person Login(Person person)
        {
            Person dcAttendee = default(Person);

            var bcAttendee =
                _dbContext.People
                .SingleOrDefault(p =>
                                 p.Email == person.Email &&
                                 p.PasswordHash == person.PasswordHash);

            if (bcAttendee != null)
            {
                dcAttendee = new Person();
                Mapper.CopyProperties(bcAttendee, dcAttendee);
            }

            return(dcAttendee);
        }
Ejemplo n.º 7
0
        public void UpdatePerson(Person person)
        {
            var p = _dbContext.People.Find(person.ID);

            p.FirstName     = person.FirstName;
            p.LastName      = person.LastName;
            p.Title         = person.Title;
            p.Bio           = person.Bio;
            p.Website       = person.Website;
            p.Blog          = person.Blog;
            p.Twitter       = person.Twitter;
            p.ImageUrl      = person.ImageUrl;
            p.Location      = person.Location;
            p.TShirtSize    = person.TShirtSize;
            p.LoginProvider = person.LoginProvider;

            _dbContext.SaveChanges();
        }
Ejemplo n.º 8
0
        public Person Login(Person person)
        {
            Person dcAttendee = default(Person);

            var bcAttendee =
                _dbContext.People
                    .SingleOrDefault(p =>
                        p.Email == person.Email &&
                        p.PasswordHash == person.PasswordHash);

            if (bcAttendee != null)
            {
                dcAttendee = new Person();
                Mapper.CopyProperties(bcAttendee, dcAttendee);
            }

            return dcAttendee;
        }
Ejemplo n.º 9
0
        public void AssignVolunteerTaskToPerson(Task task, Person person)
        {
            var e = _dbContext.Tasks.Find(task.Id);

            if (e == null)
            {
                throw new ArgumentException("Task not found");
            }

            //CC.Data.Task bcTask = e.Map();

            //task.Volunteers.Add()

            //List<Track> result = new List<Track>();
            //foreach (var track in e.Tracks)
            //    result.Add(track.Map());

            //result
        }
Ejemplo n.º 10
0
        public void AssignVolunteerTaskToPerson(Task task, Person person)
        {
            var e = _dbContext.Tasks.Find(task.Id);

                if (e == null)
                {
                    throw new ArgumentException("Task not found");
                }

                //CC.Data.Task bcTask = e.Map();

                //task.Volunteers.Add()

                //List<Track> result = new List<Track>();
                //foreach (var track in e.Tracks)
                //    result.Add(track.Map());

                //result
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Maps a CodeCampService.Person to a Model.Person
        /// </summary>
        /// <param name="person"></param>
        /// <returns></returns>
        public static Model.Person Map(Services.Person person)
        {
            var p = new Model.Person
            {
                ID            = person.ID,
                ImageUrl      = person.ImageUrl,
                Website       = person.Website,
                Email         = person.Email,
                Bio           = person.Bio,
                Twitter       = person.Twitter,
                Blog          = person.Blog,
                Title         = person.Title,
                FirstName     = person.FirstName,
                LastName      = person.LastName,
                IsAdmin       = person.IsAdmin,
                Location      = person.Location,
                TShirtSizeId  = person.TShirtSize,
                LoginProvider = person.LoginProvider,
            };

            return(p);
        }
Ejemplo n.º 12
0
        public ActionResult LogOn(LogOnModel model, string returnUrl, FormCollection frm)
        {
            if (ModelState.IsValid)
            {
                Services.Person authenticatedPerson = null;
                Services.Person person = service.FindPersonByEmail(model.Email, internalUserPwProvider);
                if (person == null)
                {
                    ModelState.AddModelError("", "");
                    return(View(model)); //RedirectToAction("LogOn", "Account");
                }
                else
                {
                    person.PasswordHash = HashProvider.ComputePasswordHash(model.Password);
                    authenticatedPerson = service.Login(person);
                }

                if (authenticatedPerson != null)
                {
                    bool rememberMe = frm["rememberMe"] == "on";
                    SetFormsAuth(authenticatedPerson, rememberMe);
                    if (string.IsNullOrEmpty(authenticatedPerson.Location))
                    {
                        return(RedirectToAction("UpdateProfile", "Account"));
                    }
                    else
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "The user name or password provided is incorrect.");
                }
            }
            return(View(model));
        }
Ejemplo n.º 13
0
        public int RegisterPerson(Person person)
        {
            var p = new CC.Data.Person();
            Mapper.CopyProperties(person, p);

            _dbContext.People.Add(p);
            _dbContext.SaveChanges();

            return p.ID;
        }
Ejemplo n.º 14
0
 public void UpdatePerson(Person person)
 {
     _personRepository.UpdatePerson(person);
 }
Ejemplo n.º 15
0
 public void AssignVolunteerTaskToPerson(Task task, Person person)
 {
     _taskRepository.AssignVolunteerTaskToPerson(task, person);
 }
Ejemplo n.º 16
0
        public void UpdatePerson(Person person)
        {
            var p = _dbContext.People.Find(person.ID);

            p.FirstName = person.FirstName;
            p.LastName = person.LastName;
            p.Title = person.Title;
            p.Bio = person.Bio;
            p.Website = person.Website;
            p.Blog = person.Blog;
            p.Twitter = person.Twitter;
            p.ImageUrl = person.ImageUrl;
            p.Location = person.Location;
            p.TShirtSize = person.TShirtSize;
            p.LoginProvider = person.LoginProvider;

            _dbContext.SaveChanges();
        }
Ejemplo n.º 17
0
 public Person Login(Person person)
 {
     return _personRepository.Login(person);
 }
Ejemplo n.º 18
0
        public async Task <ActionResult> ExternalLoginConfirmation(int eventId, ExternalLoginConfirmationViewModel model, string returnUrl, FormCollection frm)
        //public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (ModelState.IsValid)
            {
                // Get the information about the user from the external login provider
                //var info = await AuthenticationManager.GetExternalLoginInfoAsync();
                //if (info == null)
                //{
                //    return View("ExternalLoginFailure");
                //}


                ViewBag.TShirtSizes = repo.GetTShirtSizes();
                Services.Person newPerson = new Services.Person();

                if (IsDuplicateRegistration(model.Email))
                {
                    ModelState.AddModelError("Email", "The user at this email address is already registered.");
                    return(View(model));
                }
                else
                {
                    newPerson = new Services.Person()
                    {
                        Email = model.Email,
                        //PasswordHash = UserNamePasswordHashProvider.ComputePasswordHash(model.Password),
                        Twitter       = model.Twitter,
                        FirstName     = model.FirstName,
                        LastName      = model.LastName,
                        Location      = model.Location,
                        TShirtSize    = model.TShirtSizeId,
                        LoginProvider = model.LoginProvider
                    };
                }

                if (!String.IsNullOrEmpty(model.Twitter))
                {
                    if (!model.Twitter.StartsWith("@"))
                    {
                        const string twitterPrefix = "@";
                        model.Twitter = string.Format("{0}{1}", twitterPrefix, model.Twitter);
                    }
                }

                bool useTwitter = frm["cbTwitter"] == "on";
                //bool useTwitter = false;
                if (model.Avatar != null)
                {
                    newPerson.ImageUrl = GetImageInfo(model.Avatar, "/Content/avatar");
                }
                else if (useTwitter)
                {
                    newPerson.ImageUrl = GetImageInfo(model.Twitter, LocalImageUrl);
                }
                else
                {
                    newPerson.ImageUrl = LocalImageUrl;
                }

                // service.RegisterPerson(newPerson);

                newPerson.ID = service.RegisterPerson(newPerson); // service.FindPersonByEmail(newPerson.Email).ID;


                //service.GetDefaultEvent().ID
                service.Rsvp(eventId, newPerson.ID, "YES");
                //service.Rsvp(service.GetDefaultEvent().ID, newPerson.ID, "YES");

                this.CurrentUser = new uiModel.Person
                {
                    ID            = newPerson.ID,
                    ImageUrl      = newPerson.ImageUrl,
                    Website       = newPerson.Website,
                    Email         = newPerson.Email,
                    Bio           = newPerson.Bio,
                    Twitter       = newPerson.Twitter,
                    Blog          = newPerson.Blog,
                    Title         = newPerson.Title,
                    FirstName     = newPerson.FirstName,
                    LastName      = newPerson.LastName,
                    IsAdmin       = newPerson.IsAdmin,
                    Location      = newPerson.Location,
                    LoginProvider = newPerson.LoginProvider
                };

                HttpContext.User = this.CurrentUser;

                HttpContext.Session.Add("auth", true);
                //this.CurrentUser = newPerson.Map();
                //FormsAuthentication.SetAuthCookie(CurrentUser.Email, false); // ???

                CreateAuthTicket(false);

                return(RedirectToLocal(returnUrl));

                //var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                //var result = await UserManager.CreateAsync(user);
                //if (result.Succeeded)
                //{
                //    result = await UserManager.AddLoginAsync(user.Id, info.Login);
                //    if (result.Succeeded)
                //    {
                //        await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                //        return RedirectToLocal(returnUrl);
                //    }
                //}
                //AddErrors(result);
            }

            ViewBag.ReturnUrl = returnUrl;
            return(View(model));
        }
Ejemplo n.º 19
0
 public int RegisterPerson(Person person)
 {
     return _personRepository.RegisterPerson(person);
 }
Ejemplo n.º 20
0
        public ActionResult Register(int eventId, RegisterModel model, FormCollection frm)
        {

            if (ModelState.IsValid)
            {
                ViewBag.TShirtSizes = repo.GetTShirtSizes();
                
                if (IsDuplicateRegistration(model.Email))
                {
                    ModelState.AddModelError("Email", "The user at this email address is already registered.");
                    return View(model);
                }

                if (!String.IsNullOrEmpty(model.Twitter))
                {
                    if (!model.Twitter.StartsWith("@"))
                    {
                        const string twitterPrefix = "@";
                        model.Twitter = string.Format("{0}{1}", twitterPrefix, model.Twitter);
                    }
                }

                var newPerson = new Services.Person()
                {
                    Email = model.Email,
                    PasswordHash = UserNamePasswordHashProvider.ComputePasswordHash(model.Password),
                    Twitter = model.Twitter,
                    FirstName = model.FirstName,
                    LastName = model.LastName,
                    Location = model.Location,
                    TShirtSize = model.TShirtSizeId,
                    LoginProvider = internalUserPwProvider
                };

                bool useTwitter = frm["cbTwitter"] == "on";
                if (model.Avatar != null)
                {
                    newPerson.ImageUrl = GetImageInfo(model.Avatar, "/Content/avatar");
                }
                else if (useTwitter)
                {
                    newPerson.ImageUrl = GetImageInfo(model.Twitter, LocalImageUrl);
                }
                else
                {
                    newPerson.ImageUrl = LocalImageUrl;
                }

                // service.RegisterPerson(newPerson);

                newPerson.ID = service.RegisterPerson(newPerson); // service.FindPersonByEmail(newPerson.Email).ID;

                service.Rsvp(eventId, newPerson.ID, "YES");

                this.CurrentUser = new uiModel.Person
                {
                    ID = newPerson.ID,
                    ImageUrl = newPerson.ImageUrl,
                    Website = newPerson.Website,
                    Email = newPerson.Email,
                    Bio = newPerson.Bio,
                    Twitter = newPerson.Twitter,
                    Blog = newPerson.Blog,
                    Title = newPerson.Title,
                    FirstName = newPerson.FirstName,
                    LastName = newPerson.LastName,
                    IsAdmin = newPerson.IsAdmin,
                    Location = newPerson.Location
                };
                HttpContext.User = this.CurrentUser;

                HttpContext.Session.Add("auth", true);
                //this.CurrentUser = newPerson.Map();
                //FormsAuthentication.SetAuthCookie(CurrentUser.Email, false); // ???

                CreateAuthTicket(false);

                return RedirectToAction("Index", "Home");
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
Ejemplo n.º 21
0
        public static Person Map(this Data.Person p)
        {
            Person person = new Person
            {
                ID = p.ID,
                Email = p.Email,
                FirstName = p.FirstName,
                LastName = p.LastName,
                Title = p.Title,
                Bio = p.Bio,
                Website = p.Website,
                Blog = p.Blog,
                Twitter = p.Twitter,
                ImageUrl = p.ImageUrl
            };

            return person;
        }
Ejemplo n.º 22
0
        public async Task<ActionResult> ExternalLoginConfirmation(int eventId, ExternalLoginConfirmationViewModel model, string returnUrl, FormCollection frm)
        //public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        {
            if (User.Identity.IsAuthenticated)
            {
                return RedirectToAction("Index", "Home");
            }

            if (ModelState.IsValid)
            {
                // Get the information about the user from the external login provider
                //var info = await AuthenticationManager.GetExternalLoginInfoAsync();
                //if (info == null)
                //{
                //    return View("ExternalLoginFailure");
                //}


                ViewBag.TShirtSizes = repo.GetTShirtSizes();
                Services.Person newPerson = new Services.Person();

                if (IsDuplicateRegistration(model.Email))
                {
                    ModelState.AddModelError("Email", "The user at this email address is already registered.");
                    return View(model);
                }
                else
                {
                    newPerson = new Services.Person()
                    {
                        Email = model.Email,
                        //PasswordHash = UserNamePasswordHashProvider.ComputePasswordHash(model.Password),
                        Twitter = model.Twitter,
                        FirstName = model.FirstName,
                        LastName = model.LastName,
                        Location = model.Location,
                        TShirtSize = model.TShirtSizeId,
                        LoginProvider = model.LoginProvider
                    };
                }
                
                if (!String.IsNullOrEmpty(model.Twitter))
                {
                    if (!model.Twitter.StartsWith("@"))
                    {
                        const string twitterPrefix = "@";
                        model.Twitter = string.Format("{0}{1}", twitterPrefix, model.Twitter);
                    }
                }

                bool useTwitter = frm["cbTwitter"] == "on";
                //bool useTwitter = false;
                if (model.Avatar != null)
                {
                    newPerson.ImageUrl = GetImageInfo(model.Avatar, "/Content/avatar");
                }
                else if (useTwitter)
                {
                    newPerson.ImageUrl = GetImageInfo(model.Twitter, LocalImageUrl);
                }
                else
                {
                    newPerson.ImageUrl = LocalImageUrl;
                }

                // service.RegisterPerson(newPerson);

                newPerson.ID = service.RegisterPerson(newPerson); // service.FindPersonByEmail(newPerson.Email).ID;


                //service.GetDefaultEvent().ID
                service.Rsvp(eventId, newPerson.ID, "YES");
                //service.Rsvp(service.GetDefaultEvent().ID, newPerson.ID, "YES");

                this.CurrentUser = new uiModel.Person
                {
                    ID = newPerson.ID,
                    ImageUrl = newPerson.ImageUrl,
                    Website = newPerson.Website,
                    Email = newPerson.Email,
                    Bio = newPerson.Bio,
                    Twitter = newPerson.Twitter,
                    Blog = newPerson.Blog,
                    Title = newPerson.Title,
                    FirstName = newPerson.FirstName,
                    LastName = newPerson.LastName,
                    IsAdmin = newPerson.IsAdmin,
                    Location = newPerson.Location,
                    LoginProvider = newPerson.LoginProvider
                };

                HttpContext.User = this.CurrentUser;

                HttpContext.Session.Add("auth", true);
                //this.CurrentUser = newPerson.Map();
                //FormsAuthentication.SetAuthCookie(CurrentUser.Email, false); // ???

                CreateAuthTicket(false);

                return RedirectToLocal(returnUrl);

                //var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                //var result = await UserManager.CreateAsync(user);
                //if (result.Succeeded)
                //{
                //    result = await UserManager.AddLoginAsync(user.Id, info.Login);
                //    if (result.Succeeded)
                //    {
                //        await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                //        return RedirectToLocal(returnUrl);
                //    }
                //}
                //AddErrors(result);
            }

            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
Ejemplo n.º 23
0
        public ActionResult Register(int eventId, RegisterModel model, FormCollection frm)
        {
            if (ModelState.IsValid)
            {
                ViewBag.TShirtSizes = repo.GetTShirtSizes();

                if (IsDuplicateRegistration(model.Email))
                {
                    ModelState.AddModelError("Email", "The user at this email address is already registered.");
                    return(View(model));
                }

                if (!String.IsNullOrEmpty(model.Twitter))
                {
                    if (!model.Twitter.StartsWith("@"))
                    {
                        const string twitterPrefix = "@";
                        model.Twitter = string.Format("{0}{1}", twitterPrefix, model.Twitter);
                    }
                }

                var newPerson = new Services.Person()
                {
                    Email         = model.Email,
                    PasswordHash  = UserNamePasswordHashProvider.ComputePasswordHash(model.Password),
                    Twitter       = model.Twitter,
                    FirstName     = model.FirstName,
                    LastName      = model.LastName,
                    Location      = model.Location,
                    TShirtSize    = model.TShirtSizeId,
                    LoginProvider = internalUserPwProvider
                };

                bool useTwitter = frm["cbTwitter"] == "on";
                if (model.Avatar != null)
                {
                    newPerson.ImageUrl = GetImageInfo(model.Avatar, "/Content/avatar");
                }
                else if (useTwitter)
                {
                    newPerson.ImageUrl = GetImageInfo(model.Twitter, LocalImageUrl);
                }
                else
                {
                    newPerson.ImageUrl = LocalImageUrl;
                }

                // service.RegisterPerson(newPerson);

                newPerson.ID = service.RegisterPerson(newPerson); // service.FindPersonByEmail(newPerson.Email).ID;

                service.Rsvp(eventId, newPerson.ID, "YES");

                this.CurrentUser = new uiModel.Person
                {
                    ID        = newPerson.ID,
                    ImageUrl  = newPerson.ImageUrl,
                    Website   = newPerson.Website,
                    Email     = newPerson.Email,
                    Bio       = newPerson.Bio,
                    Twitter   = newPerson.Twitter,
                    Blog      = newPerson.Blog,
                    Title     = newPerson.Title,
                    FirstName = newPerson.FirstName,
                    LastName  = newPerson.LastName,
                    IsAdmin   = newPerson.IsAdmin,
                    Location  = newPerson.Location
                };
                HttpContext.User = this.CurrentUser;

                HttpContext.Session.Add("auth", true);
                //this.CurrentUser = newPerson.Map();
                //FormsAuthentication.SetAuthCookie(CurrentUser.Email, false); // ???

                CreateAuthTicket(false);

                return(RedirectToAction("Index", "Home"));
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }