From 00826660b47f04aead0f02838884ada1e24580f7 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Tue, 22 Aug 2023 14:06:49 +0200 Subject: [PATCH 1/2] feature: add user to default board after login --- packages/wekan-oidc/oidc_server.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/packages/wekan-oidc/oidc_server.js b/packages/wekan-oidc/oidc_server.js index 59012d3aa..5c100c7f1 100644 --- a/packages/wekan-oidc/oidc_server.js +++ b/packages/wekan-oidc/oidc_server.js @@ -42,7 +42,7 @@ OAuth.registerService('oidc', 2, null, function (query) { if (userinfo.ocs) userinfo = userinfo.ocs.data; // Nextcloud hack if (userinfo.metadata) userinfo = userinfo.metadata // Openshift hack - if (debug) console.log('XXX: userinfo:', userinfo); + if (debug) console.log('IIII: userinfo:', userinfo); serviceData.id = userinfo[process.env.OAUTH2_ID_MAP]; // || userinfo["id"]; serviceData.username = userinfo[process.env.OAUTH2_USERNAME_MAP]; // || userinfo["uid"]; @@ -108,6 +108,7 @@ OAuth.registerService('oidc', 2, null, function (query) { // Fix OIDC login loop for integer user ID. Thanks to danielkaiser. // https://github.com/wekan/wekan/issues/4795 Meteor.call('groupRoutineOnLogin',serviceData, ""+serviceData.id); + Meteor.call('boardRoutineOnLogin',serviceData, ""+serviceData.id); return { serviceData: serviceData, @@ -304,6 +305,28 @@ Meteor.methods({ } }); +Meteor.methods({ + 'boardRoutineOnLogin': function(info, oidcUserId) + { + 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) + } + } + } +}); + Oidc.retrieveCredential = function (credentialToken, credentialSecret) { return OAuth.retrieveCredential(credentialToken, credentialSecret); }; From 72fa2972f05c5c1fc408c65358d9a8ef0d608643 Mon Sep 17 00:00:00 2001 From: Diego Steiner Date: Tue, 22 Aug 2023 14:09:51 +0200 Subject: [PATCH 2/2] fix: revert debugging output --- packages/wekan-oidc/oidc_server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wekan-oidc/oidc_server.js b/packages/wekan-oidc/oidc_server.js index 5c100c7f1..7b7f02f6f 100644 --- a/packages/wekan-oidc/oidc_server.js +++ b/packages/wekan-oidc/oidc_server.js @@ -42,7 +42,7 @@ OAuth.registerService('oidc', 2, null, function (query) { if (userinfo.ocs) userinfo = userinfo.ocs.data; // Nextcloud hack if (userinfo.metadata) userinfo = userinfo.metadata // Openshift hack - if (debug) console.log('IIII: userinfo:', userinfo); + if (debug) console.log('XXX: userinfo:', userinfo); serviceData.id = userinfo[process.env.OAUTH2_ID_MAP]; // || userinfo["id"]; serviceData.username = userinfo[process.env.OAUTH2_USERNAME_MAP]; // || userinfo["uid"];