auth.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. 'use strict'
  2. /* global wiki */
  3. const fs = require('fs')
  4. module.exports = function (passport) {
  5. // Serialization user methods
  6. passport.serializeUser(function (user, done) {
  7. done(null, user._id)
  8. })
  9. passport.deserializeUser(function (id, done) {
  10. wiki.db.User.findById(id).then((user) => {
  11. if (user) {
  12. done(null, user)
  13. } else {
  14. done(new Error(wiki.lang.t('auth:errors:usernotfound')), null)
  15. }
  16. return true
  17. }).catch((err) => {
  18. done(err, null)
  19. })
  20. })
  21. // Create users for first-time
  22. return wiki.db.User.findOne({ provider: 'local', email: 'guest@example.com' }).then((c) => {
  23. if (c < 1) {
  24. // Create guest account
  25. return wiki.db.User.create({
  26. provider: 'local',
  27. email: 'guest@example.com',
  28. name: 'Guest',
  29. password: '',
  30. role: 'guest'
  31. }).then(() => {
  32. wiki.logger.info('[AUTH] Guest account created successfully!')
  33. return true
  34. }).catch((err) => {
  35. wiki.logger.error('[AUTH] An error occured while creating guest account:')
  36. wiki.logger.error(err)
  37. return err
  38. })
  39. }
  40. })
  41. // .then(() => {
  42. // if (process.env.WIKI_JS_HEROKU) {
  43. // return wiki.db.User.findOne({ provider: 'local', email: process.env.WIKI_ADMIN_EMAIL }).then((c) => {
  44. // if (c < 1) {
  45. // // Create root admin account (HEROKU ONLY)
  46. // return wiki.db.User.create({
  47. // provider: 'local',
  48. // email: process.env.WIKI_ADMIN_EMAIL,
  49. // name: 'Administrator',
  50. // password: '$2a$04$MAHRw785Xe/Jd5kcKzr3D.VRZDeomFZu2lius4gGpZZ9cJw7B7Mna', // admin123 (default)
  51. // role: 'admin'
  52. // }).then(() => {
  53. // wiki.logger.info('[AUTH] Root admin account created successfully!')
  54. // return true
  55. // }).catch((err) => {
  56. // wiki.logger.error('[AUTH] An error occured while creating root admin account:')
  57. // wiki.logger.error(err)
  58. // return err
  59. // })
  60. // } else { return true }
  61. // })
  62. // } else { return true }
  63. // })
  64. }