mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-02-03 05:09:48 +01:00
@@ -20,6 +20,7 @@ var request = require('request'),
|
||||
|
||||
try {
|
||||
var response = JSON.parse(body);
|
||||
|
||||
if(response.success) {
|
||||
callback(null, response.data);
|
||||
} else {
|
||||
|
||||
@@ -212,6 +212,12 @@ var async = require('async'),
|
||||
}, {
|
||||
field: 'allowRegistration',
|
||||
value: 1
|
||||
}, {
|
||||
field: 'allowFileUploads',
|
||||
value: 0,
|
||||
}, {
|
||||
filed: 'maximumFileSize',
|
||||
value: 2048
|
||||
}, {
|
||||
field: 'minimumTitleLength',
|
||||
value: 3
|
||||
|
||||
37
src/posts.js
37
src/posts.js
@@ -12,6 +12,8 @@ var db = require('./database'),
|
||||
meta = require('./meta'),
|
||||
|
||||
async = require('async'),
|
||||
path = require('path'),
|
||||
fs = require('fs'),
|
||||
nconf = require('nconf'),
|
||||
validator = require('validator'),
|
||||
winston = require('winston'),
|
||||
@@ -358,6 +360,10 @@ var db = require('./database'),
|
||||
|
||||
Posts.uploadPostImage = function(image, callback) {
|
||||
|
||||
if(!meta.config.imgurClientID) {
|
||||
return callback('imgurClientID not set', null);
|
||||
}
|
||||
|
||||
if(!image) {
|
||||
return callback('invalid image', null);
|
||||
}
|
||||
@@ -374,6 +380,37 @@ var db = require('./database'),
|
||||
});
|
||||
}
|
||||
|
||||
Posts.uploadPostFile = function(file, callback) {
|
||||
|
||||
if(!meta.config.allowFileUploads) {
|
||||
return callback('File uploads are not allowed');
|
||||
}
|
||||
|
||||
if(!file) {
|
||||
return callback('invalid file');
|
||||
}
|
||||
|
||||
var buffer = new Buffer(file.data, 'base64');
|
||||
|
||||
if(buffer.length > parseInt(meta.config.maximumFileSize, 10) * 1024) {
|
||||
return callback('File too big');
|
||||
}
|
||||
|
||||
var filename = 'upload-' + utils.generateUUID() + path.extname(file.name);
|
||||
var uploadPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), filename);
|
||||
|
||||
fs.writeFile(uploadPath, buffer, function (err) {
|
||||
if(err) {
|
||||
callback(err.message, null);
|
||||
} else {
|
||||
callback(null, {
|
||||
url: nconf.get('upload_url') + filename,
|
||||
name: file.name
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Posts.getPostsByUid = function(uid, start, end, callback) {
|
||||
user.getPostIds(uid, start, end, function(err, pids) {
|
||||
if(err) {
|
||||
|
||||
@@ -40,6 +40,8 @@ var path = require('path'),
|
||||
config.useOutgoingLinksPage = meta.config.useOutgoingLinksPage;
|
||||
config.allowGuestPosting = meta.config.allowGuestPosting;
|
||||
config.allowRegistration = meta.config.allowRegistration || '1';
|
||||
config.allowFileUploads = meta.config.allowFileUploads;
|
||||
config.maximumFileSize = meta.config.maximumFileSize;
|
||||
config.emailSetup = !!meta.config['email:from'];
|
||||
|
||||
res.json(200, config);
|
||||
|
||||
@@ -530,6 +530,11 @@ var fs = require('fs'),
|
||||
user.getUserData(uid, function (err, data) {
|
||||
if (data) {
|
||||
data.joindate = new Date(parseInt(data.joindate, 10)).toISOString();
|
||||
if(data.lastonline) {
|
||||
data.lastonline = new Date(parseInt(data.lastonline, 10)).toISOString();
|
||||
} else {
|
||||
data.lastonline = data.joindate;
|
||||
}
|
||||
|
||||
if (!data.birthday) {
|
||||
data.age = '';
|
||||
|
||||
@@ -14,7 +14,7 @@ var db = require('./database'),
|
||||
|
||||
Upgrade.check = function(callback) {
|
||||
// IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema
|
||||
var latestSchema = new Date(2013, 11, 31).getTime();
|
||||
var latestSchema = new Date(2014, 0, 1).getTime();
|
||||
|
||||
db.get('schemaDate', function(err, value) {
|
||||
if (parseInt(value, 10) >= latestSchema) {
|
||||
|
||||
@@ -183,6 +183,13 @@ var path = require('path'),
|
||||
// Authentication Routes
|
||||
auth.initialize(app);
|
||||
|
||||
app.use(function(req, res, next) {
|
||||
if(req.user) {
|
||||
user.setUserField(req.user.uid, 'lastonline', Date.now());
|
||||
}
|
||||
next();
|
||||
})
|
||||
|
||||
next();
|
||||
},
|
||||
function(next) {
|
||||
|
||||
@@ -638,6 +638,10 @@ websockets.init = function(io) {
|
||||
posts.uploadPostImage(data, callback);
|
||||
});
|
||||
|
||||
socket.on('api:posts.uploadFile', function(data, callback) {
|
||||
posts.uploadPostFile(data, callback);
|
||||
});
|
||||
|
||||
socket.on('api:posts.getRawPost', function(data, callback) {
|
||||
posts.getPostField(data.pid, 'content', function(err, raw) {
|
||||
callback({
|
||||
|
||||
Reference in New Issue
Block a user