예제 #1
0
        public async Task <ActionResult> Register([FromBody] RegisterViewModel model)
        {
            var email = $"{model.Email}@lgs.com";
            var user  = new ApplicationUser {
                UserName = email, Email = email, Nom = model.Nom, Prenom = model.Prenom
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                ApplicationRole role = _roleManager.FindByNameAsync("Conseiller").Result;
                await _userManager.AddToRoleAsync(user, role.Name);

                _logger.LogInformation("User created a new account with password.");

                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                code = System.Net.WebUtility.UrlEncode(code);
                var callbackUrl = $"{_configuration["FrontendBaseUrl"]}/account/confirmemail?userId={user.Id}&code={code}";
                await _emailSender.SendEmailConfirmationAsync(email, callbackUrl);

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

                _logger.LogInformation("User created a new account with password.");

                var utilisateurGraphRepository = new UtilisateurGraphRepository();
                var utilisateur = new Utilisateur()
                {
                    Prenom          = user.Prenom,
                    Nom             = user.Nom,
                    AdresseCourriel = user.Email
                };
                var savedUserModel = utilisateurGraphRepository.CreateIfNotExists(utilisateur);
                return(Json(savedUserModel));
            }
            else
            {
                ErrorViewModel error = new ErrorViewModel();
                error.RequestId = "Le rôle n'a pas pu être modifié";
                return(Json(error));
            }
        }
예제 #2
0
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            PasswordHasher <Models.Admin.ApplicationUser> hasher = new PasswordHasher <Models.Admin.ApplicationUser>();

            migrationBuilder.InsertData("AspNetUsers", new string[]
            {
                "Id",
                "AccessFailedCount",
                "ConcurrencyStamp",
                "Email",
                "EmailConfirmed",
                "LockoutEnabled",
                "LockoutEnd",
                "NormalizedEmail",
                "NormalizedUserName",
                "PasswordHash",
                "PhoneNumber",
                "PhoneNumberConfirmed",
                "SecurityStamp",
                "TwoFactorEnabled",
                "UserName"
            },
                                        new object[]
            {
                AdminUserId,               //Id
                0,                         //AccesFailes
                Guid.NewGuid().ToString(), //Concurrency
                "*****@*****.**",           //Email
                1,                         //ConfirmedEmail
                1,                         //Lockout enable
                null,                      //Lockout end:
                "*****@*****.**",
                "*****@*****.**",
                hasher.HashPassword(new Models.Admin.ApplicationUser(), "Bonjour01#"),
                "",
                "",
                Guid.NewGuid().ToString(),
                0,
                "*****@*****.**"
            },
                                        "dbo");

            migrationBuilder.InsertData("AspNetRoles", new string[]
            {
                "Id",
                "ConcurrencyStamp",
                "Name",
                "NormalizedName"
            },
                                        new object[]
            {
                AdminRoleId,
                Guid.NewGuid().ToString(),
                "Administrateur",
                "ADMINISTRATEUR"
            },
                                        "dbo");

            migrationBuilder.InsertData("AspNetUserRoles", new string[]
            {
                "UserId",
                "RoleId"
            },
                                        new object[]
            {
                AdminUserId,
                AdminRoleId
            },
                                        "dbo");

            migrationBuilder.InsertData("AspNetRoles", new string[]
            {
                "Id",
                "ConcurrencyStamp",
                "Name",
                "NormalizedName"
            },
                                        new object[]
            {
                Guid.NewGuid().ToString(),
                Guid.NewGuid().ToString(),
                "Conseiller",
                "CONSEILLER"
            },
                                        "dbo");

            migrationBuilder.InsertData("AspNetRoles", new string[]
            {
                "Id",
                "ConcurrencyStamp",
                "Name",
                "NormalizedName"
            },
                                        new object[]
            {
                Guid.NewGuid().ToString(),
                Guid.NewGuid().ToString(),
                "Approbateur",
                "APPROBATEUR"
            },
                                        "dbo");

            var utilisateurGraphRepository = new UtilisateurGraphRepository();
            var utilisateur = new Utilisateur()
            {
                Prenom          = "Admin",
                AdresseCourriel = "*****@*****.**"
            };

            utilisateurGraphRepository.CreateIfNotExists(utilisateur);
        }