public virtual async Task InitAdminRole(IEnumerable <int> ids) { await MESTenantManager.InitAdminRole(ids); //var tenants = await Manager.GetListByIdsAsync(ids); //foreach(var tenant in tenants) //{ // using (CurrentUnitOfWork.SetTenantId(tenant.Id)) // { // //通过手机获取管理用户 // var adminUser = await MESTenantManager.GetTenantAdminUser(tenant); // //获取管理员权限 // var adminRole = await RoleManager.GetAll().Where(o => o.TenantId == tenant.Id && o.Name == StaticRoleNames.Tenants.Admin).FirstOrDefaultAsync(); // if (adminRole != null) // { // await RoleManager.GrantAllPermissionsAsync(adminRole); // //清空角色权限缓存 // var cacheKey = adminRole.Id + "@" + (adminRole.TenantId ?? 0); // await CacheManager.GetRolePermissionCache().RemoveAsync(cacheKey); // } // if (adminUser != null) // { // await UserManager.SetRoles(adminUser, new int[] { adminRole.Id }); // } // } //} }
public virtual async Task SetActive(int tenantId, bool isActive) { await MESTenantManager.SetActive(tenantId, isActive); //var tenant = await Repository.GetAsync(tenantId); //tenant.IsActive = isActive; ////如果账套还没有模块,则初始化模块 //if(!await ModuleInfoManager.GetAll().AnyAsync(o => o.TenantId == tenantId)) //{ // await InitModule(new int[] { tenant.Id }); //} //await CurrentUnitOfWork.SaveChangesAsync(); }
public virtual async Task InitModule(IEnumerable <int> ids) { await MESTenantManager.InitModule(ids); //foreach (var tenantId in ids) //{ // var modules = await ModuleInfoManager.GetAll().Where(o => o.TenantId == tenantId).ToListAsync(); // foreach (var module in modules) // { // await ModuleInfoManager.Repository.HardDelete(module); // } // await CurrentUnitOfWork.SaveChangesAsync(); // var context = Repository.GetDbContext() as MasterDbContext; // new TenantDefaultModuleBuilder(context, tenantId).Create(); //} }
/// <summary> /// 微信端注册提交 /// </summary> /// <param name="registerDto"></param> /// <returns></returns> public virtual async Task Register(RegisterDto registerDto) { var tenant = new Tenant(registerDto.CompanyName, registerDto.TenancyName); //var defaultEdition = await _editionManager.FindByNameAsync(EditionManager.DefaultEditionName); //if (defaultEdition != null) //{ // tenant.EditionId = defaultEdition.Id; //} await TenantManager.InsertAsync(tenant); await CurrentUnitOfWork.SaveChangesAsync(); // To get new tenant's id. tenant.SetPropertyValue("Mobile", registerDto.Mobile); tenant.SetPropertyValue("PersonName", registerDto.Name); //如果是被邀请进来的,则设置邀请人id if (registerDto.Inviter.HasValue) { Logger.Info("设置邀请信息"); tenant.SetPropertyValue("Inviter", registerDto.Inviter.Value); //邀请进来的默认激活 await MESTenantManager.SetActive(tenant.Id, true); var edition_processor = await EditionManager.GetAll().Where(o => o.Name == "JIAGONGDIANJICHUBAN").SingleOrDefaultAsync(); //加工点版本 var edition_customer = await EditionManager.GetAll().Where(o => o.Name == "KEHUJICHUBAN").SingleOrDefaultAsync(); //客户版本 //默认加工点版本 if (edition_processor != null) { tenant.EditionId = edition_processor.Id; } if (!string.IsNullOrEmpty(registerDto.InviterUnitName)) { var unit = await UnitManager.GetAll().Where(o => o.TenantId == registerDto.Inviter.Value && o.UnitName == registerDto.InviterUnitName) .FirstOrDefaultAsync(); if (unit != null) { //设置默认版本 if (unit.UnitNature == UnitNature.客户 && edition_customer != null) { tenant.EditionId = edition_customer.Id; } } //绑定新注册账号至邀请人的往来单位 await BindTenantToUnitName(tenant.Id, registerDto.Inviter.Value, registerDto.InviterUnitName); } } // We are working entities of new tenant, so changing tenant filter using (CurrentUnitOfWork.SetTenantId(tenant.Id)) { // Create static roles for new tenant await RoleManager.CreateStaticRoles(tenant.Id); await CurrentUnitOfWork.SaveChangesAsync(); // To get static role ids // Grant all permissions to admin role var adminRole = RoleManager.GetAll().Where(r => r.Name == StaticRoleNames.Tenants.Admin).Single(); await RoleManager.GrantAllPermissionsAsync(adminRole); // Create admin user for the tenant var adminUser = await CreateTenantAdminUser(tenant.Id, registerDto); //设置管理用户有接收外协提醒的权限 adminUser.SetStatus(MESStatusNames.ReceiveOuterTask); // Assign admin user to role! await UserManager.SetRoles(adminUser, new int[] { adminRole.Id }); await CurrentUnitOfWork.SaveChangesAsync(); } }