예제 #1
0
        public ActionResult Register([Bind(Include = "Id,Email,Password,Name,Phone,IsAdmin")] ViewModels.UserViewModel model)
        {
            EmailSender emailSender    = new EmailSender();
            string      validationCode = HashUtils.CreateReferralCode();

            if (db.Users.Where(u => u.Email == model.Email).Count() > 0)
            {
                ModelState.AddModelError("", "A user with these credentials already exists.");
                return(View());
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            User user = new User();

            user.Email            = model.Email;
            user.Password         = model.Password;
            user.Name             = model.Name;
            user.Phone            = model.Phone;
            user.IsAdmin          = model.IsAdmin;
            user.IsEmailConfirmed = false;
            user.ValidationCode   = validationCode;

            if (!service.Insert(user))
            {
                return(View(model));
            }
            emailSender.SendConfirmationEmail(user);
            //Authentication.AuthenticationManager.Authenticate(user.Email, user.Password);
            return(RedirectToAction("ConfirmEmail", "Account"));
        }
예제 #2
0
        public ActionResult Create(UsersCreateViewModel model)
        {
            string           validationCode = HashUtils.CreateReferralCode();
            var              repository     = new UserRepository();
            SendConfirmEmail emailSender    = new SendConfirmEmail();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            User user = new User();

            user.ImgURL           = model.ImgURL;
            user.Email            = model.Email;
            user.Username         = model.Username;
            user.Password         = model.Password;
            user.FirstName        = model.FirstName;
            user.LastName         = model.LastName;
            user.IsAdmin          = model.IsAdmin;
            user.IsEmailConfirmed = false;
            user.ValidationCode   = validationCode;

            repository.Insert(user);

            sendConfirmEmail.SendConfirmationEmailAsync(user);

            return(RedirectToAction("Index"));
        }
예제 #3
0
        public async Task <ActionResult> Register(CRUDStudentViewModel model)
        {
            string         validationCode = HashUtils.CreateReferralCode();
            var            repository     = new StudentRepository();
            List <Student> students       = repository.GetAll();

            SendConfirmEmail emailSender = new SendConfirmEmail();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (students.Where(u => u.Email == model.Email).Any())
            {
                ModelState.AddModelError("error_email", "This email is already taken!");
                return(View());
                //return View("Error");
            }
            else if (students.Where(u => u.Username == model.Username).Any())
            {
                ModelState.AddModelError("error_msg", "This username is already taken!");
                return(View());
                // return View("Error");
            }
            else
            {
                Student student = new Student();
                student.ImgURL           = model.ImgURL;
                student.Username         = model.Username;
                student.Password         = model.Password;
                student.Email            = model.Email;
                student.FirstName        = model.FirstName;
                student.LastName         = model.LastName;
                student.IsAdmin          = model.IsAdmin;
                student.IsEmailConfirmed = false;
                student.ValidationCode   = validationCode;
                student.FacultyNumber    = model.FacultyNumber;
                student.Specialty        = model.Specialty;
                student.GroupId          = model.GroupId;
                student.IsTeacher        = model.IsTeacher;
                student.IsStudent        = model.IsStudent;

                repository.Insert(student);

                sendConfirmEmail.SendConfirmationEmailAsync(student);
            }

            return(RedirectToAction("Index", "Home"));
        }
예제 #4
0
        public async Task <ActionResult> Register(UserCreateViewModel model)
        {
            string      validationCode = HashUtils.CreateReferralCode();
            var         repository     = new UserRepository();
            List <User> users          = repository.GetAll();

            SendConfirmEmail emailSender = new SendConfirmEmail();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (users.Where(u => u.Email == model.Email).Any())
            {
                ModelState.AddModelError("error_email", "This email is already taken!");
                return(View());
                //return View("Error");
            }
            else if (users.Where(u => u.Username == model.Username).Any())
            {
                ModelState.AddModelError("error_msg", "This username is already taken!");
                return(View());
                // return View("Error");
            }
            else
            {
                User user = new User();
                user.ImgURL           = model.ImgURL;
                user.Username         = model.Username;
                user.Password         = model.Password;
                user.Email            = model.Email;
                user.FirstName        = model.FirstName;
                user.LastName         = model.LastName;
                user.IsAdmin          = model.IsAdmin;
                user.IsEmailConfirmed = false;
                user.ValidationCode   = validationCode;
                user.IsStudent        = model.IsStudent;
                user.IsTeacher        = model.IsTeacher;

                repository.Insert(user);

                sendConfirmEmail.SendConfirmationEmailAsync(user);
            }

            return(RedirectToAction("Index", "Home"));
        }
        public async Task <IActionResult> Register(RegisterEntry entry)
        {
            //if (!entry.Email.Contains("@gmail.com") || !entry.Email.Contains("@outlook.com"))
            //{
            //    ViewData["WrongRegister"] = "Only gmail.com accounts are allowed!";
            //    return View(entry);
            //}

            try
            {
                //User user = await _userManager.GetUserByEmailAsync(entry.Email);
                //if (user != null)
                //{
                //    ViewData["WrongRegister"] = "Email already taken!";
                //    return View(entry);
                //}
                if (null == await _userManager.GetUserByUsernameAsync(entry.DiscordUsername))
                {
                    ViewData["WrongRegister"] = "You haven't signed up with this Discord user yet. Please type !signup in the Discord Server, where you're using the bot.";
                    return(View(entry));
                }
                var tempEmail = (await _userManager.GetUserByUsernameAsync(entry.DiscordUsername)).Email;
                if (!tempEmail[tempEmail.Length - 1].Equals('@'))
                {
                    ViewData["WrongRegister"] = "You've already signed up with this Discord user.";
                    //return View(entry);
                }

                string password       = HashUtils.CreateHashCode(entry.Password);
                string validationCode = HashUtils.CreateReferralCode();
                User   newUser        = new User(entry.DiscordUsername, entry.Email, password, Role.User, validationCode, false);

                _ctx.Users.Remove(_ctx.Users.FirstOrDefault(u => u.Username == entry.DiscordUsername));
                _ctx.SaveChanges();

                await _userManager.RegisterAsync(newUser);

                await _notificationManager.SendConfirmationEmailAsync(newUser);
            }
            catch (Exception)
            {
                //await _logger.LogCustomExceptionAsync(ex, null);
                return(RedirectToAction("Error", "Home"));
            }

            return(View("Welcome"));
        }
        public ActionResult Create(CRUDTeacherViewModel model)
        {
            string           validationCode = HashUtils.CreateReferralCode();
            var              repository     = new TeacherRepository();
            SendConfirmEmail emailSender    = new SendConfirmEmail();

            List <Teacher> teachers = repository.GetAll();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            if (teachers.Where(u => u.Email == model.Email).Any())
            {
                ModelState.AddModelError("error_email", "This email is already taken!");
                return(View());
                //return View("Error");
            }
            else if (teachers.Where(u => u.Username == model.Username).Any())
            {
                ModelState.AddModelError("error_msg", "This username is already taken!");
                return(View());
                // return View("Error");
            }
            else
            {
                Teacher teacher = new Teacher();
                // user.Id = model.Id;
                teacher.ImgURL           = model.ImgURL;
                teacher.Username         = model.Username;
                teacher.Password         = model.Password;
                teacher.Email            = model.Email;
                teacher.FirstName        = model.FirstName;
                teacher.LastName         = model.LastName;
                teacher.IsAdmin          = model.IsAdmin;
                teacher.IsEmailConfirmed = false;
                teacher.ValidationCode   = validationCode;
                teacher.Subject          = model.Subject;
                teacher.IsTeacher        = model.IsTeacher;

                repository.Insert(teacher);

                sendConfirmEmail.SendConfirmationEmailAsync(teacher);
            }
            return(RedirectToAction("Index"));
        }
예제 #7
0
        public async Task <IActionResult> Register(RegisterEntry entry)
        {
            try
            {
                var    password       = HashUtils.CreateHashCode(entry.Password);
                string validationCode = HashUtils.CreateReferralCode();

                User user = new User(entry.Email, password, validationCode);

                if (user.Email != null && user.Password != null)
                {
                    var existOrNot = await _userManager.CheckEmailForExistance(user.Email);

                    if (existOrNot == null)
                    {
                        await _userManager.RegisterAsync(user);

                        await _notificationManager.SendConfirmationEmailAsync(user);
                    }
                    else
                    {
                        return(RedirectToAction("About", "Home")); // Must implement other redirection for error
                    }
                }

                else
                {
                    return(RedirectToAction("About", "Home")); // Must implement other redirection for error
                }
            }
            catch (Exception ex)
            {
                await _logger.LogCustomExceptionAsync(ex, null);

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

            return(View("Welcome"));
            //return RedirectToAction("Index", "Home");
        }
 private static List <User> GetInitialUsers()
 {
     return(new List <User>()
     {
         new User(
             "dev",
             "", ///TODO: Initial User/Administrator Email (Seed)
             HashUtils.CreateHashCode("1"),
             Role.Administrator,
             HashUtils.CreateReferralCode(),
             true,
             new CustomId(new Guid("fe3006d3-9e69-477f-ab96-638bc230a439"))
             ),
         new User(
             "dev2",
             "", ///TODO: Initial User/Administrator Email (Seed)
             HashUtils.CreateHashCode("1"),
             Role.Administrator,
             HashUtils.CreateReferralCode(),
             true,
             new CustomId(new Guid("fe3006d3-9e69-477f-ab96-638bc230a439"))
             )
     });
 }
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                string username = db.Users.FirstOrDefault(u => u.Username == model.Username).Username;

                if (db.Users.FirstOrDefault(u => u.Username == model.Username).Email.Equals("@"))
                {
                    ViewData["WrongRegister"] = "Email already taken!";
                    return(View(model));
                }

                var newUser = new User(username, model.Email, HashUtils.CreateHashCode(model.Password), Role.User, HashUtils.CreateReferralCode(), false);

                db.Users.Remove(db.Users.FirstOrDefault(u => u.Username == model.Username)); // ?
                db.SaveChanges();

                await userManager.RegisterAsync(newUser);

                //await notificationManager.SendConfirmationEmailAsync(newUser);

                _logger.LogInformation("User created a new account with password.");
                return(RedirectToLocal(returnUrl));
            }

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