mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 03:26:04 +01:00
install script + patching up integration with install wizard
This commit is contained in:
103
app.js
103
app.js
@@ -1,18 +1,38 @@
|
|||||||
var categories = require('./src/categories.js'),
|
// Read config.js to grab redis info
|
||||||
|
var fs = require('fs'),
|
||||||
|
path = require('path'),
|
||||||
|
utils = require('./public/src/utils.js');
|
||||||
|
|
||||||
|
console.log('Info: Checking for valid base configuration file');
|
||||||
|
fs.readFile(path.join(__dirname, 'config.json'), function(err, data) {
|
||||||
|
if (!err) {
|
||||||
|
global.config = JSON.parse(data);
|
||||||
|
global.config.url = global.config.base_url + (global.config.use_port ? ':' + global.config.port : '') + '/';
|
||||||
|
global.config.upload_url = global.config.url + 'uploads/';
|
||||||
|
console.log('Info: Base Configuration OK.');
|
||||||
|
|
||||||
|
var meta = require('./src/meta.js');
|
||||||
|
meta.config.get(function(config) {
|
||||||
|
for(c in config) {
|
||||||
|
if (config.hasOwnProperty(c)) {
|
||||||
|
global.config[c] = config[c];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var categories = require('./src/categories.js'),
|
||||||
templates = require('./public/src/templates.js'),
|
templates = require('./public/src/templates.js'),
|
||||||
webserver = require('./src/webserver.js'),
|
webserver = require('./src/webserver.js'),
|
||||||
websockets = require('./src/websockets.js'),
|
websockets = require('./src/websockets.js'),
|
||||||
admin = {
|
admin = {
|
||||||
'categories': require('./src/admin/categories.js')
|
'categories': require('./src/admin/categories.js')
|
||||||
},
|
};
|
||||||
fs = require('fs');
|
|
||||||
|
|
||||||
DEVELOPMENT = true;
|
DEVELOPMENT = true;
|
||||||
|
|
||||||
global.configuration = {};
|
global.configuration = {};
|
||||||
global.templates = {};
|
global.templates = {};
|
||||||
|
|
||||||
(function(config) {
|
(function(config) {
|
||||||
config['ROOT_DIRECTORY'] = __dirname;
|
config['ROOT_DIRECTORY'] = __dirname;
|
||||||
|
|
||||||
templates.init([
|
templates.init([
|
||||||
@@ -27,10 +47,10 @@ global.templates = {};
|
|||||||
|
|
||||||
//setup scripts to be moved outside of the app in future.
|
//setup scripts to be moved outside of the app in future.
|
||||||
function setup_categories() {
|
function setup_categories() {
|
||||||
console.log('Checking categories...');
|
console.log('Info: Checking categories...');
|
||||||
categories.getAllCategories(function(data) {
|
categories.getAllCategories(function(data) {
|
||||||
if (data.categories.length === 0) {
|
if (data.categories.length === 0) {
|
||||||
console.log('Setting up default categories...');
|
console.log('Info: Setting up default categories...');
|
||||||
|
|
||||||
fs.readFile(config.ROOT_DIRECTORY + '/install/data/categories.json', function(err, default_categories) {
|
fs.readFile(config.ROOT_DIRECTORY + '/install/data/categories.json', function(err, default_categories) {
|
||||||
default_categories = JSON.parse(default_categories);
|
default_categories = JSON.parse(default_categories);
|
||||||
@@ -41,14 +61,71 @@ global.templates = {};
|
|||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
console.log('Good.');
|
console.log('Info: Good.');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
setup_categories();
|
setup_categories();
|
||||||
|
}(global.configuration));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// New install, ask setup questions
|
||||||
|
console.log('Info: Configuration not found, starting NodeBB setup');
|
||||||
|
var ask = function(question, callback) {
|
||||||
|
process.stdin.resume();
|
||||||
|
process.stdout.write(question + ': ');
|
||||||
|
|
||||||
|
process.stdin.once('data', function(data) {
|
||||||
|
callback(data.toString().trim());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
process.stdout.write(
|
||||||
|
"\nWelcome to NodeBB!\nThis looks like a new installation, so you'll have to answer a " +
|
||||||
|
"few questions about your environment before we can proceed with the setup.\n\n\nWhat is...\n\n"
|
||||||
|
);
|
||||||
|
|
||||||
}(global.configuration));
|
ask('... the publically accessible URL of this installation? (http://localhost)', function(base_url) {
|
||||||
|
ask('... the port number of your install? (4567)', function(port) {
|
||||||
|
ask('Will you be using a port number to access NodeBB? (y)', function(use_port) {
|
||||||
|
ask('... the host IP or address of your Redis instance? (127.0.0.1)', function(redis_host) {
|
||||||
|
ask('... the host port of your Redis instance? (6379)', function(redis_port) {
|
||||||
|
ask('... your NodeBB secret? (keyboard mash for a bit here)', function(secret) {
|
||||||
|
if (!base_url) base_url = 'http://localhost';
|
||||||
|
if (!port) port = 4567;
|
||||||
|
if (!use_port) use_port = true; else use_port = (use_port === 'y' ? true : false);
|
||||||
|
if (!redis_host) redis_host = '127.0.0.1';
|
||||||
|
if (!redis_port) redis_port = 6379;
|
||||||
|
if (!secret) secret = utils.generateUUID();
|
||||||
|
|
||||||
|
var fs = require('fs'),
|
||||||
|
path = require('path'),
|
||||||
|
config = {
|
||||||
|
secret: secret,
|
||||||
|
base_url: base_url,
|
||||||
|
port: port,
|
||||||
|
use_port: use_port,
|
||||||
|
redis: {
|
||||||
|
host: redis_host,
|
||||||
|
port: redis_port
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fs.writeFile(path.join(__dirname, 'config.json'), JSON.stringify(config, null, 4), function(err) {
|
||||||
|
if (err) throw err;
|
||||||
|
else {
|
||||||
|
process.stdout.write(
|
||||||
|
"\n\nConfiguration Saved OK\n\nPlease start NodeBB again and navigate to " +
|
||||||
|
base_url + (use_port ? ':' + port : '') + "/install to continue setup.\n\n"
|
||||||
|
);
|
||||||
|
process.exit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -10,9 +10,7 @@
|
|||||||
"admin/twitter[^]*": "admin/twitter",
|
"admin/twitter[^]*": "admin/twitter",
|
||||||
"admin/facebook[^]*": "admin/facebook",
|
"admin/facebook[^]*": "admin/facebook",
|
||||||
"admin/gplus[^]*": "admin/gplus",
|
"admin/gplus[^]*": "admin/gplus",
|
||||||
"install/?$": "install/redis",
|
"install/?$": "install/mail",
|
||||||
"install/basic/?": "install/basic",
|
|
||||||
"install/redis/?": "install/redis",
|
|
||||||
"install/mail/?": "install/mail",
|
"install/mail/?": "install/mail",
|
||||||
"install/social/?": "install/social",
|
"install/social/?": "install/social",
|
||||||
"install/privileges/?": "install/privileges",
|
"install/privileges/?": "install/privileges",
|
||||||
|
|||||||
@@ -5,17 +5,26 @@
|
|||||||
config: undefined,
|
config: undefined,
|
||||||
prepare: function() {
|
prepare: function() {
|
||||||
// Bounce if config is not ready
|
// Bounce if config is not ready
|
||||||
if (nodebb_setup.config === undefined) {
|
// if (nodebb_setup.config === undefined) {
|
||||||
ajaxify.go('install/redis');
|
// ajaxify.go('install/redis');
|
||||||
app.alert({
|
// app.alert({
|
||||||
alert_id: 'config-ready',
|
// alert_id: 'config-ready',
|
||||||
type: 'error',
|
// type: 'error',
|
||||||
timeout: 10000,
|
// timeout: 10000,
|
||||||
title: 'NodeBB Configuration Not Ready!',
|
// title: 'NodeBB Configuration Not Ready!',
|
||||||
message: 'NodeBB cannot proceed with setup at this time as Redis database information ' +
|
// message: 'NodeBB cannot proceed with setup at this time as Redis database information ' +
|
||||||
'was not found. Please enter the information below.'
|
// 'was not found. Please enter the information below.'
|
||||||
});
|
// });
|
||||||
|
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// Come back in 500ms if the config isn't ready yet
|
||||||
|
if (nodebb_setup.config === undefined) {
|
||||||
|
console.log('Config not ready...');
|
||||||
|
setTimeout(function() {
|
||||||
|
nodebb_setup.prepare();
|
||||||
|
}, 500);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,6 +115,11 @@
|
|||||||
}
|
}
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
|
socket.emit('api:config.get');
|
||||||
|
socket.on('api:config.get', function(data) {
|
||||||
|
nodebb_setup.config = data;
|
||||||
|
});
|
||||||
|
|
||||||
socket.on('api:config.set', function(data) {
|
socket.on('api:config.set', function(data) {
|
||||||
if (data.status === 'ok') {
|
if (data.status === 'ok') {
|
||||||
app.alert({
|
app.alert({
|
||||||
|
|||||||
@@ -33,12 +33,6 @@
|
|||||||
</button>
|
</button>
|
||||||
<div class="nav-collapse collapse">
|
<div class="nav-collapse collapse">
|
||||||
<ul class="nav nodebb-inline-block">
|
<ul class="nav nodebb-inline-block">
|
||||||
<li>
|
|
||||||
<a data-tab="redis" href="/install/redis"><i class="icon-hdd"></i> Redis</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a data-tab="basic" href="/install/basic"><i class="icon-cog"></i> Basic</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<a data-tab="email" href="/install/email"><i class="icon-envelope"></i> Mail</a>
|
<a data-tab="email" href="/install/email"><i class="icon-envelope"></i> Mail</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
<h1>Step 3 – Mailer Information</h1>
|
<h1>Mailer Information</h1>
|
||||||
|
|
||||||
<form class="form-inline">
|
<form class="form-inline">
|
||||||
<p>
|
<p>
|
||||||
@@ -25,9 +25,6 @@
|
|||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<button data-path="social" class="btn btn-primary btn-large">Next – <i class="icon-facebook"></i> Social</button>
|
<button data-path="social" class="btn btn-primary btn-large">Next – <i class="icon-facebook"></i> Social</button>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<button data-path="basic" class="btn btn-primary btn-large">Previous – <i class="icon-cog"></i> Basic</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
(function() {
|
(function() {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
<h1>Step 5 – User Privilege Thresholds</h1>
|
<h1>User Privilege Thresholds</h1>
|
||||||
|
|
||||||
<form class="form-inline">
|
<form class="form-inline">
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
<h1>Step 4 – Social Media Logins (Optional)</h1>
|
<h1>Social Media Logins</h1>
|
||||||
|
|
||||||
<form class="form-inline">
|
<form class="form-inline">
|
||||||
<p>
|
<p>
|
||||||
@@ -9,26 +9,26 @@
|
|||||||
|
|
||||||
<h3>Facebook</h3>
|
<h3>Facebook</h3>
|
||||||
<p>
|
<p>
|
||||||
<label>Application ID</label> <input type="text" class="input-medium" data-field="social/facebook/app_id" />
|
<label>Application ID</label> <input type="text" class="input-medium" data-field="social:facebook:app_id" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Application Secret</label> <input type="text" class="input-large" data-field="social/facebook/secret" />
|
<label>Application Secret</label> <input type="text" class="input-large" data-field="social:facebook:secret" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Twitter</h3>
|
<h3>Twitter</h3>
|
||||||
<p>
|
<p>
|
||||||
<label>Application Key</label> <input type="text" class="input-medium" data-field="social/twitter/key" />
|
<label>Application Key</label> <input type="text" class="input-medium" data-field="social:twitter:key" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Application Secret</label> <input type="text" class="input-large" data-field="social/twitter/secret" />
|
<label>Application Secret</label> <input type="text" class="input-large" data-field="social:twitter:secret" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Google</h3>
|
<h3>Google</h3>
|
||||||
<p>
|
<p>
|
||||||
<label>Application Key</label> <input type="text" class="input-xxlarge" data-field="social/google/key" />
|
<label>Application ID</label> <input type="text" class="input-xxlarge" data-field="social:google:id" />
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label>Application Secret</label> <input type="text" class="input-large" data-field="social/google/secret" />
|
<label>Application Secret</label> <input type="text" class="input-large" data-field="social:google:secret" />
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
var config = require('../config.js'),
|
var utils = require('./../public/src/utils.js'),
|
||||||
utils = require('./../public/src/utils.js'),
|
|
||||||
RDB = require('./redis.js'),
|
RDB = require('./redis.js'),
|
||||||
async = require('async');
|
async = require('async');
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
var config = require('../config.js'),
|
var RDB = require('./redis.js'),
|
||||||
RDB = require('./redis.js'),
|
|
||||||
async = require('async'),
|
async = require('async'),
|
||||||
utils = require('../public/src/utils.js');
|
utils = require('../public/src/utils.js');
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ var RDB = require('./redis.js'),
|
|||||||
posts = require('./posts.js'),
|
posts = require('./posts.js'),
|
||||||
threadTools = require('./threadTools.js'),
|
threadTools = require('./threadTools.js'),
|
||||||
user = require('./user.js'),
|
user = require('./user.js'),
|
||||||
config = require('../config.js'),
|
|
||||||
async = require('async'),
|
async = require('async'),
|
||||||
marked = require('marked');
|
marked = require('marked');
|
||||||
|
|
||||||
@@ -35,7 +34,7 @@ marked.setOptions({
|
|||||||
// DRY fail in threadTools.
|
// DRY fail in threadTools.
|
||||||
|
|
||||||
user.getUserField(uid, 'reputation', function(reputation) {
|
user.getUserField(uid, 'reputation', function(reputation) {
|
||||||
next(null, reputation >= config.privilege_thresholds.manage_content);
|
next(null, reputation >= global.config['privileges:manage_content']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ var RDB = require('./redis.js'),
|
|||||||
user = require('./user.js'),
|
user = require('./user.js'),
|
||||||
topics = require('./topics.js'),
|
topics = require('./topics.js'),
|
||||||
favourites = require('./favourites.js'),
|
favourites = require('./favourites.js'),
|
||||||
config = require('../config.js'),
|
|
||||||
threadTools = require('./threadTools.js'),
|
threadTools = require('./threadTools.js'),
|
||||||
async = require('async');
|
async = require('async');
|
||||||
|
|
||||||
|
|||||||
@@ -3,11 +3,9 @@
|
|||||||
ERROR_LOGS = true,
|
ERROR_LOGS = true,
|
||||||
|
|
||||||
redis = require('redis'),
|
redis = require('redis'),
|
||||||
config = require('../config.js'),
|
|
||||||
utils = require('./../public/src/utils.js');
|
utils = require('./../public/src/utils.js');
|
||||||
|
|
||||||
|
RedisDB.exports = redis.createClient(global.config.redis.port, global.config.redis.host);
|
||||||
RedisDB.exports = redis.createClient(config.redis.port, config.redis.host, config.redis.options);
|
|
||||||
|
|
||||||
RedisDB.exports.handle = function(error) {
|
RedisDB.exports.handle = function(error) {
|
||||||
if (error !== null) {
|
if (error !== null) {
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
(function(Auth) {
|
(function(Auth) {
|
||||||
|
|
||||||
var passport = require('passport'),
|
var passport = require('passport'),
|
||||||
passportLocal = require('passport-local').Strategy,
|
passportLocal = require('passport-local').Strategy,
|
||||||
passportTwitter = require('passport-twitter').Strategy,
|
passportTwitter = require('passport-twitter').Strategy,
|
||||||
@@ -7,11 +6,7 @@
|
|||||||
passportFacebook = require('passport-facebook').Strategy,
|
passportFacebook = require('passport-facebook').Strategy,
|
||||||
login_strategies = [],
|
login_strategies = [],
|
||||||
|
|
||||||
user_module = require('./../user.js'),
|
user_module = require('./../user.js');
|
||||||
config = require('./../../config.js');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
passport.use(new passportLocal(function(user, password, next) {
|
passport.use(new passportLocal(function(user, password, next) {
|
||||||
user_module.loginViaLocal(user, password, function(login) {
|
user_module.loginViaLocal(user, password, function(login) {
|
||||||
@@ -20,10 +15,10 @@
|
|||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (config.twitter && config.twitter.key && config.twitter.key.length > 0 && config.twitter.secret.length > 0) {
|
if (global.config['social:twitter:key'] && global.config['social:twitter:secret']) {
|
||||||
passport.use(new passportTwitter({
|
passport.use(new passportTwitter({
|
||||||
consumerKey: config.twitter.key,
|
consumerKey: global.config['social:twitter:key'],
|
||||||
consumerSecret: config.twitter.secret,
|
consumerSecret: global.config['social:twitter:secret'],
|
||||||
callbackURL: config.url + 'auth/twitter/callback'
|
callbackURL: config.url + 'auth/twitter/callback'
|
||||||
}, function(token, tokenSecret, profile, done) {
|
}, function(token, tokenSecret, profile, done) {
|
||||||
user_module.loginViaTwitter(profile.id, profile.username, function(err, user) {
|
user_module.loginViaTwitter(profile.id, profile.username, function(err, user) {
|
||||||
@@ -35,10 +30,10 @@
|
|||||||
login_strategies.push('twitter');
|
login_strategies.push('twitter');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.google && config.google.id.length > 0 && config.google.secret.length > 0) {
|
if (global.config['social:google:id'] && global.config['social:google:secret']) {
|
||||||
passport.use(new passportGoogle({
|
passport.use(new passportGoogle({
|
||||||
clientID: config.google.id,
|
clientID: global.config['social:google:id'],
|
||||||
clientSecret: config.google.secret,
|
clientSecret: global.config['social:google:secret'],
|
||||||
callbackURL: config.url + 'auth/google/callback'
|
callbackURL: config.url + 'auth/google/callback'
|
||||||
}, function(accessToken, refreshToken, profile, done) {
|
}, function(accessToken, refreshToken, profile, done) {
|
||||||
user_module.loginViaGoogle(profile.id, profile.displayName, profile.emails[0].value, function(err, user) {
|
user_module.loginViaGoogle(profile.id, profile.displayName, profile.emails[0].value, function(err, user) {
|
||||||
@@ -50,10 +45,10 @@
|
|||||||
login_strategies.push('google');
|
login_strategies.push('google');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.facebook && config.facebook.app_id.length > 0 && config.facebook.secret.length > 0) {
|
if (global.config['social:facebook:app_id'] && global.config['social:facebook:secret']) {
|
||||||
passport.use(new passportFacebook({
|
passport.use(new passportFacebook({
|
||||||
clientID: config.facebook.app_id,
|
clientID: global.config['social:facebook:app_id'],
|
||||||
clientSecret: config.facebook.secret,
|
clientSecret: global.config['social:facebook:secret'],
|
||||||
callbackURL: config.url + 'auth/facebook/callback'
|
callbackURL: config.url + 'auth/facebook/callback'
|
||||||
}, function(accessToken, refreshToken, profile, done) {
|
}, function(accessToken, refreshToken, profile, done) {
|
||||||
user_module.loginViaFacebook(profile.id, profile.displayName, profile.emails[0].value, function(err, user) {
|
user_module.loginViaFacebook(profile.id, profile.displayName, profile.emails[0].value, function(err, user) {
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
var user = require('./../user.js'),
|
var user = require('./../user.js'),
|
||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
utils = require('./../../public/src/utils.js'),
|
utils = require('./../../public/src/utils.js'),
|
||||||
config = require('../../config.js'),
|
|
||||||
marked = require('marked');
|
marked = require('marked');
|
||||||
|
|
||||||
|
|
||||||
(function(User) {
|
(function(User) {
|
||||||
User.create_routes = function(app) {
|
User.create_routes = function(app) {
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ var RDB = require('./redis.js'),
|
|||||||
topics = require('./topics.js'),
|
topics = require('./topics.js'),
|
||||||
categories = require('./categories.js'),
|
categories = require('./categories.js'),
|
||||||
user = require('./user.js'),
|
user = require('./user.js'),
|
||||||
config = require('../config.js'),
|
|
||||||
async = require('async');
|
async = require('async');
|
||||||
|
|
||||||
|
|
||||||
@@ -23,7 +22,7 @@ var RDB = require('./redis.js'),
|
|||||||
// DRY fail in postTools
|
// DRY fail in postTools
|
||||||
|
|
||||||
user.getUserField(uid, 'reputation', function(reputation) {
|
user.getUserField(uid, 'reputation', function(reputation) {
|
||||||
next(null, reputation >= config.privilege_thresholds.manage_thread);
|
next(null, reputation >= global.config['privileges:manage_topic']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ var RDB = require('./redis.js')
|
|||||||
posts = require('./posts.js'),
|
posts = require('./posts.js'),
|
||||||
utils = require('./../public/src/utils.js'),
|
utils = require('./../public/src/utils.js'),
|
||||||
user = require('./user.js'),
|
user = require('./user.js'),
|
||||||
config = require('../config.js'),
|
|
||||||
categories = require('./categories.js'),
|
categories = require('./categories.js'),
|
||||||
posts = require('./posts.js'),
|
posts = require('./posts.js'),
|
||||||
marked = require('marked'),
|
marked = require('marked'),
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
var config = require('../config.js'),
|
var utils = require('./../public/src/utils.js'),
|
||||||
utils = require('./../public/src/utils.js'),
|
|
||||||
RDB = require('./redis.js'),
|
RDB = require('./redis.js'),
|
||||||
crypto = require('crypto'),
|
crypto = require('crypto'),
|
||||||
emailjs = require('emailjs'),
|
emailjs = require('emailjs'),
|
||||||
|
|||||||
@@ -3,9 +3,8 @@ var express = require('express'),
|
|||||||
server = require('http').createServer(WebServer),
|
server = require('http').createServer(WebServer),
|
||||||
RedisStore = require('connect-redis')(express),
|
RedisStore = require('connect-redis')(express),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
config = require('../config.js'),
|
|
||||||
redis = require('redis'),
|
redis = require('redis'),
|
||||||
redisServer = redis.createClient(config.redis.port, config.redis.host, config.redis.options),
|
redisServer = redis.createClient(global.config.redis.port, global.config.redis.host),
|
||||||
marked = require('marked'),
|
marked = require('marked'),
|
||||||
utils = require('../public/src/utils.js'),
|
utils = require('../public/src/utils.js'),
|
||||||
fs = require('fs'),
|
fs = require('fs'),
|
||||||
@@ -36,7 +35,7 @@ var express = require('express'),
|
|||||||
client: redisServer,
|
client: redisServer,
|
||||||
ttl: 60*60*24*14
|
ttl: 60*60*24*14
|
||||||
}),
|
}),
|
||||||
secret: config.secret,
|
secret: global.config.secret,
|
||||||
key: 'express.sid'
|
key: 'express.sid'
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
||||||
cookie = require('cookie'),
|
cookie = require('cookie'),
|
||||||
connect = require('connect'),
|
connect = require('connect'),
|
||||||
config = require('../config.js'),
|
|
||||||
user = require('./user.js'),
|
user = require('./user.js'),
|
||||||
posts = require('./posts.js'),
|
posts = require('./posts.js'),
|
||||||
favourites = require('./favourites.js'),
|
favourites = require('./favourites.js'),
|
||||||
@@ -26,7 +25,7 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
|||||||
io.set('authorization', function(handshakeData, accept) {
|
io.set('authorization', function(handshakeData, accept) {
|
||||||
if (handshakeData.headers.cookie) {
|
if (handshakeData.headers.cookie) {
|
||||||
handshakeData.cookie = cookie.parse(handshakeData.headers.cookie);
|
handshakeData.cookie = cookie.parse(handshakeData.headers.cookie);
|
||||||
handshakeData.sessionID = connect.utils.parseSignedCookie(handshakeData.cookie['express.sid'], config.secret);
|
handshakeData.sessionID = connect.utils.parseSignedCookie(handshakeData.cookie['express.sid'], global.config.secret);
|
||||||
|
|
||||||
if (handshakeData.cookie['express.sid'] == handshakeData.sessionID) {
|
if (handshakeData.cookie['express.sid'] == handshakeData.sessionID) {
|
||||||
return accept('Cookie is invalid.', false);
|
return accept('Cookie is invalid.', false);
|
||||||
@@ -302,18 +301,9 @@ var SocketIO = require('socket.io').listen(global.server, { log:false }),
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('api:config.setup', function(data) {
|
socket.on('api:config.get', function(data) {
|
||||||
async.parallel([
|
|
||||||
function(next) {
|
|
||||||
meta.config.set('redis/host', data['redis/host'], next);
|
|
||||||
},
|
|
||||||
function(next) {
|
|
||||||
meta.config.set('redis/port', data['redis/port'], next);
|
|
||||||
}
|
|
||||||
], function(err) {
|
|
||||||
meta.config.get(function(config) {
|
meta.config.get(function(config) {
|
||||||
socket.emit('api:config.setup', config);
|
socket.emit('api:config.get', config);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user