seed-mongo.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. const { ObjectId } = require('mongodb')
  2. const { waitForDb, db } = require('../../../app/src/infrastructure/mongodb')
  3. waitForDb()
  4. .then(async () => {
  5. await seedUsers()
  6. process.exit(0)
  7. })
  8. .catch(err => {
  9. console.error(err)
  10. process.exit(1)
  11. })
  12. const DEFAULT_USER_PROPERTIES = {
  13. staffAccess: {
  14. publisherMetrics: false,
  15. publisherManagement: false,
  16. institutionMetrics: false,
  17. institutionManagement: false,
  18. groupMetrics: false,
  19. groupManagement: false,
  20. adminMetrics: false,
  21. splitTestMetrics: false,
  22. splitTestManagement: false,
  23. },
  24. ace: {
  25. mode: 'none',
  26. theme: 'textmate',
  27. overallTheme: '',
  28. fontSize: 12,
  29. autoComplete: true,
  30. autoPairDelimiters: true,
  31. spellCheckLanguage: 'en',
  32. pdfViewer: 'pdfjs',
  33. syntaxValidation: true,
  34. },
  35. features: {
  36. collaborators: -1,
  37. versioning: true,
  38. dropbox: true,
  39. github: true,
  40. gitBridge: true,
  41. compileTimeout: 180,
  42. compileGroup: 'standard',
  43. templates: true,
  44. references: true,
  45. trackChanges: true,
  46. },
  47. first_name: 'user',
  48. role: '',
  49. institution: '',
  50. isAdmin: false,
  51. lastLoginIp: '',
  52. loginCount: 0,
  53. holdingAccount: false,
  54. must_reconfirm: false,
  55. refered_users: [],
  56. refered_user_count: 0,
  57. alphaProgram: false,
  58. betaProgram: false,
  59. labsProgram: false,
  60. awareOfV2: false,
  61. samlIdentifiers: [],
  62. thirdPartyIdentifiers: [],
  63. signUpDate: new Date('2023-11-02T11:36:40.151Z'),
  64. featuresOverrides: [],
  65. referal_id: 'scTS4kjjJENbfbjG',
  66. __v: 0,
  67. hashedPassword:
  68. '$2a$12$nRvTj6U896uUnE.RFhnGKOyi/CvqBpfxezlqwyIPpezRa2xXLW7MO',
  69. }
  70. async function seedUsers() {
  71. const adminUser = {
  72. ...DEFAULT_USER_PROPERTIES,
  73. email: 'admin@example.com',
  74. first_name: 'admin',
  75. isAdmin: true,
  76. emails: [
  77. {
  78. email: 'admin@example.com',
  79. reversedHostname: '',
  80. _id: ObjectId('646ca54806d54400b74e77c6'),
  81. createdAt: new Date('2023-05-23T11:36:40.494Z'),
  82. },
  83. ],
  84. }
  85. const user = {
  86. ...DEFAULT_USER_PROPERTIES,
  87. _id: ObjectId('6543cf90bbe1368944db04d7'),
  88. emails: [
  89. {
  90. email: 'user@example.com',
  91. reversedHostname: '',
  92. _id: ObjectId('6543c614d58b090b461f3549'),
  93. createdAt: new Date('2023-11-21T11:36:40.494Z'),
  94. },
  95. ],
  96. email: 'user@example.com',
  97. }
  98. const collaborator = {
  99. ...DEFAULT_USER_PROPERTIES,
  100. _id: ObjectId('6544e78c9b6e937424976b64'),
  101. emails: [
  102. {
  103. email: 'collaborator@example.com',
  104. reversedHostname: '',
  105. _id: ObjectId('6543c614d58b090b461f354a'),
  106. createdAt: new Date('2023-11-21T11:36:40.494Z'),
  107. },
  108. ],
  109. email: 'collaborator@example.com',
  110. }
  111. await db.users.insertOne(adminUser)
  112. await db.users.insertOne(user)
  113. await db.users.insertOne(collaborator)
  114. }