installer.js 1.5 KB

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