Open Closed

Error to inject IPermissionGrantManager in AppService of module #9235


User avatar
0
sghorakavi@cpat.com created
  • 1- I am planning to create admin user with end point. Admin user is getting created but when I inject IPermissionGrantManager , it cannot be detected. can access IPermissionDefinitionProvider but not IPermissionGrantManager. I need access to IPermissionGrantManager. Any suggestion ?

5 Answer(s)
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    There is no service named IPermissionGrantManager in the ABP framework.

    If you want to check a user's permissions, you can use IPermissionChecker

    Thanks.

  • User Avatar
    0
    sghorakavi@cpat.com created

    Here is the code: Created admin user and trying to grant all permissions to this user, how can I do that:

      async Task<BaseResponse> createAdminUser(Guid tenantId)
      {
          using (CurrentTenant.Change(tenantId))
          {
              // check if admin role exist
              var role = await _roleManager.FindByNameAsync("admin");
              if (role == null)
              {
                  role = new IdentityRole(Guid.NewGuid(), "admin", tenantId);
                  await _roleManager.CreateAsync(role);
    
                  // Grant all permissions admin
                  // var permissions = _permissionDefinitionManager.GetPermissionsAsync();
                  //foreach (var permission in permissions)
                  //{
                  //    // Only grant leaf permissions (optional)
                  //    if (!permission.Children.Any())
                  //    {
                  //        ;
                  //    }
                  //}
              }
    
              // Step 3: Create admin user in tenant context
              var adminUser = new IdentityUser(Guid.NewGuid(), "admin", "cpatserviceaccount@cpat.com", tenantId);
              var result = await _identityUserManager.CreateAsync(adminUser, "1q2w3E*");
              if (!result.Succeeded)
              {
                  return new BaseResponse { ErrorMessage = "LMSCommunicationAppService: Failed to create admin user: " + string.Join(", ", result.Errors.Select(e => e.Description)) };
              }
    
    
              await _identityUserManager.AddToRoleAsync(adminUser, "admin");
          }
          
    
  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    hi

    You can use IPermissionDataSeeder to grant permissions to admin role.

    var multiTenancySide = CurrentTenant.GetMultiTenancySide();
    var permissionNames = (await PermissionDefinitionManager.GetPermissionsAsync())
        .Where(p => p.MultiTenancySide.HasFlag(multiTenancySide))
        .Where(p => !p.Providers.Any() || p.Providers.Contains(RolePermissionValueProvider.ProviderName))
        .Select(p => p.Name)
        .ToArray();
    
    await PermissionDataSeeder.SeedAsync(
        RolePermissionValueProvider.ProviderName,
        "admin",
        permissionNames,
        tenantId
    );
    

    https://github.com/abpframework/abp/blob/rel-9.0/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeedContributor.cs#L28-L40

    https://github.com/abpframework/abp/blob/rel-9.0/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/IPermissionDataSeeder.cs#L7

  • User Avatar
    0
    sghorakavi@cpat.com created

    Hi maliming this code worked. Thank you

  • User Avatar
    0
    maliming created
    Support Team Fullstack Developer

    Great

Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 08, 2025, 09:55