Skip to content

Commit

Permalink
fix(odk): auto-assign form to user(s) on create
Browse files Browse the repository at this point in the history
This commit automatically assigns teh forms to the users on creation of
the form.
  • Loading branch information
jniles committed Jan 28, 2022
1 parent 33f3f2a commit ca899a4
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 45 deletions.
7 changes: 4 additions & 3 deletions server/controllers/admin/odk-central.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ async function setupODKCentralConnection() {
await loadODKCentralSettingsFromDatabase();
}

async function defineUserAsDataCollector(userId) {
async function defineUserAsDataCollector(xmlFormId, userId) {
const { id } = await db.one('SELECT odk_project_id AS id FROM odk_central_integration LIMIT 1;');
return central.api.assignments.assignUserRole(id, odkCentralRoles.dataCollector, userId);
return central.api.forms.assignActorToFormRole(id, xmlFormId, odkCentralRoles.dataCollector, userId);
}

/**
Expand Down Expand Up @@ -333,7 +333,8 @@ async function syncFormsWithCentral() {
for (const user of allAppUsers) { // eslint-disable-line
debug(`Assigning "Data Collector" role (id:${odkCentralRoles.dataCollector}) to ${user.displayName}.`);
try {
await defineUserAsDataCollector(user.id); // eslint-disable-line
const { success }= await defineUserAsDataCollector(xmlFormId, user.id); // eslint-disable-line
debug(`Role assigned to ${user.displayName} with success: ${success}`);
} catch (e) {
debug('User already defined.');
}
Expand Down
5 changes: 2 additions & 3 deletions test/integration/reports/finance/account_report.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ describe(`(${target}) Report Account`, () => {
currency_id : 1,
};

const BAD_REQUEST = 'ERRORS.BAD_REQUEST';

const clone = (object) => JSON.parse(JSON.stringify(object));

it(`GET ${target} should return HTML data for HTML rendering target`, () => {
Expand All @@ -29,7 +27,8 @@ describe(`(${target}) Report Account`, () => {
.catch(helpers.handler);
});

it(`GET ${target} should return PDF data for PDF rendering target`, () => {
it(`GET ${target} should return PDF data for PDF rendering target`, function pdf() {
this.timeout(5000);
const copy = clone(parameters);
copy.renderer = 'pdf';

Expand Down
83 changes: 44 additions & 39 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@
strip-json-comments "^3.1.1"

"@humanwhocodes/config-array@^0.9.2":
version "0.9.2"
resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914"
integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==
version "0.9.3"
resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz#f2564c744b387775b436418491f15fce6601f63e"
integrity sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==
dependencies:
"@humanwhocodes/object-schema" "^1.2.1"
debug "^4.1.1"
Expand Down Expand Up @@ -82,9 +82,9 @@
puppeteer-cluster "^0.22.0"

"@ima-worldhealth/odk-central-api-cjs@^2.2.3":
version "2.3.0"
resolved "https://registry.npmjs.org/@ima-worldhealth/odk-central-api-cjs/-/odk-central-api-cjs-2.3.0.tgz#4bd22e4b6b06ef48da274b1e1e1284f25548fc3e"
integrity sha512-UxqwwtNJ33q9xwNn2fhkbUH9fWjf+lvgEKOC2S5+O2ymCN2eEhIJob1Ro46PzrFgxO1pjjCy2rOiCcVmoidzJw==
version "2.3.2"
resolved "https://registry.npmjs.org/@ima-worldhealth/odk-central-api-cjs/-/odk-central-api-cjs-2.3.2.tgz#3227fda53f2e69addcbdf054af18a20d4a43e0a3"
integrity sha512-IKk5ovm5rljTImFXq8Ya5NGEycL6Uis+sQY9vbYVneqn1mRaTUVGOXfLBazdLLzDd/gfeRNucke4eGeO8/Vm0w==
dependencies:
debug "^4.3.3"
dotenv "^14.2.0"
Expand Down Expand Up @@ -260,9 +260,9 @@
"@sinonjs/commons" "^1.7.0"

"@sinonjs/samsam@^6.0.2":
version "6.0.2"
resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz#a0117d823260f282c04bff5f8704bdc2ac6910bb"
integrity sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==
version "6.1.1"
resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz#627f7f4cbdb56e6419fa2c1a3e4751ce4f6a00b1"
integrity sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==
dependencies:
"@sinonjs/commons" "^1.6.0"
lodash.get "^4.4.2"
Expand Down Expand Up @@ -360,9 +360,9 @@
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==

"@types/node@*", "@types/node@>=10.0.0":
version "17.0.12"
resolved "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz#f7aa331b27f08244888c47b7df126184bc2339c5"
integrity sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==
version "17.0.13"
resolved "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz#5ed7ed7c662948335fcad6c412bb42d99ea754e3"
integrity sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==

"@types/normalize-package-data@^2.4.0":
version "2.4.1"
Expand Down Expand Up @@ -1292,9 +1292,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"

caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286:
version "1.0.30001302"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001302.tgz#da57ce61c51177ef3661eeed7faef392d3790aaa"
integrity sha512-YYTMO+tfwvgUN+1ZnRViE53Ma1S/oETg+J2lISsqi/ZTNThj3ZYBOKP2rHwJc37oCsPqAzJ3w2puZHn0xlLPPw==
version "1.0.30001303"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz#9b168e4f43ccfc372b86f4bc5a551d9b909c95c9"
integrity sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==

caseless@~0.12.0:
version "0.12.0"
Expand Down Expand Up @@ -1344,15 +1344,15 @@ chai-spies@^1.0.0:
integrity sha512-elF2ZUczBsFoP07qCfMO/zeggs8pqCf3fZGyK5+2X4AndS8jycZYID91ztD9oQ7d/0tnS963dPkd0frQEThDsg==

chai@>1.9.0, chai@^4.3.4:
version "4.3.5"
resolved "https://registry.npmjs.org/chai/-/chai-4.3.5.tgz#784cf398a30cd45b8980181ba1a8c866c225b5df"
integrity sha512-0gKhNDL29PUlmwz1CG42p/OaBf1v0YD3oH4//YMS1niT7rLH9tC+lqTgk+SvdbhMLd7ToTtxA61orNBmpSO/DA==
version "4.3.6"
resolved "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c"
integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==
dependencies:
assertion-error "^1.1.0"
check-error "^1.0.2"
deep-eql "^3.0.1"
get-func-name "^2.0.0"
loupe "^2.3.0"
loupe "^2.3.1"
pathval "^1.1.1"
type-detect "^4.0.5"

Expand Down Expand Up @@ -2632,9 +2632,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=

electron-to-chromium@^1.4.17:
version "1.4.53"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.53.tgz#5d80a91c399b44952ef485857fb5b9d4387d2e60"
integrity sha512-rFveSKQczlcav+H3zkKqykU6ANseFwXwkl855jOIap5/0gnEcuIhv2ecz6aoTrXavF6I/CEBeRnBnkB51k06ew==
version "1.4.57"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.57.tgz#2b2766df76ac8dbc0a1d41249bc5684a31849892"
integrity sha512-FNC+P5K1n6pF+M0zIK+gFCoXcJhhzDViL3DRIGy2Fv5PohuSES1JHR7T+GlwxSxlzx4yYbsuzCZvHxcBSRCIOw==

emoji-regex@^7.0.1:
version "7.0.3"
Expand Down Expand Up @@ -2842,9 +2842,9 @@ eslint-import-resolver-node@^0.3.6:
resolve "^1.20.0"

eslint-module-utils@^2.7.2:
version "2.7.2"
resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz#1d0aa455dcf41052339b63cada8ab5fd57577129"
integrity sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==
version "2.7.3"
resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee"
integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==
dependencies:
debug "^3.2.7"
find-up "^2.1.0"
Expand Down Expand Up @@ -3503,9 +3503,9 @@ flatted@^2.0.0:
integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==

flatted@^3.1.0, flatted@^3.2.4:
version "3.2.4"
resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2"
integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
version "3.2.5"
resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==

flush-write-stream@^1.0.2:
version "1.1.1"
Expand Down Expand Up @@ -5585,13 +5585,12 @@ logform@^2.3.2:
safe-stable-stringify "^1.1.0"
triple-beam "^1.3.0"

loupe@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.0.tgz#cfae54d12853592e0ec455af490fd6867e26875e"
integrity sha512-b6TVXtF01VErh8IxN/MfdiWLQmttrenN98PPGS01kym8kGycJ9tqBXD6D+4sNEDhgE83+H0Mk1cVSl0mD1nNSg==
loupe@^2.3.1:
version "2.3.1"
resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz#a2e1192c9f452e4e85089766da10ac8288383947"
integrity sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==
dependencies:
get-func-name "^2.0.0"
type-detect "^4.0.8"

lowercase-keys@2.0.0, lowercase-keys@^2.0.0:
version "2.0.0"
Expand Down Expand Up @@ -6737,9 +6736,9 @@ posix-character-classes@^0.1.0:
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=

postcss-calc@^8.2.0:
version "8.2.2"
resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.2.tgz#9706e7399e8ec8b61a47830dcf1f21391af23373"
integrity sha512-B5R0UeB4zLJvxNt1FVCaDZULdzsKLPc6FhjFJ+xwFiq7VG4i9cuaJLxVjNtExNK8ocm3n2o4unXXLiVX1SCqxA==
version "8.2.3"
resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.3.tgz#53b95ce93de19213c2a5fdd71277a81690ef41d0"
integrity sha512-EGM2EBBWqP57N0E7N7WOLT116PJ39dwHVU01WO4XPPQLJfkL2xVgkMZ+TZvCfapj/uJH07UEfKHQNPHzSw/14Q==
dependencies:
postcss-selector-parser "^6.0.2"
postcss-value-parser "^4.0.2"
Expand Down Expand Up @@ -7677,6 +7676,11 @@ safe-stable-stringify@^1.1.0:
resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a"
integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==

safe-stable-stringify@^2.3.1:
version "2.3.1"
resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73"
integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==

"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
Expand Down Expand Up @@ -9206,16 +9210,17 @@ winston-transport@^4.4.2:
triple-beam "^1.2.0"

winston@^3.4.0:
version "3.4.0"
resolved "https://registry.npmjs.org/winston/-/winston-3.4.0.tgz#7080f24b02a0684f8a37f9d5c6afb1ac23e95b84"
integrity sha512-FqilVj+5HKwCfIHQzMxrrd5tBIH10JTS3koFGbLVWBODjiIYq7zir08rFyBT4rrTYG/eaTqDcfSIbcjSM78YSw==
version "3.5.0"
resolved "https://registry.npmjs.org/winston/-/winston-3.5.0.tgz#b1ef4dbc6d1a7c1b462650070f171abc7ce9eac0"
integrity sha512-OQMbmLsIdVHvm2hSurrYZs+iZNIImXneYJ6pX7LseSMEq20HdTETXiNnNX3FDwN4LB/xDRZLF6JYOY+AI112Kw==
dependencies:
"@dabh/diagnostics" "^2.0.2"
async "^3.2.3"
is-stream "^2.0.0"
logform "^2.3.2"
one-time "^1.0.0"
readable-stream "^3.4.0"
safe-stable-stringify "^2.3.1"
stack-trace "0.0.x"
triple-beam "^1.3.0"
winston-transport "^4.4.2"
Expand Down

0 comments on commit ca899a4

Please sign in to comment.