From 63201e992c884215a37d152447a119c905d2acba Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Sun, 19 Nov 2023 14:07:06 +0100 Subject: [PATCH 1/2] feature: add permissions for default boards --- packages/wekan-oidc/oidc_server.js | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/wekan-oidc/oidc_server.js b/packages/wekan-oidc/oidc_server.js index ea8e0ba82..09398b625 100644 --- a/packages/wekan-oidc/oidc_server.js +++ b/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; + const defaultBoardParams = (process.env.DEFAULT_BOARD_ID || '').split(':'); + const defaultBoardId = defaultBoardParams.pop() + if (!defaultBoardId) return - if (defaultBoardId) - { - const board = Boards.findOne(defaultBoardId) - const user = Users.findOne({ 'services.oidc.id': oidcUserId }) - const memberIndex = _.pluck(board.members, 'userId').indexOf(user._id); + 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 - if(board && memberIndex < 0) - { - board.addMember(user._id) - } - } + board.addMember(user._id) + board.setMemberPermission( + user._id, + defaultBoardParams.contains("isAdmin"), + defaultBoardParams.contains("isNoComments"), + defaultBoardParams.contains("isCommentsOnly"), + defaultBoardParams.contains("isWorker") + ) } }); From 3e469c5a4412940e68ddbf0cbce4eab48705c0ee Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Mon, 20 Nov 2023 16:01:18 +0100 Subject: [PATCH 2/2] feature: add permissions for default boards --- packages/wekan-oidc/oidc_server.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/wekan-oidc/oidc_server.js b/packages/wekan-oidc/oidc_server.js index 09398b625..35b7f922c 100644 --- a/packages/wekan-oidc/oidc_server.js +++ b/packages/wekan-oidc/oidc_server.js @@ -313,17 +313,17 @@ Meteor.methods({ check(oidcUserId, String); const defaultBoardParams = (process.env.DEFAULT_BOARD_ID || '').split(':'); - const defaultBoardId = defaultBoardParams.pop() + const defaultBoardId = defaultBoardParams.shift() 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 + 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(user._id) + board.addMember(userId) board.setMemberPermission( - user._id, + userId, defaultBoardParams.contains("isAdmin"), defaultBoardParams.contains("isNoComments"), defaultBoardParams.contains("isCommentsOnly"),