using System.Threading.Tasks; using Abp.Configuration; using Abp.Configuration.Startup; using Abp.Dependency; using Abp.Domain.Repositories; using Abp.Domain.Uow; using WeOnlineApp.Authorization.Roles; using WeOnlineApp.Authorization.Users; using WeOnlineApp.Configuration; using WeOnlineApp.MultiTenancy; using IwbZero.Authorization.Base; using IwbZero.Authorization.Base.Users; using IwbZero.Authorization.Users; using IwbZero.Zero.Configuration; namespace WeOnlineApp.Authorization { public class LogInManager : IwbLogInManager { public LogInManager( UserManager userManager, IMultiTenancyConfig multiTenancyConfig, IRepository tenantRepository, IUnitOfWorkManager unitOfWorkManager, ISettingManager settingManager, IRepository userLoginAttemptRepository, IUserManagementConfig userManagementConfig, IIocResolver iocResolver, RoleManager roleManager) : base( userManager, multiTenancyConfig, tenantRepository, unitOfWorkManager, settingManager, userLoginAttemptRepository, userManagementConfig, iocResolver, roleManager) { } protected override async Task> CreateLoginResultAsync(User user, Tenant tenant = null) { if (!user.IsActive) { return new IwbLoginResult(IwbLoginResultType.UserIsNotActive); } if (await IsEmailConfirmationRequiredForLoginAsync(user.TenantId) && !user.IsEmailConfirmed) { return new IwbLoginResult(IwbLoginResultType.UserEmailIsNotConfirmed); } return new IwbLoginResult( tenant, user, await UserManager.CreateIdentityAsync(user, IwbAuthenticationTypes.ApplicationCookie) ); } } }