Skip to content

Commit 022de80

Browse files
committed
feat: skip onboarding for users with topcoder customer role
Signed-off-by: Rakib Ansary <[email protected]>
1 parent 5e08f5e commit 022de80

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

web-assets/auth0/prod-tenant/rules/onboardingChecklist.js

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
function (user, context, callback) {
22
if (context.clientID === configuration.CLIENT_ACCOUNTS_LOGIN) {
3-
console.log("rule:onboarding-checklist:enter");
3+
//console.log("rule:onboarding-checklist:enter");
44

55
if (context.redirect) {
6-
console.log("rule:onboarding-checklist:exiting due to context being a redirect");
6+
//console.log("rule:onboarding-checklist:exiting due to context being a redirect");
77
return callback(null, user, context);
88
}
99

@@ -13,19 +13,26 @@ function (user, context, callback) {
1313
const isSocial = _.get(user, "identities[0].isSocial");
1414
const connection = _.get(user, "identities[0].connection");
1515

16-
console.log("rule:onboarding-checklist: isSocial/connection", isSocial + "/" + connection);
17-
console.log("rule:onboarding-checklist: WIPRO_SS_AZURE_AD_CONNECTION_NAME", configuration.WIPRO_SSO_AZURE_AD_CONNECTION_NAME);
16+
//console.log("rule:onboarding-checklist: isSocial/connection", isSocial + "/" + connection);
17+
//console.log("rule:onboarding-checklist: WIPRO_SS_AZURE_AD_CONNECTION_NAME", configuration.WIPRO_SSO_AZURE_AD_CONNECTION_NAME);
1818

1919
if (_.includes([configuration.WIPRO_SSO_AZURE_AD_CONNECTION_NAME], connection)) {
20-
console.log("rule:onboarding-checklist:exiting due to user being an enterprise user.");
20+
//console.log("rule:onboarding-checklist:exiting due to user being an enterprise user.");
2121
return callback(null, user, context);
2222
}
2323

2424
const handle = context.idToken[global.AUTH0_CLAIM_NAMESPACE + 'handle'];
25-
console.log("rule:onboarding-checklist: fetch onboarding_checklist for email/handle: ", user.email, handle);
25+
//console.log("rule:onboarding-checklist: fetch onboarding_checklist for email/handle: ", user.email, handle);
2626

27-
if (handle == null) {
28-
console.log("rule:onboarding-checklist: exiting due to handle being null.");
27+
if (handle === null) {
28+
//console.log("rule:onboarding-checklist: exiting due to handle being null.");
29+
return callback(null, user, context);
30+
}
31+
32+
const roles = context.idToken[global.AUTH0_CLAIM_NAMESPACE + 'roles'];
33+
34+
if (roles && roles.includes('Topcoder Customer')) {
35+
console.log("rule:onboarding-checklist:exiting due to user being a customer.");
2936
return callback(null, user, context);
3037
}
3138

@@ -36,7 +43,7 @@ function (user, context, callback) {
3643
// For users created before thresholdDate, we don't want to check onboarding_checklist
3744
// This is because older profiles might not have onboarding_checklist data and they don't need to see the onboarding_wizard
3845
if (createdAt && !thresholdDate.isBefore(moment(createdAt))) {
39-
console.log("rule:onboarding-checklist: user created before threshold date. Not checking onboarding_checklist.");
46+
//console.log("rule:onboarding-checklist: user created before threshold date. Not checking onboarding_checklist.");
4047
return callback(null, user, context);
4148
}
4249
} catch (err) {
@@ -48,18 +55,18 @@ function (user, context, callback) {
4855
*/
4956
const getToken = function(callback) {
5057
if (global.M2MToken) {
51-
console.log('rule:onboarding-checklist:M2M token is available');
58+
//console.log('rule:onboarding-checklist:M2M token is available');
5259
const jwt = require('jsonwebtoken');
5360
const decoded = jwt.decode(global.M2MToken);
5461
const exp = moment.unix(decoded.exp);
5562

5663
if (exp > new Date()) {
57-
console.log('rule:onboarding-checklist:M2M token is valid. Reusing...');
64+
//console.log('rule:onboarding-checklist:M2M token is valid. Reusing...');
5865
return callback(null, global.M2MToken);
5966
}
6067
}
6168

62-
console.log('rule:onboarding-checklist:Fetching new M2M token');
69+
//console.log('rule:onboarding-checklist:Fetching new M2M token');
6370
request.post({
6471
url: `https://auth0proxy.${configuration.DOMAIN}/token`,
6572
headers: 'content-type: application/json',
@@ -76,14 +83,14 @@ function (user, context, callback) {
7683
}
7784

7885
global.M2MToken = body.access_token;
79-
console.log('rule:onboarding-checklist:setting the M2MToken globally', global.M2MToken);
86+
//console.log('rule:onboarding-checklist:setting the M2MToken globally', global.M2MToken);
8087
return callback(null, global.M2MToken);
8188
});
8289
};
8390

8491
getToken(function(err, token) {
8592
if (err) {
86-
console.log('rule:onboarding-checklist:failed to fetch M2M token.');
93+
//console.log('rule:onboarding-checklist:failed to fetch M2M token.');
8794
return callback(null, user, context);
8895
}
8996
global.AUTH0_CLAIM_NAMESPACE = "https://" + configuration.DOMAIN + "/";
@@ -114,7 +121,7 @@ function (user, context, callback) {
114121
let override = 'show';
115122

116123
for (let checklistTrait of onboardingChecklistTrait.data) {
117-
if (checklistTrait.onboarding_wizard != null) {
124+
if (checklistTrait.onboarding_wizard !== null) {
118125
if ( checklistTrait.onboarding_wizard.status !== 'pending_at_user' || // any non pending_at_user status indicates OB was either seen or completed and can be skipped
119126
checklistTrait.onboarding_wizard.skip ||// for certain signup routes skip is set to true, and thus onboarding wizard needn't be shown
120127
checklistTrait.onboarding_wizard.override === 'skip')

0 commit comments

Comments
 (0)