mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-16 05:20:24 +01:00
Compare commits
36 Commits
da7c9b32b8
...
v0.7.x
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6856a5e66b | ||
|
|
5705012bcd | ||
|
|
6e7a817fa4 | ||
|
|
f7648c2ed7 | ||
|
|
bb25e2690e | ||
|
|
fe11e55c16 | ||
|
|
4de7529241 | ||
|
|
944fc6e2f8 | ||
|
|
ffa0544036 | ||
|
|
2a99721d01 | ||
|
|
6fff745c5c | ||
|
|
c93781c38a | ||
|
|
4bcf7792f8 | ||
|
|
93fb36b99d | ||
|
|
56b79a974a | ||
|
|
418b9bf02f | ||
|
|
258d562c3e | ||
|
|
f1b097ded6 | ||
|
|
ef750e2ebd | ||
|
|
67d9209b99 | ||
|
|
98c1390e7f | ||
|
|
a3d17d14fd | ||
|
|
307eb19d01 | ||
|
|
f475d6e3b8 | ||
|
|
b4465b7df1 | ||
|
|
aa001b5926 | ||
|
|
5c253c1efa | ||
|
|
59b14669c4 | ||
|
|
3e386e7668 | ||
|
|
43b90c5679 | ||
|
|
58b8c32fe9 | ||
|
|
1b88a6a523 | ||
|
|
8ecd90729e | ||
|
|
a5b8a656e9 | ||
|
|
2cae7995e7 | ||
|
|
19ca796915 |
18
nodebb
18
nodebb
@@ -5,8 +5,7 @@ var colors = require('colors'),
|
||||
argv = require('minimist')(process.argv.slice(2)),
|
||||
fs = require('fs'),
|
||||
async = require('async'),
|
||||
touch = require('touch'),
|
||||
npm = require('npm');
|
||||
touch = require('touch');
|
||||
|
||||
var getRunningPid = function(callback) {
|
||||
fs.readFile(__dirname + '/pidfile', {
|
||||
@@ -119,15 +118,12 @@ switch(process.argv[2]) {
|
||||
case 'upgrade':
|
||||
async.series([
|
||||
function(next) {
|
||||
process.stdout.write('1. '.bold + 'Bringing base dependencies up to date\n'.yellow);
|
||||
npm.load({
|
||||
loglevel: 'silent'
|
||||
}, function() {
|
||||
npm.commands.install(next);
|
||||
});
|
||||
process.stdout.write('1. '.bold + 'Bringing base dependencies up to date... '.yellow);
|
||||
require('child_process').execFile('/usr/bin/env', ['npm', 'i', '--production'], next);
|
||||
},
|
||||
function(next) {
|
||||
process.stdout.write('2. '.bold + 'Updating NodeBB data store schema\n'.yellow);
|
||||
process.stdout.write('OK\n'.green);
|
||||
process.stdout.write('2. '.bold + 'Updating NodeBB data store schema.\n'.yellow);
|
||||
var upgradeProc = cproc.fork('app.js', ['--upgrade'], {
|
||||
cwd: __dirname,
|
||||
silent: false
|
||||
@@ -136,7 +132,7 @@ switch(process.argv[2]) {
|
||||
upgradeProc.on('close', next)
|
||||
},
|
||||
function(next) {
|
||||
process.stdout.write('3. '.bold + 'Storing upgrade date in "package.json"\n'.yellow);
|
||||
process.stdout.write('3. '.bold + 'Storing upgrade date in "package.json"... '.yellow);
|
||||
touch(__dirname + '/package.json', {}, next);
|
||||
}
|
||||
], function(err) {
|
||||
@@ -145,6 +141,8 @@ switch(process.argv[2]) {
|
||||
} else {
|
||||
var message = 'NodeBB Upgrade Complete!',
|
||||
spaces = new Array(Math.floor(process.stdout.columns / 2) - (message.length / 2) + 1).join(' ');
|
||||
|
||||
process.stdout.write('OK\n'.green);
|
||||
process.stdout.write('\n' + spaces + message.green.bold + '\n\n'.reset);
|
||||
}
|
||||
});
|
||||
|
||||
3607
npm-shrinkwrap.json
generated
Normal file
3607
npm-shrinkwrap.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "0.7.3-dev",
|
||||
"version": "0.7.3",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
@@ -85,4 +85,4 @@
|
||||
"follow_topics_you_create": "Seguir publicaciones que creas",
|
||||
"grouptitle": "Selecciona el título del grupo que deseas visualizar",
|
||||
"no-group-title": "Sin título de grupo"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"header.tags": "话题",
|
||||
"header.popular": "热门",
|
||||
"header.users": "会员",
|
||||
"header.groups": "小组",
|
||||
"header.groups": "群组",
|
||||
"header.chats": "聊天",
|
||||
"header.notifications": "通知",
|
||||
"header.search": "搜索",
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"watched": "已订阅",
|
||||
"followers": "粉丝",
|
||||
"following": "关注",
|
||||
"aboutme": "About me",
|
||||
"aboutme": "关于我",
|
||||
"signature": "签名档",
|
||||
"gravatar": "头像",
|
||||
"birthday": "生日",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
var languages = {},
|
||||
regexes = {
|
||||
match: /\[\[\w+:[^\]]+?\]\]/g,
|
||||
match: /\[\[\w+:.*?\]\]/g,
|
||||
split: /[,][\s]*/,
|
||||
replace: /\]+$/
|
||||
};
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
var meta = require('./../meta'),
|
||||
user = require('./../user'),
|
||||
plugins = require('./../plugins'),
|
||||
widgets = require('../widgets'),
|
||||
|
||||
var async = require('async'),
|
||||
validator = require('validator'),
|
||||
nconf = require('nconf');
|
||||
nconf = require('nconf'),
|
||||
|
||||
meta = require('../meta'),
|
||||
user = require('../user'),
|
||||
posts = require('../posts'),
|
||||
topics = require('../topics'),
|
||||
categories = require('../categories'),
|
||||
privileges = require('../privileges'),
|
||||
plugins = require('../plugins'),
|
||||
helpers = require('./helpers'),
|
||||
widgets = require('../widgets');
|
||||
|
||||
var apiController = {};
|
||||
|
||||
@@ -126,4 +132,37 @@ apiController.renderWidgets = function(req, res, next) {
|
||||
});
|
||||
};
|
||||
|
||||
apiController.getObject = function(req, res, next) {
|
||||
var methods = {
|
||||
post: {
|
||||
canRead: privileges.posts.can,
|
||||
data: posts.getPostData
|
||||
},
|
||||
topic: {
|
||||
canRead: privileges.topics.can,
|
||||
data: topics.getTopicData
|
||||
},
|
||||
category: {
|
||||
canRead: privileges.categories.can,
|
||||
data: categories.getCategoryData
|
||||
}
|
||||
};
|
||||
if (!methods[req.params.type]) {
|
||||
return next();
|
||||
}
|
||||
async.parallel({
|
||||
canRead: async.apply(methods[req.params.type].canRead, 'read', req.params.id, req.uid),
|
||||
data: async.apply(methods[req.params.type].data, req.params.id)
|
||||
}, function (err, results) {
|
||||
if (err || !results.data) {
|
||||
return next(err);
|
||||
}
|
||||
if (!results.canRead) {
|
||||
return helpers.notAllowed(req, res);
|
||||
}
|
||||
res.json(results.data);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
module.exports = apiController;
|
||||
|
||||
@@ -15,7 +15,6 @@ var async = require('async'),
|
||||
helpers = require('./helpers');
|
||||
|
||||
var Controllers = {
|
||||
posts: require('./posts'),
|
||||
topics: require('./topics'),
|
||||
categories: require('./categories'),
|
||||
unread: require('./unread'),
|
||||
@@ -42,9 +41,9 @@ Controllers.home = function(req, res, next) {
|
||||
if (route === 'categories') {
|
||||
Controllers.categories.list(req, res, next);
|
||||
} else if (route === 'recent') {
|
||||
Controllers.categories.recent(req, res, next);
|
||||
Controllers.recent.get(req, res, next);
|
||||
} else if (route === 'popular') {
|
||||
Controllers.categories.popular(req, res, next);
|
||||
Controllers.popular.get(req, res, next);
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
var async = require('async'),
|
||||
|
||||
posts = require('../posts'),
|
||||
privileges = require('../privileges'),
|
||||
helpers = require('./helpers'),
|
||||
postsController = {};
|
||||
|
||||
postsController.getPost = function(req, res, next) {
|
||||
async.parallel({
|
||||
canRead: function(next) {
|
||||
privileges.posts.can('read', req.params.pid, req.uid, next);
|
||||
},
|
||||
postData: function(next) {
|
||||
posts.getPostData(req.params.pid, next);
|
||||
}
|
||||
}, function(err, results) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
if (!results.postData) {
|
||||
return helpers.notFound(req, res);
|
||||
}
|
||||
if (!results.canRead) {
|
||||
return helpers.notAllowed(req, res);
|
||||
}
|
||||
|
||||
res.json(results.postData);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
module.exports = postsController;
|
||||
@@ -15,7 +15,10 @@ module.exports = function(app, middleware, controllers) {
|
||||
router.get('/widgets/render', controllers.api.renderWidgets);
|
||||
|
||||
router.get('/user/uid/:uid', middleware.checkGlobalPrivacySettings, controllers.accounts.getUserByUID);
|
||||
router.get('/post/:pid', controllers.posts.getPost);
|
||||
router.get('/:type/pid/:id', controllers.api.getObject);
|
||||
router.get('/:type/tid/:id', controllers.api.getObject);
|
||||
router.get('/:type/cid/:id', controllers.api.getObject);
|
||||
|
||||
router.get('/categories/:cid/moderators', getModerators);
|
||||
router.get('/recent/posts/:term?', getRecentPosts);
|
||||
router.get('/unread/total', middleware.authenticate, controllers.unread.unreadTotal);
|
||||
|
||||
@@ -118,4 +118,4 @@ module.exports = function(Topics) {
|
||||
Topics.setTopicField(tid, 'teaserPid', pid, callback);
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -403,7 +403,7 @@ Upgrade.upgrade = function(callback) {
|
||||
}
|
||||
async.parallel([
|
||||
async.apply(db.sortedSetAdd, 'groups:visible:createtime', groupData.createtime, groupName),
|
||||
async.apply(db.sortedSetAdd, 'groups:visible:memberCount', groupData.memberCount, groupName),
|
||||
async.apply(db.sortedSetAdd, 'groups:visible:memberCount', groupData.memberCount || 0, groupName),
|
||||
async.apply(db.sortedSetAdd, 'groups:visible:name', 0, groupName.toLowerCase() + ':' + groupName)
|
||||
], next);
|
||||
});
|
||||
|
||||
@@ -136,7 +136,9 @@ module.exports = function(User) {
|
||||
if (!user) {
|
||||
return next(null, user);
|
||||
}
|
||||
|
||||
// temporary: see http://www.stopforumspam.com/forum/viewtopic.php?id=6392
|
||||
user.ip = user.ip.replace('::ffff:', '');
|
||||
|
||||
request('http://api.stopforumspam.org/api?ip=' + user.ip + '&email=' + user.email + '&username=' + user.username + '&f=json', function (err, response, body) {
|
||||
if (err) {
|
||||
return next(null, user);
|
||||
|
||||
Reference in New Issue
Block a user