Browse Source

IdentityDataSeedResult returns result of the operation

pull/765/head
Halil ibrahim Kalkan 8 years ago
parent
commit
1426a20ff7
  1. 2
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityDataSeeder.cs
  2. 9
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeedResult.cs
  3. 12
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs
  4. 19
      templates/mvc/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs

2
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityDataSeeder.cs

@ -5,7 +5,7 @@ namespace Volo.Abp.Identity
{ {
public interface IIdentityDataSeeder public interface IIdentityDataSeeder
{ {
Task SeedAsync( Task<IdentityDataSeedResult> SeedAsync(
string adminUserPassword, string adminUserPassword,
Guid? tenantId = null); Guid? tenantId = null);
} }

9
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeedResult.cs

@ -0,0 +1,9 @@
namespace Volo.Abp.Identity
{
public class IdentityDataSeedResult
{
public bool CreatedAdminUser { get; set; }
public bool CreatedAdminRole { get; set; }
}
}

12
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs

@ -35,10 +35,12 @@ namespace Volo.Abp.Identity
} }
[UnitOfWork] [UnitOfWork]
public virtual async Task SeedAsync( public virtual async Task<IdentityDataSeedResult> SeedAsync(
string adminUserPassword, string adminUserPassword,
Guid? tenantId = null) Guid? tenantId = null)
{ {
var result = new IdentityDataSeedResult();
const string adminUserName = "admin"; const string adminUserName = "admin";
const string adminRoleName = "admin"; const string adminRoleName = "admin";
@ -46,11 +48,12 @@ namespace Volo.Abp.Identity
var adminUser = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize(adminUserName)); var adminUser = await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize(adminUserName));
if (adminUser != null) if (adminUser != null)
{ {
return; return result;
} }
adminUser = new IdentityUser(_guidGenerator.Create(), adminUserName, "admin@abp.io", tenantId); adminUser = new IdentityUser(_guidGenerator.Create(), adminUserName, "admin@abp.io", tenantId);
CheckIdentityErrors(await _userManager.CreateAsync(adminUser, adminUserPassword)); CheckIdentityErrors(await _userManager.CreateAsync(adminUser, adminUserPassword));
result.CreatedAdminUser = true;
//"admin" role //"admin" role
var adminRole = await _roleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize(adminRoleName)); var adminRole = await _roleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize(adminRoleName));
@ -62,12 +65,13 @@ namespace Volo.Abp.Identity
adminRole.IsPublic = true; adminRole.IsPublic = true;
CheckIdentityErrors(await _roleManager.CreateAsync(adminRole)); CheckIdentityErrors(await _roleManager.CreateAsync(adminRole));
result.CreatedAdminRole = true;
} }
CheckIdentityErrors(await _userManager.AddToRoleAsync(adminUser, adminRoleName)); CheckIdentityErrors(await _userManager.AddToRoleAsync(adminUser, adminRoleName));
}
return result;
}
protected void CheckIdentityErrors(IdentityResult identityResult) //TODO: This is temporary and duplicate code! protected void CheckIdentityErrors(IdentityResult identityResult) //TODO: This is temporary and duplicate code!
{ {

19
templates/mvc/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs

@ -195,19 +195,22 @@ namespace MyCompanyName.MyProjectName
{ {
AsyncHelper.RunSync(async () => AsyncHelper.RunSync(async () =>
{ {
await scope.ServiceProvider var identitySeedResult = await scope.ServiceProvider
.GetRequiredService<IIdentityDataSeeder>() .GetRequiredService<IIdentityDataSeeder>()
.SeedAsync( .SeedAsync(
"1q2w3E*" "1q2w3E*"
); );
await scope.ServiceProvider if (identitySeedResult.CreatedAdminRole)
.GetRequiredService<IPermissionDataSeeder>() {
.SeedAsync( await scope.ServiceProvider
RolePermissionValueProvider.ProviderName, .GetRequiredService<IPermissionDataSeeder>()
"admin", .SeedAsync(
IdentityPermissions.GetAll().Union(MyProjectNamePermissions.GetAll()) RolePermissionValueProvider.ProviderName,
); "admin",
IdentityPermissions.GetAll().Union(MyProjectNamePermissions.GetAll())
);
}
}); });
} }
} }

Loading…
Cancel
Save