TackleMcClean 🏅
03/21/2024, 3:11 PMprivate void CreateUserIfNotExist(string email, string password, string? name)
    {
      var user = _userService.GetByEmail(email);
      if (user != null)
      {
        return;
      }
      var newUser = _userService.CreateUserWithIdentity(name ?? email, email);
      var userGroup = _userService.GetUserGroupByAlias("editors") as IReadOnlyUserGroup;
      if (userGroup != null)
      {
        newUser.AddGroup(userGroup);
        newUser.RawPasswordValue = ???? // how to hash password?
        _userService.Save(newUser);
      }
    }RawPasswordValue<IUser>CreateUserWithIdentitySebastiaan
03/21/2024, 4:04 PM_userManager_globalSettingscsharp
            IdentityResult userCreated = await _userManager.CreateAsync(
                BackOfficeIdentityUser.CreateNew(
                    _globalSettings,
                    username: "username",
                    email: "email@provider.ext",
                    culture: "en-US",
                    name: "Person's Name"),
                password: "password"); // remember to meet password requirementscsharp
    private readonly IBackOfficeUserManager _userManager;
    private readonly GlobalSettings _globalSettings;TackleMcClean 🏅
03/21/2024, 4:15 PMSebastiaan
03/21/2024, 4:16 PMcsharp
            IdentityResult userCreated = _userManager.CreateAsync(
                BackOfficeIdentityUser.CreateNew(
                    _globalSettings,
                    username: "username",
                    email: "email@provider.ext",
                    culture: "en-US",
                    name: "Person's Name"),
                password: "password").Result;Sebastiaan
03/21/2024, 4:17 PMTackleMcClean 🏅
03/21/2024, 4:19 PMSebastiaan
03/21/2024, 4:19 PMTackleMcClean 🏅
03/21/2024, 4:20 PMTackleMcClean 🏅
03/21/2024, 4:20 PMTackleMcClean 🏅
03/21/2024, 4:26 PMCannot consume scoped service 'Umbraco.Cms.Core.Security.IBackOfficeUserManager' from singleton 'cms.PrepopulateUsersComponent'IBackOfficeUserManagerTackleMcClean 🏅
03/21/2024, 4:28 PM_serviceScopeFactorySebastiaan
03/21/2024, 4:29 PMGetRequiredServiceGetRequiredService<IBackOfficeUserManager>Sebastiaan
03/21/2024, 4:29 PMTackleMcClean 🏅
03/21/2024, 4:33 PM.ResultTackleMcClean 🏅
03/21/2024, 4:35 PMSebastiaan
03/21/2024, 4:35 PMSebastiaan
03/21/2024, 4:37 PMTackleMcClean 🏅
03/21/2024, 4:38 PMIBackOfficeUserManagerTackleMcClean 🏅
03/21/2024, 4:38 PMusing IServiceScope scope = _serviceScopeFactory.CreateScope();
_userManager = scope.ServiceProvider.GetRequiredService<IBackOfficeUserManager>();TackleMcClean 🏅
03/21/2024, 4:39 PMInitializeSebastiaan
03/21/2024, 4:40 PMIComposerTackleMcClean 🏅
03/21/2024, 4:40 PMIComponentTackleMcClean 🏅
03/21/2024, 4:42 PMTackleMcClean 🏅
03/21/2024, 4:43 PMInitializeSebastiaan
03/21/2024, 4:47 PMcsharp
using IScope scope = _scopeProvider.CreateScope();
// Existing code
scope.Complete();Sebastiaan
03/21/2024, 4:47 PMGetRequiredServiceSebastiaan
03/21/2024, 4:47 PMTackleMcClean 🏅
03/21/2024, 4:58 PMTackleMcClean 🏅
03/21/2024, 4:59 PMIServiceScopeIScope.Dispose()TackleMcClean 🏅
03/21/2024, 5:01 PMu.IsApproved = true;Sebastiaan
03/22/2024, 9:51 AMTackleMcClean 🏅
03/28/2024, 7:53 AMPrepopulateUsersRegisterStartupComponentsPrepopulateUsersComponentpublic void Initialize()
    {
      var userListRequest = _config.GetSection("PrepopulateUsers").GetChildren();
      using IServiceScope scope = _serviceScopeFactory.CreateScope();
      var userManager = scope.ServiceProvider.GetRequiredService<IBackOfficeUserManager>();
      foreach (var userRequest in userListRequest)
      {
        var name = userRequest["name"];
        var email = userRequest["email"];
        var password = userRequest["password"];
        if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password))
        {
          continue;
        }
        CreateUserIfNotExist(userManager, email, password, name);
      }
      scope.Dispose();
    }TackleMcClean 🏅
03/28/2024, 7:54 AMprivate void CreateUserIfNotExist(IBackOfficeUserManager userManager, string email, string password, string? name)
    {
      var userGroup = _userService.GetUserGroupByAlias("editor") as IReadOnlyUserGroup;
      if (userGroup != null)
      {
        var existingUser = _userService.GetByEmail(email);
        if (existingUser != null)
        {
          return;
        }
        var identity = BackOfficeIdentityUser.CreateNew(
            _globalSettings,
            username: email,
            email: email,
            culture: "sv-SE",
            name: name
        );
        var userCreated = userManager.CreateAsync(identity, password: password).Result;
        var user = _userService.GetByEmail(email);
        if (user != null)
        {
          // Add the user to the group
          user.AddGroup(userGroup);
          user.IsApproved = true;
          _userService.Save(user);
        }
      }
    }TackleMcClean 🏅
03/28/2024, 7:55 AMA hub and casual space for you to interact with fellow community members and learn more about Umbraco!
Powered by