Exemple #1
0
        public async Task <ActionResult> RegisterAdmin(RegisterAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var admin = new Admin()
                    {
                        UserId = user.Id, Name = model.Name
                    };
                    _db.Admin.Add(admin);
                    _db.SaveChanges();
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

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

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public IActionResult Register(RegisterAdminViewModel registerViewModel)
        {
            if (ModelState.IsValid)
            {
                CustomIdentityUser user = new CustomIdentityUser
                {
                    UserName = registerViewModel.UserName,
                    Email    = registerViewModel.Email
                };

                IdentityResult result = _userManager.CreateAsync(user, registerViewModel.Password).Result;

                if (result.Succeeded)
                {
                    if (!_roleManager.RoleExistsAsync("Admin").Result)
                    {
                        CustomIdentityRole role = new CustomIdentityRole
                        {
                            Name = "Admin"
                        };

                        IdentityResult roleResult = _roleManager.CreateAsync(role).Result;

                        if (!roleResult.Succeeded)
                        {
                            ModelState.AddModelError("", "Böyle bir rol ekleyemedik");
                            return(View(registerViewModel));
                        }
                    }
                    _userManager.AddToRoleAsync(user, "Admin").Wait();
                    return(RedirectToAction("Login"));
                }
            }
            return(View(registerViewModel));
        }
        public async Task <ActionResult> RegisterAdmin(RegisterAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, name = model.name
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    UserManager.AddToRole(user.Id, "Admin");
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

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

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #4
0
        public async Task <IActionResult> Register(RegisterAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new IdentityUser
                {
                    UserName = model.Email, Email = model.Email
                };
                var result = await userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    //2n param is session cookie = lost after we close the browser window
                    //or permannet cookie = permanetly on user machine
                    await signInManager.SignInAsync(user, isPersistent : false);

                    return(RedirectToAction("index", "home"));
                }

                foreach (var error in result.Errors)
                {
                    //what is the model state object why we add here??
                    ModelState.AddModelError("", error.Description);
                }
            }
            return(View(model));
        }
        public IActionResult RegisterAdmin(RegisterAdminViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            return(View("RegisterSuccessful"));
        }
        public IActionResult RegisterAdmin(RegisterAdminViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            ViewData["AsWho"] = "Admin";
            return(View("RegisterSuccessful"));
        }
Exemple #7
0
        public async Task <ActionResult> Create(RegisterAdminViewModel model, FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here
                AlphaNumGen alp      = new AlphaNumGen();
                var         pwd      = alp.GetPassword();
                string      username = string.Concat(model.FirstName.Substring(0, 1), "_", model.LastName);
                var         user     = new ApplicationUser
                {
                    UserName     = username,
                    Email        = model.Email,
                    FirstName    = model.FirstName,
                    LastName     = model.LastName,
                    PhoneNumber  = model.Phone,
                    RegDate      = DateTime.UtcNow,
                    NotifyStatus = 1,
                    UserType     = "AD",
                    // EmailConfirmed = true
                };
                //this method add Newly registering Subcriber to AspNetUsers Tb which house is primary info and login permission
                var result = await UserManager.CreateAsync(user, pwd);

                if (result.Succeeded)
                {
                    var UserRole = UserManager.GetRoles(user.Id);
                    if (!UserRole.Contains("Admin"))
                    {
                        var addToRole = UserManager.AddToRole(user.Id, "Admin");
                    }
                    //   await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
                    //TODO: newly created admin get an email notification containing is registrations status
                    // eg. username and password
                    string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);

                    var callbackUrl = Url.Action("ConfirmEmail", "superadm",
                                                 new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    await UserManager.SendEmailAsync(user.Id, "Confirm your account", em.Notification_Email_Body_Creator(user.FullName, "This is to notify you that an account has been created " +
                                                                                                                         "for you on iHealth Nigeria GSFM Portal using this email address " + user.Email + " and the following information: <br/><br/> Username: "******"" +
                                                                                                                         "<br/> Password: "******" <br/><br/>Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>. <br/> Welcome on board. <br/><br/>" +
                                                                                                                         "Best Regards, <br/><br/> iHealth Nigeria Management"));

                    TempData["success"] = "Registration Succeeded";
                    return(RedirectToAction("create", "superadm"));
                }
                AddErrors(result);
            }
            catch
            {
                return(View());
            }

            return(View());
        }
        public async Task <ActionResult> Register(RegisterAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                int flength = model.NameExtension.IndexOf("_");

                string firstname = null;
                if (flength > 0)
                {
                    firstname = model.NameExtension.Substring(0, flength);
                }
                int    index    = model.NameExtension.IndexOf("_");
                string lastname = model.NameExtension.Substring(index + 1);
                var    user     = new ApplicationUser
                {
                    NameExtension        = model.NameExtension,
                    UserName             = model.Email,
                    Email                = model.Email,
                    PhoneNumber          = model.PhoneNumber,
                    FirstName            = firstname,
                    LastName             = lastname,
                    CountryId            = model.CountryId,
                    IsInterestedInLawyer = model.IsInterestedInLawyer,
                    DateRegistered       = DateTime.UtcNow,
                    Career               = "Admin",
                    EmailConfirmed       = true,
                    DisableRP            = false
                };

                var result = await UserManager.CreateAsync(user, model.Password);

                if (!result.Succeeded)
                {
                    // AddErrors(result);
                }


                await UserManager.SetTwoFactorEnabledAsync(user.Id, false);

                if (result.Succeeded)
                {
                    string iD = Guid.NewGuid().ToString();
                    return(RedirectToAction("UserRole", new { Controller = "Admin", action = "UserRole", page = user.Id, id = iD }));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form

            return(View(model));
        }
        public async Task <ActionResult> RegisterAdmin(RegisterAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var createResult = await CreateAdminUser(model);

                if (createResult.Success)
                {
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    AddErrors(createResult.Result);
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #10
0
        public async Task <IActionResult> RegisterAdminPanel(RegisterAdminViewModel registerDto)
        {
            IValidationContext validationContext = new ValidationContext <RegisterDto>(registerDto);

            if (!ModelState.IsValid || !_registerValidator.Validate(validationContext).IsValid)
            {
                return(View());
            }

            var registerResponse = await _accountClientService.RegisterResponse(registerDto);

            if (registerResponse.IsSuccessful)
            {
                ViewBag.Result = "Account created successfully!";
                return(View());
            }
            ModelState.AddModelError(nameof(RegisterAdminViewModel.Username), registerResponse.Content.Trim('"'));

            return(View());
        }
Exemple #11
0
        public async Task <ActionResult> Register(RegisterAdminViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new User {
                    UserName = model.Name, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    result = UserManager.AddToRole(user.Id, "Administrator");
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

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

            return(View(model));
        }
Exemple #12
0
        public ActionResult RegisterAdmin(RegisterAdminViewModel model)
        {
            if (model.BootstrapAdministratorSecret != ConfigReader.GetConfigValue("BootstrapAdministratorSecret"))
            {
                this.ModelState.AddModelError("BootstrapAdministratorSecret", "The provided Bootstrap Administrator Secret is invalid.");
            }

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

            if (this.userService.GetUsers().Count() > 0)
            {
                // If a user exists, then this action should not occur.
                return(RedirectToAction("Index", "Home"));
            }

            var identity = this.HttpContext.User.Identity as IClaimsIdentity;

            var nameIdentifierClaim   = identity.Claims.Where(c => c.ClaimType.Equals(ClaimTypes.NameIdentifier, StringComparison.OrdinalIgnoreCase)).SingleOrDefault();
            var identityProviderClaim = identity.Claims.Where(c => c.ClaimType.Equals(IdentityProviderClaimType, StringComparison.OrdinalIgnoreCase)).SingleOrDefault();

            var user = new User()
            {
                Name             = model.AdministratorEmail,
                Email            = model.AdministratorEmail,
                NameIdentifier   = nameIdentifierClaim.Value,
                IdentityProvider = identityProviderClaim.Value,
            };

            this.userService.CreateUser(user);
            var role = this.roleService.GetRoleByName("Administrator");

            this.roleService.AddUserToRole(role, user);

            this.ExecuteLogOff();

            return(RedirectToAction("RegistrationSuccess"));
        }
Exemple #13
0
        public async Task <IActionResult> RegisterAdmin([FromBody] RegisterAdminViewModel Credentials)
        {
            if (ModelState.IsValid)
            {
                var admin = new User
                {
                    UserName = Credentials.Email,
                    Email    = Credentials.Email,
                };
                var result = await _userManager.CreateAsync(admin, Credentials.Password);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(admin, "admin");

                    await _signInManager.SignInAsync(admin, isPersistent : false);

                    return(Ok("User successfully registered"));
                }
                return(Errors(result));
            }
            return(Error("Unexpected error"));
        }
        public async Task<ActionResult> AddAdmin(RegisterAdminViewModel model)
        {
            School school = schoolRepository.GetById(model.SchoolId);

            if (ModelState.IsValid)
            {
                if (!RoleManager.RoleExists(WebRoles.Admin))
                {
                    RoleManager.Create(new IdentityRole(WebRoles.Admin));
                }

                var user = new User() { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    // Add user in Admin role
                    UserManager.AddToRole(user.Id, WebRoles.Admin);

                    // Add user id to school
                    school.AdminId = user.Id;
                    schoolRepository.Update(school);
                    saveContext.Commit();

                    return RedirectToAction("Index/" + model.SchoolId, new { area = "Admin"});
                }
                AddErrors(result);
            }

            ViewBag.Breadcrumb = new List<Breadcrumb>()
            {
                new Breadcrumb(Breadcrumb.HomeName, Breadcrumb.AdminHomeUrl),
                new Breadcrumb(school.Name, Breadcrumb.AdminSchoolUrl + "/index/" + model.SchoolId),
                new Breadcrumb(Breadcrumb.ActionAdd)
            };

            return View(model);
        }
        private async Task <AdminUserResult> CreateAdminUser(RegisterAdminViewModel model)
        {
            bool success = false;
            var  user    = new ApplicationUser {
                UserName = model.Nick, Email = model.Email
            };
            var result = await UserManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                var usuario = await _db.Usuarios.FirstOrDefaultAsync(u => u.Nick == model.Nick);

                if (usuario == null)
                {
                    _db.Usuarios.Add(new Usuarios
                    {
                        Contraseña = model.Password,
                        DNI        = model.DNI,
                        Nick       = model.Nick,
                        Nombre     = model.Name,
                        Rol        = "A"
                    });
                    _db.Administradores.Add(new Administradores
                    {
                        Nombre    = model.Name,
                        Apellidos = model.Surname,
                        DNI_Admin = model.DNI,
                        Email     = model.Email,
                        Nick      = model.Nick,
                        Foto      = "koala.png"
                    });

                    try
                    {
                        await _db.SaveChangesAsync();
                    }
                    catch (System.Data.Entity.Validation.DbEntityValidationException e)
                    {
                        string msg = Helpers.Util.ValidationErrors(e);
                        throw;
                    }
                }

                var manager = new IdentityManager();
                await manager.CreateRoleAsync(KoalaRoles.UserAdmin);

                await manager.AddUserToRoleAsync(user.Id, KoalaRoles.UserAdmin);

                // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                // Send an email with this link
                // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                success = true;
            }
            return(new AdminUserResult
            {
                Success = success,
                Result = result
            });
        }
 public RegisterAdminPage(AccountType userAccountType, Action complete = null)
 {
     InitializeComponent();
     BindingContext = new RegisterAdminViewModel(userAccountType, complete);
 }