From 2a0ea338a2a741438cad87c4736dc1b6294ac806 Mon Sep 17 00:00:00 2001 From: OldHawk Date: Thu, 16 Nov 2017 11:00:32 +0800 Subject: [PATCH] feat(forums): complete forum for vip&oper only --- config/env/torrents.js | 10 ++-- modules/core/client/app/trans-string-en.js | 2 + modules/core/client/app/trans-string-zh.js | 4 +- .../controllers/forums.client.controller.js | 46 +++++++++++++++++++ modules/forums/client/less/forum.less | 2 +- .../views/admin/configure.client.view.html | 10 ++++ .../views/admin/management.client.view.html | 3 -- .../client/views/index.client.view.html | 4 +- .../forums.admin.server.controller.js | 2 + .../server/models/forum.server.model.js | 8 ++++ 10 files changed, 79 insertions(+), 12 deletions(-) delete mode 100644 modules/forums/client/views/admin/management.client.view.html diff --git a/config/env/torrents.js b/config/env/torrents.js index 9d7e0a83..dd528028 100644 --- a/config/env/torrents.js +++ b/config/env/torrents.js @@ -717,11 +717,11 @@ module.exports = { */ forumsConfig: { category: [ - {name: 'AFFAIRS', value: 'affairs', index: 0, roles: '*', isVip: false}, - {name: 'DISCUSS', value: 'discuss', index: 1, roles: '*', isVip: false}, - {name: 'BUSINESS', value: 'business', index: 2, roles: '*', isVip: false}, - {name: 'VIP', value: 'vip', index: 3, roles: '*', isVip: true}, - {name: 'ADMINISTRATION', value: 'Administration', index: 4, roles: ['oper', 'admin'], isVip: false} + {name: 'AFFAIRS', value: 'affairs', index: 0, isOper: false, isVip: false}, + {name: 'DISCUSS', value: 'discuss', index: 1, isOper: false, isVip: false}, + {name: 'BUSINESS', value: 'business', index: 2, isOper: false, isVip: false}, + {name: 'VIP', value: 'vip', index: 3, isOper: false, isVip: true}, + {name: 'ADMINISTRATION', value: 'Administration', index: 4, isOper: true, isVip: false} ], showThumbsUpUserList: true, showUserSignature: true diff --git a/modules/core/client/app/trans-string-en.js b/modules/core/client/app/trans-string-en.js index 70e60e60..f3454caf 100644 --- a/modules/core/client/app/trans-string-en.js +++ b/modules/core/client/app/trans-string-en.js @@ -996,6 +996,8 @@ DESC: 'Description', CATEGORY: 'Category', READONLY_POST: 'Users are forbidden to post new topics', + OPERONLY_POST: 'This forum only for OPER users', + VIPONLY_POST: 'This forum only for VIP users', READONLY_REPLY: 'Users are forbidden to post new replies', TOPIC: 'Topics', GLOBAL_TOPIC: 'Global topics', diff --git a/modules/core/client/app/trans-string-zh.js b/modules/core/client/app/trans-string-zh.js index d7c384c1..0d47c1e3 100644 --- a/modules/core/client/app/trans-string-zh.js +++ b/modules/core/client/app/trans-string-zh.js @@ -995,7 +995,9 @@ MODERATORS: '版主', DESC: '描述', CATEGORY: '分类', - READONLY_POST: '只有管理员可以发起新话题', + READONLY_POST: '只允许 管理员 发起新话题', + OPERONLY_POST: '只允许 管理员 进入该论坛', + VIPONLY_POST: '只允许 VIP用户 进入该论坛', READONLY_REPLY: '禁止普通用户回复该话题', TOPIC: '主题', GLOBAL_TOPIC: '全局主题', diff --git a/modules/forums/client/controllers/forums.client.controller.js b/modules/forums/client/controllers/forums.client.controller.js index 382eb94c..727b9633 100644 --- a/modules/forums/client/controllers/forums.client.controller.js +++ b/modules/forums/client/controllers/forums.client.controller.js @@ -29,6 +29,52 @@ }); }; + /** + * getCatShowedStatus + * @param cat + * @returns {boolean} + */ + vm.getCatShowedStatus = function (cat) { + if (vm.user.isOper) { + return true; + } else { + if (cat.isVip) { + if (vm.user.isVip) { + return true; + } else { + return false; + } + } else if (cat.isOper) { + return false; + } else { + return true; + } + } + }; + + /** + * getForumShowedStatus + * @param f + * @returns {boolean} + */ + vm.getForumShowedStatus = function (f) { + if (vm.user.isOper) { + return true; + } else { + if (f.vipOnly) { + if (vm.user.isVip) { + return true; + } else { + return false; + } + } else if (f.operOnly) { + return false; + } else { + return true; + } + } + }; + /** * getForumDesc * @param f: forum diff --git a/modules/forums/client/less/forum.less b/modules/forums/client/less/forum.less index 97610d54..f414bd96 100644 --- a/modules/forums/client/less/forum.less +++ b/modules/forums/client/less/forum.less @@ -15,7 +15,7 @@ width: 100%; height: 100%; overflow: auto; - padding: 40px 30px 15px 1px; + padding: 40px 15px 15px 15px; textarea { resize: vertical; diff --git a/modules/forums/client/views/admin/configure.client.view.html b/modules/forums/client/views/admin/configure.client.view.html index 9112140b..fbe3d4e8 100644 --- a/modules/forums/client/views/admin/configure.client.view.html +++ b/modules/forums/client/views/admin/configure.client.view.html @@ -95,6 +95,16 @@ {{'FORUMS.FIELDS.READONLY_POST' | translate}} +
+ +
+
+ +
diff --git a/modules/forums/client/views/admin/management.client.view.html b/modules/forums/client/views/admin/management.client.view.html deleted file mode 100644 index 0683aa38..00000000 --- a/modules/forums/client/views/admin/management.client.view.html +++ /dev/null @@ -1,3 +0,0 @@ -
-

Forums Management

-
\ No newline at end of file diff --git a/modules/forums/client/views/index.client.view.html b/modules/forums/client/views/index.client.view.html index 468da1e6..99ad9503 100644 --- a/modules/forums/client/views/index.client.view.html +++ b/modules/forums/client/views/index.client.view.html @@ -11,7 +11,7 @@
- +
@@ -21,7 +21,7 @@ - +
{{'FORUMS.CATEGORY.'+cat.name | translate}}
diff --git a/modules/forums/server/controllers/forums.admin.server.controller.js b/modules/forums/server/controllers/forums.admin.server.controller.js index 3894ffe1..8ad456e3 100644 --- a/modules/forums/server/controllers/forums.admin.server.controller.js +++ b/modules/forums/server/controllers/forums.admin.server.controller.js @@ -61,6 +61,8 @@ exports.update = function (req, res) { forum.desc = req.body.desc; forum.order = req.body.order; forum.readOnly = req.body.readOnly; + forum.operOnly = req.body.operOnly; + forum.vipOnly = req.body.vipOnly; forum.category = req.body.category; forum.save(function (err) { diff --git a/modules/forums/server/models/forum.server.model.js b/modules/forums/server/models/forum.server.model.js index c9c16f76..bdf5297c 100644 --- a/modules/forums/server/models/forum.server.model.js +++ b/modules/forums/server/models/forum.server.model.js @@ -33,6 +33,14 @@ var ForumSchema = new Schema({ type: Boolean, default: false }, + operOnly: { + type: Boolean, + default: false + }, + vipOnly: { + type: Boolean, + default: false + }, category: { type: String, default: 'discuss',