var config = require('../config'), _ = require('lodash'), path = require('path'), when = require('when'), api = require('../api'), errors = require('../errors'), storage = require('../storage'), updateCheck = require('../update-check'), adminControllers; adminControllers = { // Route: index // Path: /ghost/ // Method: GET 'index': function (req, res) { /*jslint unparam:true*/ var userData, // config we need on the frontend frontConfig = { apps: config().apps, fileStorage: config().fileStorage }; function renderIndex() { res.render('default', { user: userData, config: JSON.stringify(frontConfig) }); } when.join( updateCheck(res), when(renderIndex()) // an error here should just get logged ).otherwise(errors.logError); }, // Route: upload // Path: /ghost/upload/ // Method: POST 'upload': function (req, res) { var type = req.files.uploadimage.type, ext = path.extname(req.files.uploadimage.name).toLowerCase(), store = storage.get_storage(); if ((type !== 'image/jpeg' && type !== 'image/png' && type !== 'image/gif' && type !== 'image/svg+xml') || (ext !== '.jpg' && ext !== '.jpeg' && ext !== '.png' && ext !== '.gif' && ext !== '.svg' && ext !== '.svgz')) { return res.send(415, 'Unsupported Media Type'); } store .save(req.files.uploadimage) .then(function (url) { return res.send(url); }) .otherwise(function (e) { errors.logError(e); return res.send(500, e.message); }); }, // Route: doSignup // Path: /ghost/setup/ // Method: POST 'doSignup': function (req, res) { var name = req.body.name, email = req.body.email, password = req.body.password, blogTitle = req.body.blogTitle, users = [{ name: name, email: email, password: password }]; api.users.register({users: users}).then(function () { var settings = []; settings.push({key: 'email', value: email}); // Handles the additional values set by the setup screen. if (!_.isEmpty(blogTitle)) { settings.push({key: 'title', value: blogTitle}); settings.push({key: 'description', value: 'Thoughts, stories and ideas by ' + name}); } api.settings.edit({settings: settings}, {context: {user: 1}}).then(function () { var message = { to: email, subject: 'Your New Ghost Blog', html: '
Hello!
' + 'Good news! You\'ve successfully created a brand new Ghost blog over on ' + config().url + '
' + 'You can log in to your admin account with the following details:
' + ' Email Address: ' + email + '
' +
'Password: The password you chose when you signed up
Keep this email somewhere safe for future reference, and have fun!
' + 'xoxo
' + 'Team Ghost
' +
'https://ghost.org