installer.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. module.exports = function(app) {
  2. 'use strict';
  3. var debug = require('debug')('crowi:routes:installer')
  4. , models = app.set('models')
  5. , Config = models.Config
  6. , User = models.User
  7. , actions = {};
  8. actions.index = function(req, res) {
  9. return res.render('installer');
  10. };
  11. actions.createAdmin = function(req, res) {
  12. var registerForm = req.body.registerForm || {};
  13. if (req.form.isValid) {
  14. var name = registerForm.name;
  15. var username = registerForm.username;
  16. var email = registerForm.email;
  17. var password = registerForm.password;
  18. User.createUserByEmailAndPassword(name, username, email, password, function(err, userData) {
  19. if (err) {
  20. req.form.errors.push('管理ユーザーの作成に失敗しました。' + err.message);
  21. // TODO
  22. return res.render('installer');
  23. }
  24. userData.makeAdmin(function(err, userData) {
  25. Config.applicationInstall(function(err, configs) {
  26. if (err) {
  27. // TODO
  28. return ;
  29. }
  30. // login処理
  31. req.user = req.session.user = userData;
  32. req.flash('successMessage', 'Crowi のインストールが完了しました!はじめに、このページでこの Wiki の各種設定を確認してください。');
  33. return res.redirect('admin/app');
  34. });
  35. });
  36. });
  37. } else {
  38. return res.render('installer');
  39. }
  40. };
  41. return actions;
  42. };