Skip to content

Commit 5da8e40

Browse files
add check if user was deleted
1 parent 04d895d commit 5da8e40

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

lib/admin/controllers/eg008UpdateUserProductPermissionProfile.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const validator = require('validator');
99
const { updateUserProductPermissionProfile, getProductPermissionProfiles } = require('../examples/updateUserProductPermissionProfile');
1010
const dsConfig = require('../../../config/index.js').config;
1111
const { getOrganizationId } = require("../getOrganizationId.js");
12+
const { checkUserExistsByEmail } = require("../getData.js");
1213

1314
const eg008UpdateUserProductPermissionProfile = exports;
1415
const eg = 'eg008' // This example reference.;
@@ -31,7 +32,8 @@ eg008UpdateUserProductPermissionProfile.createController = async (req, res) => {
3132
return res.redirect(mustAuthenticate);
3233
}
3334

34-
if (!req.session.clmEmail) {
35+
const userEmail = req.session.clmEmail;
36+
if (!(userEmail && await checkUserExistsByEmail(req, userEmail))) {
3537
return res.render("pages/admin-examples/eg008UpdateUserProductPermissionProfile", {
3638
eg: eg, csrfToken: req.csrfToken(),
3739
title: "Update user product permission profiles using an email address",
@@ -99,8 +101,11 @@ eg008UpdateUserProductPermissionProfile.getController = async (req, res) => {
99101
return res.redirect(mustAuthenticate);
100102
}
101103

104+
await getOrganizationId(req);
105+
106+
const userEmail = req.session.clmEmail;
102107
const sourceFile = (path.basename(__filename))[5].toLowerCase() + (path.basename(__filename)).substr(6);
103-
if (!req.session.clmEmail) {
108+
if (!(userEmail && await checkUserExistsByEmail(req, userEmail))) {
104109
return res.render("pages/admin-examples/eg008UpdateUserProductPermissionProfile", {
105110
eg: eg, csrfToken: req.csrfToken(),
106111
title: "Update user product permission profiles using an email address",
@@ -113,7 +118,6 @@ eg008UpdateUserProductPermissionProfile.getController = async (req, res) => {
113118
}
114119

115120
try {
116-
await getOrganizationId(req);
117121
const args = {
118122
accessToken: req.user.accessToken,
119123
basePath: dsConfig.adminAPIUrl,

lib/admin/controllers/eg009DeleteUserProductPermissionProfile.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const validator = require('validator');
99
const { deleteUserProductPermissionProfile, getProductPermissionProfilesByEmail } = require('../examples/deleteUserProductPermissionProfile');
1010
const dsConfig = require('../../../config/index.js').config;
1111
const { getOrganizationId } = require("../getOrganizationId.js");
12+
const { checkUserExistsByEmail } = require("../getData.js");
1213

1314
const eg009DeleteUserProductPermissionProfile = exports;
1415
const eg = 'eg009' // This example reference.;
@@ -31,7 +32,8 @@ eg009DeleteUserProductPermissionProfile.createController = async (req, res) => {
3132
return res.redirect(mustAuthenticate);
3233
}
3334

34-
if (!req.session.clmEmail) {
35+
const userEmail = req.session.clmEmail;
36+
if (!(userEmail && await checkUserExistsByEmail(req, userEmail))) {
3537
return res.render("pages/admin-examples/eg009DeleteUserProductPermissionProfile", {
3638
eg: eg, csrfToken: req.csrfToken(),
3739
title: "Delete user product permission profiles using an email address",
@@ -92,8 +94,11 @@ eg009DeleteUserProductPermissionProfile.getController = async (req, res) => {
9294
return res.redirect(mustAuthenticate);
9395
}
9496

97+
await getOrganizationId(req);
98+
99+
const userEmail = req.session.clmEmail;
95100
const sourceFile = (path.basename(__filename))[5].toLowerCase() + (path.basename(__filename)).substr(6);
96-
if (!req.session.clmEmail) {
101+
if (!(userEmail && await checkUserExistsByEmail(req, userEmail))) {
97102
return res.render("pages/admin-examples/eg009DeleteUserProductPermissionProfile", {
98103
eg: eg, csrfToken: req.csrfToken(),
99104
title: "Delete user product permission profiles using an email address",
@@ -106,7 +111,6 @@ eg009DeleteUserProductPermissionProfile.getController = async (req, res) => {
106111
}
107112

108113
try {
109-
await getOrganizationId(req);
110114
const args = {
111115
accessToken: req.user.accessToken,
112116
basePath: dsConfig.adminAPIUrl,

lib/admin/getData.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,27 @@ async function getDsAdminGroups(accessToken, accountId, organizationId) {
5151
return dsGroups.ds_groups;
5252
}
5353

54+
async function checkUserExistsByEmail(req, userEmail) {
55+
// Create an API with headers
56+
const dsApiClient = new docusignAdmin.ApiClient();
57+
dsApiClient.setBasePath(`${dsConfig.adminAPIUrl}`);
58+
dsApiClient.addDefaultHeader('Authorization', 'Bearer ' + req.user.accessToken);
59+
60+
usersApi = new docusignAdmin.UsersApi(dsApiClient);
61+
62+
const options = {
63+
email: userEmail
64+
};
65+
const response = await usersApi.getUsers(req.session.organizationId, options);
66+
67+
if(response.users.length > 0 && response.users[0].user_status !== 'closed') {
68+
return true;
69+
}
70+
71+
return false;
72+
}
73+
5474
exports.getOrganizationId = getOrganizationId;
5575
exports.getProductPermissionProfiles = getProductPermissionProfiles;
5676
exports.getDsAdminGroups = getDsAdminGroups;
77+
exports.checkUserExistsByEmail = checkUserExistsByEmail;

0 commit comments

Comments
 (0)