Skip to content

Commit 8e01055

Browse files
committed
middleware: add userRequired & adminRequired
1 parent 31f9932 commit 8e01055

File tree

3 files changed

+68
-24
lines changed

3 files changed

+68
-24
lines changed

app/middleware/admin_required.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'use strict';
2+
3+
module.exports = (options, app) => {
4+
5+
/**
6+
* 需要管理员权限
7+
*/
8+
return async function(ctx, next) {
9+
if (!ctx.session.user) {
10+
await ctx.render('notify/notify', {
11+
error: '你还没有登录。'
12+
});
13+
return;
14+
}
15+
16+
if (!ctx.session.user.is_admin) {
17+
await ctx.render('notify/notify', {
18+
error: '需要管理员权限。'
19+
});
20+
return;
21+
}
22+
23+
await next();
24+
};
25+
};

app/middleware/user_required.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
'use strict';
2+
3+
module.exports = (options, app) => {
4+
5+
/**
6+
* 需要登录
7+
*/
8+
return async function(ctx, next) {
9+
if (!ctx.session || !ctx.session.user || !ctx.session.user._id) {
10+
ctx.status = 403;
11+
ctx.body = 'forbidden!';
12+
return;
13+
}
14+
await next();
15+
};
16+
};

app/router.js

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44
* @param {Egg.Application} app - egg application
55
*/
66
module.exports = app => {
7-
const { router, controller, config } = app;
7+
const { router, controller, config, middleware } = app;
88

99
const { site, sign, user, topic, rss, search, page } = controller;
1010

11+
const userRequired = middleware.userRequired();
12+
const adminRequired = middleware.adminRequired();
13+
1114
// home page
1215
router.get('/', site.index);
1316
// sitemap
@@ -46,48 +49,48 @@ module.exports = app => {
4649

4750
// user controller
4851
router.get('/user/:name', user.index); // 用户个人主页
49-
// router.get('/setting', auth.userRequired, user.showSetting); // 用户个人设置页
50-
// router.post('/setting', auth.userRequired, user.setting); // 提交个人信息设置
52+
// router.get('/setting', userRequired, user.showSetting); // 用户个人设置页
53+
// router.post('/setting', userRequired, user.setting); // 提交个人信息设置
5154
router.get('/stars', user.listStars); // 显示所有达人列表页
5255
router.get('/users/top100', user.top100); // 显示积分前一百用户页
5356
router.get('/user/:name/collections', user.listCollectedTopics); // 用户收藏的所有话题页
5457
router.get('/user/:name/topics', user.listTopics); // 用户发布的所有话题页
5558
router.get('/user/:name/replies', user.listReplies); // 用户参与的所有回复页
56-
// router.post('/user/set_star', auth.adminRequired, user.toggleStar); // 把某用户设为达人
57-
// router.post('/user/cancel_star', auth.adminRequired, user.toggleStar); // 取消某用户的达人身份
58-
// router.post('/user/:name/block', auth.adminRequired, user.block); // 禁言某用户
59-
// router.post('/user/:name/delete_all', auth.adminRequired, user.deleteAll); // 删除某用户所有发言
59+
// router.post('/user/set_star', adminRequired, user.toggleStar); // 把某用户设为达人
60+
// router.post('/user/cancel_star', adminRequired, user.toggleStar); // 取消某用户的达人身份
61+
// router.post('/user/:name/block', adminRequired, user.block); // 禁言某用户
62+
// router.post('/user/:name/delete_all', adminRequired, user.deleteAll); // 删除某用户所有发言
6063

6164
// // message controler
62-
// router.get('/my/messages', auth.userRequired, message.index); // 用户个人的所有消息页
65+
// router.get('/my/messages', userRequired, message.index); // 用户个人的所有消息页
6366

6467
// topic
6568

6669
// // 新建文章界面
67-
// router.get('/topic/create', auth.userRequired, topic.create);
70+
// router.get('/topic/create', userRequired, topic.create);
6871

6972
router.get('/topic/:tid', topic.index); // 显示某个话题
70-
// router.post('/topic/:tid/top', auth.adminRequired, topic.top); // 将某话题置顶
71-
// router.post('/topic/:tid/good', auth.adminRequired, topic.good); // 将某话题加精
72-
// router.get('/topic/:tid/edit', auth.userRequired, topic.showEdit); // 编辑某话题
73-
// router.post('/topic/:tid/lock', auth.adminRequired, topic.lock); // 锁定主题,不能再回复
73+
// router.post('/topic/:tid/top', adminRequired, topic.top); // 将某话题置顶
74+
// router.post('/topic/:tid/good', adminRequired, topic.good); // 将某话题加精
75+
// router.get('/topic/:tid/edit', userRequired, topic.showEdit); // 编辑某话题
76+
// router.post('/topic/:tid/lock', adminRequired, topic.lock); // 锁定主题,不能再回复
7477

75-
// router.post('/topic/:tid/delete', auth.userRequired, topic.delete);
78+
// router.post('/topic/:tid/delete', userRequired, topic.delete);
7679

7780
// // 保存新建的文章
78-
// router.post('/topic/create', auth.userRequired, limit.peruserperday('create_topic', config.create_post_per_day, { showJson: false }), topic.put);
81+
// router.post('/topic/create', userRequired, limit.peruserperday('create_topic', config.create_post_per_day, { showJson: false }), topic.put);
7982

80-
// router.post('/topic/:tid/edit', auth.userRequired, topic.update);
81-
// router.post('/topic/collect', auth.userRequired, topic.collect); // 关注某话题
82-
// router.post('/topic/de_collect', auth.userRequired, topic.de_collect); // 取消关注某话题
83+
// router.post('/topic/:tid/edit', userRequired, topic.update);
84+
// router.post('/topic/collect', userRequired, topic.collect); // 关注某话题
85+
// router.post('/topic/de_collect', userRequired, topic.de_collect); // 取消关注某话题
8386

8487
// // reply controller
85-
// router.post('/:topic_id/reply', auth.userRequired, limit.peruserperday('create_reply', config.create_reply_per_day, { showJson: false }), reply.add); // 提交一级回复
86-
// router.get('/reply/:reply_id/edit', auth.userRequired, reply.showEdit); // 修改自己的评论页
87-
// router.post('/reply/:reply_id/edit', auth.userRequired, reply.update); // 修改某评论
88-
// router.post('/reply/:reply_id/delete', auth.userRequired, reply.delete); // 删除某评论
89-
// router.post('/reply/:reply_id/up', auth.userRequired, reply.up); // 为评论点赞
90-
// router.post('/upload', auth.userRequired, topic.upload); // 上传图片
88+
// router.post('/:topic_id/reply', userRequired, limit.peruserperday('create_reply', config.create_reply_per_day, { showJson: false }), reply.add); // 提交一级回复
89+
// router.get('/reply/:reply_id/edit', userRequired, reply.showEdit); // 修改自己的评论页
90+
// router.post('/reply/:reply_id/edit', userRequired, reply.update); // 修改某评论
91+
// router.post('/reply/:reply_id/delete', userRequired, reply.delete); // 删除某评论
92+
// router.post('/reply/:reply_id/up', userRequired, reply.up); // 为评论点赞
93+
// router.post('/upload', userRequired, topic.upload); // 上传图片
9194

9295
// static page
9396
router.get('/about', page.about);

0 commit comments

Comments
 (0)