Переглянути джерело

Merge branch 'master' of https://github.com/Robert-Lebedeu/wekan into Robert-Lebedeu-master

Lauri Ojansivu 5 роки тому
батько
коміт
0649add494
3 змінених файлів з 18 додано та 4 видалено
  1. 8 1
      models/cards.js
  2. 9 2
      models/checklists.js
  3. 1 1
      server/authentication.js

+ 8 - 1
models/cards.js

@@ -2003,8 +2003,15 @@ if (Meteor.isServer) {
     req,
     res,
   ) {
-    Authentication.checkUserId(req.userId);
+    // Check user is logged in
+    Authentication.checkLoggedIn(req.userId);
     const paramBoardId = req.params.boardId;
+    // Check user has permission to add card to the board
+    const board = Boards.findOne({
+      _id: paramBoardId
+    });
+    const addPermission = allowIsBoardMemberCommentOnly(req.userId, board);
+    Authentication.checkAdminOrCondition(req.userId, addPermission);
     const paramListId = req.params.listId;
     const paramParentId = req.params.parentId;
     const currentCards = Cards.find(

+ 9 - 2
models/checklists.js

@@ -283,8 +283,15 @@ if (Meteor.isServer) {
     'POST',
     '/api/boards/:boardId/cards/:cardId/checklists',
     function(req, res) {
-      Authentication.checkUserId(req.userId);
-
+      // Check user is logged in
+      Authentication.checkLoggedIn(req.userId);
+      const paramBoardId = req.params.boardId;
+      // Check user has permission to add checklist to the card
+      const board = Boards.findOne({
+        _id: paramBoardId
+      });
+      const addPermission = allowIsBoardMemberCommentOnly(req.userId, board);
+      Authentication.checkAdminOrCondition(req.userId, addPermission);
       const paramCardId = req.params.cardId;
       const id = Checklists.insert({
         title: req.body.title,

+ 1 - 1
server/authentication.js

@@ -58,7 +58,7 @@ Meteor.startup(() => {
     const board = Boards.findOne({ _id: boardId });
     const normalAccess =
       board.permission === 'public' ||
-      board.members.some(e => e.userId === userId).isActive;
+      board.members.some(e => e.userId === userId && e.isActive);
     Authentication.checkAdminOrCondition(userId, normalAccess);
   };