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)
-
0
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.
-
0
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"); }
-
0
hi
You can use
IPermissionDataSeeder
to grant permissions toadmin
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
-
0
Hi maliming this code worked. Thank you
-
0
Great