From 31993daee001dc1e1eadd7359f7ac0c4c92d82b9 Mon Sep 17 00:00:00 2001 From: OldHawk Date: Sun, 17 Dec 2017 22:39:01 +0800 Subject: [PATCH] feat(message): new server notice message of user new message of user role changed new message of user upload access changed #20 --- config/env/torrents.js | 9 +++--- .../controllers/makers.server.controller.js | 5 ++-- modules/core/client/app/trans-string-en.js | 8 ++++- modules/core/client/app/trans-string-zh.js | 14 ++++++--- .../controllers/admin.server.controller.js | 30 +++++++++++++++++-- 5 files changed, 52 insertions(+), 14 deletions(-) diff --git a/config/env/torrents.js b/config/env/torrents.js index 95e3cd37..b29f6e44 100644 --- a/config/env/torrents.js +++ b/config/env/torrents.js @@ -334,7 +334,9 @@ module.exports = { makerAddMember: {title: 'TITLE_MAKER_ADD_MEMBER', content: 'CONTENT_MAKER_ADD_MEMBER', enable: true}, makerRemoveMember: {title: 'TITLE_MAKER_REMOVE_MEMBER', content: 'CONTENT_MAKER_REMOVE_MEMBER', enable: true}, - vipStatusChanged: {title: 'TITLE_VIP_CHANGED_ADD', content: 'CONTENT_VIP_CHANGED_ADD', enable: true}, + userVipStatusChanged: {title: 'TITLE_USER_VIP_CHANGED_ADD', content: 'CONTENT_USER_VIP_CHANGED_ADD', enable: true}, + userRoleChanged: {title: 'TITLE_USER_ROLE_CHANGED', content: 'CONTENT_USER_ROLE_CHANGED', enable: true}, + userUploadAccessChanged: {title: 'TITLE_USER_UPLOAD_ACCESS_CHANGED', content: 'CONTENT_USER_UPLOAD_ACCESS_CHANGED', enable: true}, hnrWarningAddByAnnounce: {title: 'TITLE_HNR_WARNING_ADD', content: 'CONTENT_HNR_WARNING_ADD', enable: true}, hnrWarningRemoveByAnnounce: {title: 'TITLE_HNR_WARNING_REMOVE', content: 'CONTENT_HNR_WARNING_REMOVE', enable: true}, @@ -355,10 +357,7 @@ module.exports = { torrentSaleChanged: {title: 'TITLE_TORRENT_SALE_CHANGED', content: 'CONTENT_TORRENT_SALE_CHANGED', enable: true}, torrentDeleted: {title: 'TITLE_TORRENT_DELETED', content: 'CONTENT_TORRENT_DELETED', enable: true}, torrentSubtitleNew: {title: 'TITLE_TORRENT_SUBTITLE_NEW', content: 'CONTENT_TORRENT_SUBTITLE_NEW', enable: true}, - torrentSubtitleDeleted: {title: 'TITLE_TORRENT_SUBTITLE_DELETED', content: 'CONTENT_TORRENT_SUBTITLE_DELETED', enable: true}, - - userRoleChanged: {title: 'TITLE_USER_ROLE_CHANGED', content: 'CONTENT_USER_ROLE_CHANGED', enable: true}, - userUploadAccessChanged: {title: 'TITLE_USER_UPLOAD_ACCESS_CHANGED', content: 'CONTENT_USER_UPLOAD_ACCESS_CHANGED', enable: true} + torrentSubtitleDeleted: {title: 'TITLE_TORRENT_SUBTITLE_DELETED', content: 'CONTENT_TORRENT_SUBTITLE_DELETED', enable: true} } }, diff --git a/modules/about/server/controllers/makers.server.controller.js b/modules/about/server/controllers/makers.server.controller.js index 2b29cfd0..cae7aa97 100644 --- a/modules/about/server/controllers/makers.server.controller.js +++ b/modules/about/server/controllers/makers.server.controller.js @@ -92,9 +92,9 @@ exports.update = function (req, res) { var maker = req.maker; var accessChanged = false; + accessChanged = (maker.upload_access !== req.body.upload_access); maker.name = req.body.name; maker.desc = req.body.desc; - accessChanged = (maker.upload_access !== req.body.upload_access); maker.upload_access = req.body.upload_access; maker.save(function (err) { @@ -112,7 +112,8 @@ exports.update = function (req, res) { maker_id: maker._id, maker_access: maker.upload_access === 'review' ? 'UPLOADER.FIELDS_REVIEW' : 'UPLOADER.FIELDS_PASS', by_name: req.user.displayName, - by_id: req.user._id + by_id: req.user._id, + site_name: appConfig.name }); } } diff --git a/modules/core/client/app/trans-string-en.js b/modules/core/client/app/trans-string-en.js index 798d96c9..665efd47 100644 --- a/modules/core/client/app/trans-string-en.js +++ b/modules/core/client/app/trans-string-en.js @@ -1297,6 +1297,12 @@ //server message string, content string support markdown and emoji SERVER_MESSAGE: { + TITLE_USER_ROLE_CHANGED: 'User role status changed', + CONTENT_USER_ROLE_CHANGED: '### Role status changed! \n Your role was modified by user [{{by_name}}](/userinfo/{{by_id}}), current role is **{{user_role}}**, Thank you for your contribution on **{{site_name}}**.', + + TITLE_USER_UPLOAD_ACCESS_CHANGED: 'Upload access changed', + CONTENT_USER_UPLOAD_ACCESS_CHANGED: '### upload access changed! \n Your upload was changed by user [{{by_name}}](/userinfo/{{by_id}}), current access is **{{upload_access | translate}}**, Thank you for your contribution on **{{site_name}}**.', + TITLE_VIP_CHANGED_ADD: 'Vip status changed', CONTENT_VIP_CHANGED_ADD: '### Welcome! \n Your vip status changed, now end at: **{{vip_end_at | date: "yyyy-MM-dd HH:mm"}}** :four_leaf_clover:', @@ -1307,7 +1313,7 @@ CONTENT_MAKER_DELETED: ':warning: Your maker group **-={{maker_name}}=-** was deleted by user [{{by_name}}](/userinfo/{{by_id}}), Thank you for your contribution on **{{site_name}}**.', TITLE_MAKER_UPLOAD_ACCESS_CHANGED: 'Maker group upload access changed', - CONTENT_MAKER_UPLOAD_ACCESS_CHANGED: '### upload access changed! \n Your maker group [{{maker_name}}](/about/maker/{{maker_id}}) upload access was changed by user [{{by_name}}](/userinfo/{{by_id}}), current access is **{{maker_access | translate}}**.', + CONTENT_MAKER_UPLOAD_ACCESS_CHANGED: '### upload access changed! \n Your upload access of maker group [{{maker_name}}](/about/maker/{{maker_id}}) was changed by user [{{by_name}}](/userinfo/{{by_id}}), current access is **{{maker_access | translate}}**, Thank you for your contribution on **{{site_name}}**.', TITLE_MAKER_ADD_MEMBER: 'Welcome become maker group member', CONTENT_MAKER_ADD_MEMBER: '### Welcome! \n :clap: You have become a member of maker group [{{maker_name}}](/about/maker/{{maker_id}}) by user [{{by_name}}](/userinfo/{{by_id}}), Thank you for your contribution on **{{site_name}}**.', diff --git a/modules/core/client/app/trans-string-zh.js b/modules/core/client/app/trans-string-zh.js index 76d37840..f502bb9f 100644 --- a/modules/core/client/app/trans-string-zh.js +++ b/modules/core/client/app/trans-string-zh.js @@ -1297,6 +1297,12 @@ //server message string, content string support markdown and emoji SERVER_MESSAGE: { + TITLE_USER_ROLE_CHANGED: '用户身份状态已改变', + CONTENT_USER_ROLE_CHANGED: '### 身份状态已改变! \n 您的用户身份状态已由管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 修改, 当前身份是 **{{user_role}}**, 感谢您为 **{{site_name}}** 做出贡献! ', + + TITLE_USER_UPLOAD_ACCESS_CHANGED: '上传权限已变更', + CONTENT_USER_UPLOAD_ACCESS_CHANGED: '### 上传权限已变更! \n 您的上传权限已由管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 变更, 当前权限为 **{{upload_access | translate}}**, 感谢您为 **{{site_name}}** 做出贡献! ', + TITLE_VIP_CHANGED_ADD: 'Vip 状态已改变', CONTENT_VIP_CHANGED_ADD: '### 恭喜! \n 您的 Vip 状态已改变, 您的 Vip 将结束于: **{{vip_end_at | date: "yyyy-MM-dd HH:mm"}}** :four_leaf_clover:', @@ -1307,7 +1313,7 @@ CONTENT_MAKER_DELETED: ':warning: 属于您的资源制作小组 **-={{maker_name}}=-** 已经由管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 删除, 感谢您为 **{{site_name}}** 所做出的贡献!', TITLE_MAKER_UPLOAD_ACCESS_CHANGED: '资源制作小组上传权限已变更', - CONTENT_MAKER_UPLOAD_ACCESS_CHANGED: '### 上传权限已变更! \n 属于您的资源制作小组 [{{maker_name}}](/about/maker/{{maker_id}}) 的上传权限已由管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 变更, 当前权限为 **{{maker_access | translate}}**.', + CONTENT_MAKER_UPLOAD_ACCESS_CHANGED: '### 上传权限已变更! \n 属于您的资源制作小组 [{{maker_name}}](/about/maker/{{maker_id}}) 的上传权限已由管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 变更, 当前权限为 **{{maker_access | translate}}**, 感谢您为 **{{site_name}}** 做出贡献! ', TITLE_MAKER_ADD_MEMBER: '欢迎您成为资源制作小组成员', CONTENT_MAKER_ADD_MEMBER: '### 欢迎! \n :clap: 管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 已将您加入资源制作小组 [{{maker_name}}](/about/maker/{{maker_id}}) 并成为其中的一员,感谢您为 **{{site_name}}** 做出贡献! ', @@ -1321,13 +1327,13 @@ CONTENT_HNR_WARNING_REMOVE: '### H&R 警告已移除! \n 恭喜您, 您在种子 [{{torrent_file_name}}](/torrents/{{torrent_id}}) 上的 h&r 警告已经移除.', TITLE_FORUM_NEW_TOPIC_REPLY: '论坛主题有了新回复', - CONTENT_FORUM_NEW_TOPIC_REPLY: '### 新回复! \n :collision: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 有了一个新回复来自用户 [{{by_name}}](/userinfo/{{by_id}})。', + CONTENT_FORUM_NEW_TOPIC_REPLY: '### 新回复! \n :collision: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 有了一个新回复来自用户 [{{by_name}}](/userinfo/{{by_id}}).', TITLE_FORUM_TOPIC_THUMBS_UP: '论坛主题被点赞', - CONTENT_FORUM_TOPIC_THUMBS_UP: '### 点赞! \n :+1: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 收到一个点赞来自用户 [{{by_name}}](/userinfo/{{by_id}})。', + CONTENT_FORUM_TOPIC_THUMBS_UP: '### 点赞! \n :+1: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 收到一个点赞来自用户 [{{by_name}}](/userinfo/{{by_id}}).', TITLE_FORUM_REPLY_THUMBS_UP: '论坛回复被点赞', - CONTENT_FORUM_REPLY_THUMBS_UP: '### 点赞! \n :+1: 您在论坛主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) 发表的回复收到一个点赞来自用户 [{{by_name}}](/userinfo/{{by_id}})。', + CONTENT_FORUM_REPLY_THUMBS_UP: '### 点赞! \n :+1: 您在论坛主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}#{{reply_id}}) 发表的回复收到一个点赞来自用户 [{{by_name}}](/userinfo/{{by_id}}).', TITLE_FORUM_TOPIC_DELETED: '论坛主题被删除', CONTENT_FORUM_TOPIC_DELETED: ':warning: 您在论坛发表的主题 [{{topic_title}}](/forums/{{forum_id}}/{{topic_id}}) 被管理员用户 [{{by_name}}](/userinfo/{{by_id}}) 删除.', diff --git a/modules/users/server/controllers/admin.server.controller.js b/modules/users/server/controllers/admin.server.controller.js index 0edd137f..ca58ac08 100644 --- a/modules/users/server/controllers/admin.server.controller.js +++ b/modules/users/server/controllers/admin.server.controller.js @@ -20,8 +20,10 @@ const PEERSTATE_LEECHER = 'leecher'; var traceConfig = config.meanTorrentConfig.trace; var mtDebug = require(path.resolve('./config/lib/debug')); +var appConfig = config.meanTorrentConfig.app; var serverMessage = require(path.resolve('./config/lib/server-message')); var serverNoticeConfig = config.meanTorrentConfig.serverNotice; + /** * Show the current user */ @@ -34,7 +36,9 @@ exports.read = function (req, res) { */ exports.update = function (req, res) { var user = req.model; + var accessChanged = false; + accessChanged = (user.upload_access !== req.body.upload_access); // For security purposes only merge these parameters user.firstName = req.body.firstName; user.lastName = req.body.lastName; @@ -51,6 +55,16 @@ exports.update = function (req, res) { res.json(user); + //add server message + if (serverNoticeConfig.action.userUploadAccessChanged.enable && accessChanged) { + serverMessage.addMessage(user._id, serverNoticeConfig.action.userUploadAccessChanged.title, serverNoticeConfig.action.userUploadAccessChanged.content, { + upload_access: user.upload_access === 'review' ? 'UPLOADER.FIELDS_REVIEW' : 'UPLOADER.FIELDS_PASS', + by_name: req.user.displayName, + by_id: req.user._id, + site_name: appConfig.name + }); + } + //create trace log traceLogCreate(req, traceConfig.action.AdminUserEdit, { user: user._id, @@ -205,6 +219,16 @@ exports.updateUserRole = function (req, res) { user.roles = req.body.userRole; res.json(user); + //add server message + if (serverNoticeConfig.action.userRoleChanged.enable) { + serverMessage.addMessage(user._id, serverNoticeConfig.action.userRoleChanged.title, serverNoticeConfig.action.userRoleChanged.content, { + by_name: req.user.displayName, + by_id: req.user._id, + user_role: req.body.userRole[0], + site_name: appConfig.name + }); + } + //create trace log traceLogCreate(req, traceConfig.action.AdminUpdateUserRole, { user: user._id, @@ -373,8 +397,10 @@ exports.addVIPMonths = function (req, res) { res.json(user); //add server message - if (serverNoticeConfig.action.vipStatusChanged.enable) { - serverMessage.addMessage(user._id, serverNoticeConfig.action.vipStatusChanged.title, serverNoticeConfig.action.vipStatusChanged.content, {vip_end_at: user.vip_end_at}); + if (serverNoticeConfig.action.userVipStatusChanged.enable) { + serverMessage.addMessage(user._id, serverNoticeConfig.action.userVipStatusChanged.title, serverNoticeConfig.action.userVipStatusChanged.content, { + vip_end_at: user.vip_end_at + }); } //create trace log