zoukankan      html  css  js  c++  java
  • DataSeeder

    首先是实现IDataSeedContributor接口,此类型会自动加到AbpDataOptions的Contributors的列表

        public interface IDataSeedContributor
        {
            Task SeedAsync(DataSeedContext context);
        }

    IDataSeeder利用Contributors,逐个取出实例化进行执行,其中DataSeedContext是TenantId和自定义的Dictionary<string, object> Properties

    扩展一个SeedAsync方法tenantId,如果在多租户的环境,注意要带上

     public static Task SeedAsync(this IDataSeeder seeder, Guid? tenantId = null)
            {
                return seeder.SeedAsync(new DataSeedContext(tenantId));
            }

    ABP应用框架增加了两个方法,分别是用户和角色,以及权限 

    Volo.Abp.PermissionManagement

    IPermissionDataSeeder

    public virtual Task SeedAsync(DataSeedContext context)
            {
                var multiTenancySide = CurrentTenant.GetMultiTenancySide();
                var permissionNames = PermissionDefinitionManager
                    .GetPermissions()
                    .Where(p => p.MultiTenancySide.HasFlag(multiTenancySide))
                    .Select(p => p.Name)
                    .ToArray();
    
                return PermissionDataSeeder.SeedAsync(
                    RolePermissionValueProvider.ProviderName,
                    "admin",
                    permissionNames,
                    context.TenantId
                );
            }

    2、IIdentityDataSeeder

    Volo.Abp.Identity 

     public Task SeedAsync(DataSeedContext context)
            {
                return _identityDataSeeder.SeedAsync(
                    context["AdminEmail"] as string ?? "admin@abp.io",
                    context["AdminPassword"] as string ?? "1q2w3E*",
                    context.TenantId
                );
            }
  • 相关阅读:
    web app变革之rem
    理解angularjs的作用域
    移动开发框架
    angularjs ng-repeat下验证问题
    10、长链接转短链接
    8、自定义菜单及菜单响应事件的处理
    9、多公众号集中管理
    7、消息管理-接收事件推送
    6、消息管理-普通消息接受处理
    5、用户和用户组管理-支持同步
  • 原文地址:https://www.cnblogs.com/cloudsu/p/11961047.html
Copyright © 2011-2022 走看看