accounts-lockout-config.js 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. import { AccountsLockout } from 'meteor/wekan-accounts-lockout';
  2. import LockoutSettings from '/models/lockoutSettings';
  3. Meteor.startup(() => {
  4. // Wait for the database to be ready
  5. Meteor.setTimeout(() => {
  6. try {
  7. // Get configurations from database
  8. const knownUsersConfig = {
  9. failuresBeforeLockout: LockoutSettings.findOne('known-failuresBeforeLockout')?.value || 3,
  10. lockoutPeriod: LockoutSettings.findOne('known-lockoutPeriod')?.value || 60,
  11. failureWindow: LockoutSettings.findOne('known-failureWindow')?.value || 15
  12. };
  13. const unknownUsersConfig = {
  14. failuresBeforeLockout: LockoutSettings.findOne('unknown-failuresBeforeLockout')?.value || 3,
  15. lockoutPeriod: LockoutSettings.findOne('unknown-lockoutPeriod')?.value || 60,
  16. failureWindow: LockoutSettings.findOne('unknown-failureWindow')?.value || 15
  17. };
  18. // Initialize the AccountsLockout with configuration
  19. const accountsLockout = new AccountsLockout({
  20. knownUsers: knownUsersConfig,
  21. unknownUsers: unknownUsersConfig,
  22. });
  23. // Start the accounts lockout mechanism
  24. accountsLockout.startup();
  25. } catch (error) {
  26. console.error('Failed to initialize accounts lockout:', error);
  27. }
  28. }, 2000); // Small delay to ensure database is ready
  29. });