From b1053cd653a0b1fd2970476adc9253978cbf4f6c Mon Sep 17 00:00:00 2001 From: OldHawk Date: Sun, 16 Jul 2017 15:45:52 +0800 Subject: [PATCH] feat(forums): update/delete access check from server side. --- .../forums-topic.client.controller.js | 30 ++--- .../client/views/topic.client.view.html | 16 +-- .../controllers/forums.server.controller.js | 104 +++++++++++++++++- 3 files changed, 122 insertions(+), 28 deletions(-) diff --git a/modules/forums/client/controllers/forums-topic.client.controller.js b/modules/forums/client/controllers/forums-topic.client.controller.js index 0b8f0929..ab8f2ba7 100644 --- a/modules/forums/client/controllers/forums-topic.client.controller.js +++ b/modules/forums/client/controllers/forums-topic.client.controller.js @@ -76,17 +76,19 @@ }; /** - * isTopicOwner - * @param t + * isOwner + * @param o, topic or reply * @returns {boolean} */ - vm.isOwner = function (t) { - if (t) { - if (t.user._id.str === vm.user._id) { + vm.isOwner = function (o) { + if (o) { + if (o.user._id.str === vm.user._id) { return true; } else { return false; } + } else { + return false; } }; @@ -104,22 +106,20 @@ } }); } - return isM; }; /** - * canEditTopic - * @param t + * canEdit * @returns {boolean} */ - vm.canEdit = function (t) { - if (t) { - if (vm.isModerator() || vm.isOwner(t) || vm.user.isOper) { - return true; - } else { - return false; - } + vm.canEdit = function () { + if (vm.user.isOper) { + return true; + } else if (vm.isModerator()) { + return true; + } else { + return false; } }; diff --git a/modules/forums/client/views/topic.client.view.html b/modules/forums/client/views/topic.client.view.html index 129194ec..1494c518 100644 --- a/modules/forums/client/views/topic.client.view.html +++ b/modules/forums/client/views/topic.client.view.html @@ -50,16 +50,16 @@
-
+
{{'FORUMS.BTN_POST_NEW_REPLY' | translate}} {{ vm.topic.readOnly ? 'FORUMS.BTN_UNSET_READONLY' : 'FORUMS.BTN_SET_READONLY' | translate}}
+ ng-if="vm.topic.readOnly && !vm.canEdit(vm.topic) && !vm.isOwner(vm.topic)">
@@ -109,15 +109,15 @@ ng-click="vm.quoteAndReply(vm.topic);">