import { Meteor } from 'meteor/meteor'; import { Mongo } from 'meteor/mongo'; import { check } from 'meteor/check'; import { Roles } from 'meteor/roles'; Meteor.methods({ async 'addToRole' (role) { try { const user = await Meteor.userAsync(); let countOfUsers = await Meteor.users.find().countAsync(); if (user) { let userId = user._id; if (countOfUsers > 1) { let addedRole = await Roles.addUsersToRolesAsync(userId, role); } else if (countOfUsers == 1) { let addedRole = await Roles.addUsersToRolesAsync(userId, "systemadmin"); if (addedRole) { await Meteor.callAsync('addUserToTenant', userId, "000001"); } } else { console.log("The count of users didn't seem to work when adding a new user."); } } else { console.log(" ---- No user info found.") } } catch(error) { console.log(" ERROR getting user info on server: " + error); } }, 'edit.userPass' (userId, newPassword) { check(userId, String); check(newPassword, String); const setUsersPassword = async() => { try { const setPass = await Accounts.setPasswordAsync(userId, newPassword); if (setPass) { return setPass; } else { console.log(" Error seeting user password, await returned nothing."); } } catch(error) { console.log(" ERROR setting user's password: " + error); } } }, async 'delete.userFromSys' (userId) { check(userId, String); return await Meteor.users.removeAsync({ _id: userId }); }, async 'update.userEmail' (userId, email) { check(userId, String); check(email, String); return await Meteor.users.updateAsync({ _id: userId }, { $set: { 'emails.0.address': email, } }); }, async 'edit.userRole' (userId, role) { check(userId, String); check(role, String); return await Roles.setUserRolesAsync(userId, role); }, });