Browse Source

feature: add permissions for default boards

Diego Steiner 1 year ago
parent
commit
63201e992c
1 changed files with 17 additions and 13 deletions
  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(info, Object);
     check(oidcUserId, String);
     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.pop()
+    if (!defaultBoardId) return
+
+    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 > -1) return
+
+    board.addMember(user._id)
+    board.setMemberPermission(
+      user._id,
+      defaultBoardParams.contains("isAdmin"),
+      defaultBoardParams.contains("isNoComments"),
+      defaultBoardParams.contains("isCommentsOnly"),
+      defaultBoardParams.contains("isWorker")
+    )
   }
   }
 });
 });