Pārlūkot izejas kodu

Merge pull request #5213 from scout-ch/feature/default-board-for-users

Permissions for default board
Lauri Ojansivu 1 gadu atpakaļ
vecāks
revīzija
282a9e3097
1 mainītis faili ar 17 papildinājumiem un 13 dzēšanām
  1. 17 13
      packages/wekan-oidc/oidc_server.js

+ 17 - 13
packages/wekan-oidc/oidc_server.js

@@ -312,19 +312,23 @@ Meteor.methods({
     check(info, Object);
     check(oidcUserId, String);
 
-    const defaultBoardId = process.env.DEFAULT_BOARD_ID || false;
-
-    if (defaultBoardId)
-    {
-      const board = Boards.findOne(defaultBoardId);
-      const user = Users.findOne({ 'services.oidc.id': oidcUserId });
-      const memberIndex = _.pluck(board.members, 'userId').indexOf(user._id);
-
-      if(board && memberIndex < 0)
-      {
-        board.addMember(user._id);
-      }
-    }
+    const defaultBoardParams = (process.env.DEFAULT_BOARD_ID || '').split(':');
+    const defaultBoardId = defaultBoardParams.shift()
+    if (!defaultBoardId) return
+
+    const board = Boards.findOne(defaultBoardId)
+    const userId = Users.findOne({ 'services.oidc.id': oidcUserId })?._id
+    const memberIndex = _.pluck(board?.members, 'userId').indexOf(userId);
+    if(!board || !userId || memberIndex > -1) return
+
+    board.addMember(userId)
+    board.setMemberPermission(
+      userId,
+      defaultBoardParams.contains("isAdmin"),
+      defaultBoardParams.contains("isNoComments"),
+      defaultBoardParams.contains("isCommentsOnly"),
+      defaultBoardParams.contains("isWorker")
+    )
   }
 });