Valider 297cac46 rédigé par Bruno Boiget's avatar Bruno Boiget
Parcourir les fichiers

feat(asams): add logs in checkAsams method

parent bbe80e29
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+27 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -2855,6 +2855,12 @@ export const checkAsams = new ValidatedMethod({
    let totalNoMatch = 0;
    let users = [];
    if (userId) {
      logger.info({
        message: i18n.__('api.users.checkAsams'),
        scope: 'system',
        method: 'checkAsams',
        params: { caller: currentUser.username, targetUser: userId },
      });
      // apply asam rules for a particular user
      const user = Meteor.users.findOne(userId, { fields: { _id: 1, emails: 1, awaitingStructure: 1, isActive: 1 } });
      if (!Roles.userIsInRole(this.userId, 'admin')) {
@@ -2876,6 +2882,12 @@ export const checkAsams = new ValidatedMethod({
      }
      users = [user];
    } else {
      logger.info({
        message: i18n.__('api.users.checkAsams'),
        scope: 'system',
        method: 'checkAsams',
        params: { caller: currentUser.username },
      });
      // reapply asam rules for all managed users with isActive = false or awaitingStructure defined
      const usersQuery = { $or: [{ awaitingStructure: { $ne: null } }, { isActive: { $ne: true } }] };
      users = Meteor.users
@@ -2889,12 +2901,26 @@ export const checkAsams = new ValidatedMethod({
        if (structure) {
          // If we have a structure, assign it to user and make them directly active
          const userData = { isActive: true };
          if (asamUser.isActive === false) totalActivated += 1;
          if (asamUser.isActive === false) {
            totalActivated += 1;
            logger.info({
              message: i18n.__('api.users.userActivated'),
              scope: 'system',
              method: 'checkAsams',
              params: { userId: asamUser._id, username: asamUser.username },
            });
          }
          // don't assign structure automatically if awaitingStructure !== structure
          if (!asamUser.awaitingStructure || asamUser.awaitingStructure === structure._id) {
            userData.structure = structure._id;
            userData.awaitingStructure = null;
            totalAccepted += 1;
            logger.info({
              message: i18n.__('api.users.structureSet'),
              scope: 'system',
              method: 'checkAsams',
              params: { userId: asamUser._id, username: asamUser.username, structure: structure.name },
            });
          }
          Meteor.users.update({ _id: asamUser._id }, { $set: userData });
          Meteor.call('users.userUpdated', { userId: asamUser._id, data: userData, token: getToken() }, (err) => {
+3 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -273,6 +273,9 @@
      "invalidUsername": "Invalid username: Platform administrator has been notified of this error",
      "reservedComplement": "This display name complement is not available",
      "displayNameAlreadyExists": "This display name complement is already used by one of your homonyms",
      "checkAsams": "Application of ASAM rules requested",
      "userActivated": "User account activated",
      "structureSet": "User structure set",
      "labels": {
        "id": "User Id",
        "username": "User Name",
+3 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -272,6 +272,9 @@
      "invalidUsername": "Nom d'utilisateur invalide: L'administrateur de la plateforme a été notifié du problème",
      "reservedComplement": "Ce complément de nom n'est pas disponible",
      "displayNameAlreadyExists": "Ce complément de nom est déjà utilisé par un de vos homonymes",
      "checkAsams": "Application des règles ASAM demandée",
      "userActivated": "Compte utilisateur activé",
      "structureSet": "Structure de l'utilisateur définie",
      "labels": {
        "id": "Id Utilisateur",
        "username": "Nom d'utilisateur",