LoginManager.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System.Threading.Tasks;
  2. using Abp.Configuration;
  3. using Abp.Configuration.Startup;
  4. using Abp.Dependency;
  5. using Abp.Domain.Repositories;
  6. using Abp.Domain.Uow;
  7. using WeOnlineApp.Authorization.Roles;
  8. using WeOnlineApp.Authorization.Users;
  9. using WeOnlineApp.Configuration;
  10. using WeOnlineApp.MultiTenancy;
  11. using IwbZero.Authorization.Base;
  12. using IwbZero.Authorization.Base.Users;
  13. using IwbZero.Authorization.Users;
  14. using IwbZero.Zero.Configuration;
  15. namespace WeOnlineApp.Authorization
  16. {
  17. public class LogInManager : IwbLogInManager<Tenant, Role, User>
  18. {
  19. public LogInManager(
  20. UserManager userManager,
  21. IMultiTenancyConfig multiTenancyConfig,
  22. IRepository<Tenant> tenantRepository,
  23. IUnitOfWorkManager unitOfWorkManager,
  24. ISettingManager settingManager,
  25. IRepository<UserLoginAttempt, long> userLoginAttemptRepository,
  26. IUserManagementConfig userManagementConfig, IIocResolver iocResolver,
  27. RoleManager roleManager)
  28. : base(
  29. userManager,
  30. multiTenancyConfig,
  31. tenantRepository,
  32. unitOfWorkManager,
  33. settingManager,
  34. userLoginAttemptRepository,
  35. userManagementConfig,
  36. iocResolver,
  37. roleManager)
  38. {
  39. }
  40. protected override async Task<IwbLoginResult<Tenant, User>> CreateLoginResultAsync(User user, Tenant tenant = null)
  41. {
  42. if (!user.IsActive)
  43. {
  44. return new IwbLoginResult<Tenant, User>(IwbLoginResultType.UserIsNotActive);
  45. }
  46. if (await IsEmailConfirmationRequiredForLoginAsync(user.TenantId) && !user.IsEmailConfirmed)
  47. {
  48. return new IwbLoginResult<Tenant, User>(IwbLoginResultType.UserEmailIsNotConfirmed);
  49. }
  50. return new IwbLoginResult<Tenant, User>(
  51. tenant,
  52. user,
  53. await UserManager.CreateIdentityAsync(user, IwbAuthenticationTypes.ApplicationCookie)
  54. );
  55. }
  56. }
  57. }