/** * @description : This is the UserTriggerHelper class. * This class is the main helper for User Trigger Handler and helps in User related functionality * @author : Prateek Gupta * @last modified on : 02-07-2024 * @last modified by : ChangeMeIn@UserSettingsUnder.SFDoc **/ public class UserTriggerHelper { /** * userMasterBeforeCallHandles: This method called from the UserTriggerHandler class to perform * before Insert and before Update operations. * @return null * @param userList List of User records to be processed. * @description : Ensures that PowerPartner users have the SF Content User permission. */ public static void userMasterBeforeCall(List userList){ for (User u : userList){ //all dealer users should always have CRM content user permission if (u.UserType == 'PowerPartner' && !u.UserPermissionsSFContentUser) { u.UserPermissionsSFContentUser = true; } } } /** * userMasterAfterCall:This method called from the UserTriggerHandler class to perform after Insert operations. * @return null * @param userList List of User records that were inserted. * @param newMap Map of User Ids to User records for the new state. * @description : Calls methods to insert district group user members and assign a permission set to users. */ public static void userMasterAfterCall(List userList, map newMap){ CmsGroupsDistrictHelper.insertDistrictGroupUserMembers(newMap); PermissionSetAssignUser.userAssignWRRPermSet(userList); } /** * userMasterAfterUpdate:called from the UserTriggerHandler class to perform after Update operations * @return null * @param userList List of User records that were updated. * @param newMap Map of User Ids to User records for the new state. * @param oldMap Map of User Ids to User records for the old state. * @description : Updates district group user members, assigns a permission set, and * deletes user package licenses based on user deactivation. */ public static void userMasterAfterUpdate(List userList, map newMap,map oldMap){ CmsGroupsDistrictHelper.updateDistrictGroupUserMembers(newMap, oldMap); PermissionSetAssignUser.userAssignWRRPermSet(userList); List List_User = new List(); List uplDelList = new List(); for(User u:userList){ if(!u.isActive && u.isactive != oldmap.get(u.id).isactive) { List_User.add(u.id); } } if(List_User.size()>0) { for(UserPackageLicense upl:[SELECT id,UserId, PackageLicenseId FROM UserPackageLicense WHERE packagelicenseid IN ('05013000000H2oRAAS','05013000000H2oHAAS') AND UserId IN: List_User]) { uplDelList.add(upl); } } if(uplDelList.size()>0) { List userPackageLicenseDeleteResult = Database.delete(uplDelList, false); for (Database.DeleteResult result : userPackageLicenseDeleteResult) { if (!result.isSuccess()) { String errorDetails = ''; errorDetails += 'Id: ' + result.getId(); errorDetails += ' Messages: '; for (Database.Error error : result.getErrors()) { errorDetails += ' Status Code=' + error.getStatusCode(); errorDetails += ' Error Message=' + error.getMessage(); } Logger.addError('Error when Removing UserPackageLicense', errorDetails); } } } } /** * portalUserRole:Processes portal user roles based on account information. * @return null * @param userList List of User records that were inserted. * @description : Manages the assignment of roles to portal users based on their account and partner role. */ public static void portalUserRole(List userList){ map mapUserIdRoleId = new map(); List accountIds = new List(); for (User u : userList) { if (u.AccountId != null) { accountIds.add(u.AccountId); } } if (accountIds.isEmpty()) { return; } map> userRole = new map>(); for (UserRole objUserRole : [SELECT id, PortalAccountId, Name FROM UserRole WHERE PortalAccountId IN: accountIds]) { if (!userRole.containsKey(objUserRole.PortalAccountId)){ List userRoleList = new List(); userRoleList.add(objUserRole); userRole.put(objUserRole.PortalAccountId, userRoleList); } else { List userRoleList = userRole.get(objUserRole.PortalAccountId); userRoleList.add(objUserRole); userRole.put(objUserRole.PortalAccountId, userRoleList); } } for (User u : userList) { if (u.AccountId != null && userRole.get(u.AccountId) != null) { List uR = userRole.get(u.AccountId); if ('ALL_SFPARTNER_MANAGER' == u.Partner_Role__c) { for(UserRole q : uR){ if (q.Name.endsWith('Manager')){ mapUserIdRoleId.put(u.Id, q.id ); } } } else if ('ALL_SFPARTNER_EXECUTIVE' == u.Partner_Role__c) { for(UserRole q : uR){ if (q.Name.endsWith('Executive')){ mapUserIdRoleId.put(u.Id, q.id ); } } } else if ('ALL_SFPARTNER_PARTNER' == u.Partner_Role__c) { for(UserRole q : uR){ if (q.Name.endsWith('User')){ mapUserIdRoleId.put(u.Id, q.id ); } } } else { for(UserRole q : uR){ if (q.Name.endsWith('User')){ mapUserIdRoleId.put(u.Id, q.id ); } } } } } if (!UserUpdateHelper.inFutureContext && mapUserIdRoleId.size()>0 && System.IsBatch() == false && System.isFuture() == false) { UserUpdateHelper.updateUserIdRoleId(mapUserIdRoleId); } } /** * commitmentPermissionSetProcessorAfterUpdate:Handles logic after update for commitment permission set. * @return null * @param userList List of User records that were updated. * @param oldMap Map of User Ids to User records for the old state. * @description : Processes permission set assignments based on user role changes. */ public static void commitmentPermissionSetProcessorAfterUpdate(List userList,Map oldmap){ PermissionSet ps; try{ //Commentted Licence.Name criteria by Ambrina on 03rd MAR 2023 :: As there is no such permissionset with Gold Partner license type ps = [SELECT Id FROM PermissionSet WHERE Name = 'Commitment_Dealer_Approvers' /*AND License.Name = 'Gold Partner'*/ LIMIT 1]; }catch (system.queryException e){ String errorDetails = 'Commitment Dealer Approvers permission set doesn\'t exist.'; Logger.addError('Error when querying PermissionSet', errorDetails); } if (ps != null){ list userRoleIdList = new list(); map roleMap = new map(); for (User u : userList){ userRoleIdList.add(u.UserRoleId); } for (UserRole r : [SELECT Id, Name FROM UserRole WHERE Id IN :userRoleIdList]){ roleMap.put(r.Id, r); } list psaList = new list(); set usersToDeleteSet = new set(); list psaToDeleteList = new list(); for (User u : userList){ if (u.UserRoleId != null){ if (u.UserRoleId != oldmap.get(u.Id).UserRoleId){ if ((roleMap.get(u.UserRoleId).Name.contains('Partner Manager') || roleMap.get(u.UserRoleId).Name.contains('Partner Executive')) && u.UserType == 'PowerPartner'){ PermissionSetAssignment psa = new PermissionSetAssignment(); psa.AssigneeId = u.Id; psa.PermissionSetId = ps.Id; psaList.add(psa); usersToDeleteSet.add(u.Id); }else if (roleMap.get(u.UserRoleId).Name.contains('Partner User')){ usersToDeleteSet.add(u.Id); } } } } if (!usersToDeleteSet.isEmpty()){ for (PermissionSetAssignment psa : [SELECT Id FROM PermissionSetAssignment WHERE PermissionSetId = :ps.Id AND AssigneeId IN :usersToDeleteSet]){ psaToDeleteList.add(psa); } if (!psaToDeleteList.isEmpty()){ List PermissionSetAssignmentDeleteResult = Database.delete(psaToDeleteList, false); for (Database.DeleteResult result : PermissionSetAssignmentDeleteResult) { if (!result.isSuccess()) { String errorDetails = ''; errorDetails += 'Id: ' + result.getId(); errorDetails += ' Messages: '; for (Database.Error error : result.getErrors()) { errorDetails += ' Status Code=' + error.getStatusCode(); errorDetails += ' Error Message=' + error.getMessage(); } Logger.addError('Error when Removing Commitment_Dealer_Approvers PermissionSet', errorDetails); } } } } if (!psaList.isEmpty()){ List PermissionSetAssignmentInsertResult = Database.insert(psaList, false); for (Database.SaveResult result : PermissionSetAssignmentInsertResult) { if (!result.isSuccess()) { String errorDetails = ''; errorDetails += 'Id: ' + result.getId(); errorDetails += ' Messages: '; for (Database.Error error : result.getErrors()) { errorDetails += ' Status Code=' + error.getStatusCode(); errorDetails += ' Error Message=' + error.getMessage(); } Logger.addError('Error while assigning the Commitment_Dealer_Approvers PermissionSet', errorDetails); } } } } } /** * commitmentPermissionSetProcessorAfterInsert:Handles logic after insert for commitment permission set. * @return null * @param userList List of User records that were inserted. * @description : Processes permission set assignments for newly inserted users. */ public static void commitmentPermissionSetProcessorAfterInsert(List userList){ PermissionSet ps; try{ //Commentted Licence.Name criteria by Ambrina on 03rd MAR 2023 :: As there is no such permissionset with Gold Partner license type ps = [SELECT Id FROM PermissionSet WHERE Name = 'Commitment_Dealer_Approvers' /*AND License.Name = 'Gold Partner'*/ LIMIT 1]; }catch (system.queryException e){ String errorDetails = 'Commitment Dealer Approvers permission set doesn\'t exist.'; Logger.addError('Error when querying PermissionSet', errorDetails); } if (ps != null){ list userRoleIdList = new list(); map roleMap = new map(); for (User u : userList){ userRoleIdList.add(u.UserRoleId); } for (UserRole r : [SELECT Id, Name FROM UserRole WHERE Id IN :userRoleIdList]){ roleMap.put(r.Id, r); } list psaList = new list(); list psaToDeleteList = new list(); for (User u : userList){ if (u.UserRoleId != null){ system.debug('ROLE MAP: ' + roleMap.get(u.UserRoleId).Name); system.debug('USER TYPE: ' + u.UserType); if ((roleMap.get(u.UserRoleId).Name.contains('Partner Manager') || roleMap.get(u.UserRoleId).Name.contains('Partner Executive')) && u.UserType == 'PowerPartner'){ PermissionSetAssignment psa = new PermissionSetAssignment(); psa.AssigneeId = u.Id; psa.PermissionSetId = ps.Id; psaList.add(psa); } } } if (!psaList.isEmpty()){ List PermissionSetAssignmentInsertResult = Database.insert(psaList, false); for (Database.SaveResult result : PermissionSetAssignmentInsertResult) { if (!result.isSuccess()) { String errorDetails = ''; errorDetails += 'Id: ' + result.getId(); errorDetails += ' Messages: '; for (Database.Error error : result.getErrors()) { errorDetails += ' Status Code=' + error.getStatusCode(); errorDetails += ' Error Message=' + error.getMessage(); } Logger.addError('Error while assigning the Commitment_Dealer_Approvers PermissionSet', errorDetails); } } } } } /** * portalUserProfile:Processes portal user profiles based on business functions. * @return null * @param userList List of User records to be processed. * @description : Sets the profile for portal users based on their primary business function. */ public static void portalUserProfile(List userList){ Profile defaultProfile = Properties.PROFILE_DEALER_USER; List businessFunctions = new List(); for (User u : userList) { if (u.Primary_Business_Function__c != null) { businessFunctions.add(u.Primary_Business_Function__c); } } map mapBusinessFunctionToProfile = new map(); if (!businessFunctions.isEmpty()) { map mapBusinessFunctionToProfileName = new map(); for (Passport_Profile_Mapping__c ppm : [SELECT name, Partner_Profile__c FROM Passport_Profile_Mapping__c WHERE name IN: businessFunctions]) { mapBusinessFunctionToProfileName.put(ppm.name, ppm.Partner_Profile__c); } map profileMap = new map(); for (Profile p : [SELECT id, name FROM Profile WHERE name IN: mapBusinessFunctionToProfileName.values()]) { profileMap.put(p.name, p); } for (String key : mapBusinessFunctionToProfileName.keyset()) { mapBusinessFunctionToProfile.put(key, profileMap.get(mapBusinessFunctionToProfileName.get(key))); } } for (User u : userList) { if (u.ContactId != null) { //Setting the Profile if (u.Primary_Business_Function__c != null && mapBusinessFunctionToProfile.get(u.Primary_Business_Function__c) != null) { u.ProfileId = mapBusinessFunctionToProfile.get(u.Primary_Business_Function__c).Id; } else { //Assign to Default Profile u.ProfileId = defaultProfile.Id; } } } } /** * blacklistWordFilterOnUserStatus:Filters user status based on a blacklist. * @return null * @param userList List of User records to be filtered. * @param oldMap Map of User Ids to User records for the old state. * @description : Filters user statuses based on a blacklist. */ public static void blacklistWordFilterOnUserStatus(List userList,Map oldmap){ List usersWithStatusChanges = new List(); //only test for blacklist filtering if the trigger was executed //because of a status change for(User u : userList){ if(UserHelper.checkCurrentStatus(u,oldmap)) usersWithStatusChanges.add(u); } if(!usersWithStatusChanges.isEmpty()){ new BlacklistFilterDelegate().filterUserStatus(usersWithStatusChanges); } } /** * addPortalUserToGroup: Adds portal users to a specified group. * @return null * @param userList List of User records to be processed. * @description : Adds portal users to a group. */ public static void addPortalUserToGroup(List userList){ List usrId = new List(); for (User u : userList) { if (u.ContactId != null) { usrId.add(u.id); } } if (!usrId.isEmpty()) { AddPortalUserToGroupHelper.addGroupMember(usrId); } } /** * userDoNotDeploy: Prevents deployment for specified users in certain conditions. * @return null * @param userList List of User records to be processed. * @description : Prevents deployment of specific users based on email addresses. */ public static void userDoNotDeploy(List userList){ if (UserInfo.getOrganizationId() != '00D30000000MWOL' && !System.isFuture()) { for (User u : userList){ if (u.Email != null && !u.Email.contains('.invalid') //START BYPASS LIST //External && !u.Email.contains('suganya.senguttuvan@doosan.com') //SoftClouds Resource added by Zia && !u.Email.contains('sridharan.subramanian@doosan.com') //SoftClouds Resource added by Zia && !u.Email.contains('tarannum.sayed@doosan.com') //SoftClouds Resource added by Zia && !u.Email.contains('ziauddin.mohammed@doosan.com') //SoftClouds Resource added by Marcus && !u.Email.contains('rakesh.kumar1@doosan.com') //SoftClouds Resource added by Marcus && !u.Email.contains('prateek.gupta@doosan.com') //SoftClouds Resource added by Marcus && !u.Email.contains('venkateshvarlu.c@doosan.com') //SoftClouds Resource added by Marcus && !u.Email.contains('varunkumar.kaithi@doosan.com') //SoftClouds Resource added by Venkateswarlu Chirala && !u.Email.contains('eswara.saiakula@doosan.com') //SoftClouds Resource added by Venkateswarlu Chirala && !u.Email.contains('mohammed.ghouse@doosan.com') //SoftClouds Resource added by Venkateswarlu Chirala && !u.Email.contains('sanchita.deshpande@doosan.com') //SoftClouds Resource added by Marcus && !u.Email.contains('aijaz.shaik@doosan.com') //SoftClouds Resource added by Marcus && !u.Email.contains('sundar.viswanathan@doosan.com') //SoftClouds Resource added by Marcus && !u.Email.contains('cmoran@tbscg.com') //added by sandhirasegaran - INC000001004952 - Interwoven tester && !u.Email.contains('saravanan.eswaran@doosan.com') //added by sandhirasegaran - SFDC-378 - QA Team && !u.Email.contains('rajkumar.s1@doosan.com') //added by sandhirasegaran - SFDC-378 - QA Team && !u.Email.contains('deepakkumar.s@doosan.com') //added by sandhirasegaran - SFDC-378 - QA Team && !u.Email.contains('mindy.hogness@doosan.com') //added by sandhirasegaran - SR0000001150332 && !u.Email.contains('kyle.hanson@doosan.com') //added by sandhirasegaran - SR0000001171137 && !u.Email.contains('senthil.contractor@doosan.com') //added by sandhirasegaran && !u.Email.contains('mark@clearmdm.com') // added by Suda for ClearMDM project && !u.Email.contains('cadams@audit9.com') // added by Suda for ClearMDM project && !u.Email.contains('ebarbeau@globalz.com') // added by Cane for ClearMDM project && !u.Email.contains('apuig@tbscg.com') // added by Suda for Engima //Internal && !u.Email.contains('david.stone') && !u.Email.contains('enigma') //added by Suda for Passport replatform && !u.Email.contains('jim.barrett') //Global Portal Systems Manager && !u.Email.contains('ryan.stadther') //Salesforce Admin && !u.Email.contains('erik.jorgenson') //NA Service Admin && !u.Email.contains('sjlombardo') //Passport Admin && !u.Email.contains('patrick.mineer') //Resource Hub Project Manager && !u.Email.contains('gregory.hagen') //DSIA Salesforce Dev && !u.Email.contains('james.volk') //DSIA OBI && !u.Email.contains('@tibco.com') //MDM Master Data Management && !u.Email.contains('allison.wilson') //added by Ryan 04/23/2015 - SFDC BPA && !u.Email.contains('nate.scherr@doosan.com') //added by Sundog - Anthony 06/08/2015 && !u.Email.contains('jeremy.dalebout') //added by Ryan 05/08/2015 - DSIA && !u.Email.contains('christie.johannsen') //added by Ryan 05/08/2015 - DSIA && !u.Email.contains('@apttus.com') //added by ryan for CPQ 06/02/2015 - Apttus Support && !u.Email.contains('sfdc-support@doosan.com') //added by Ryan - Shared Inbox && !u.Email.contains('sfdc-qa1@doosan.com') //added by Ryan - Shared Inbox && !u.Email.contains('sfdc-qa2@doosan.com') //added by Ryan - Shared Inbox && !u.Email.contains('sfdc-preprod@doosan.com') //added by Ryan - Shared Inbox && !u.Email.contains('dld80999995209@doosan.com') //added by Ryan - OBI Distribution List && !u.Email.contains('brianna.charles') //added by jim b. 7/25/16 && !u.Email.contains('garrett.stein') //added by jim /01/23/2017 && !u.Email.contains('alissa.bosse') //added by jim /02/07/2017 && !u.Email.contains('bobcatsalesandmarketing@bobcat.com') //added by Ryan - Marketing Coops && !u.Email.contains('nick.polsfuss@doosan.com') //added by Ryan - Marketing Coops && !u.Email.contains('brianne.hill@doosan.com') //added by Ryan - Marketing Coops && !u.Email.contains('kirby.anderson@doosan.com') //added by Ryan - Heavy OM && !u.Email.contains('adam.russell@doosan.com') //added by Ryan - Heavy OM && !u.Email.contains('nathan.heinrich@doosan.com') //added by Chuck - NDSU Task Project && !u.Email.contains('juston.thompson@doosan.com') //added by Ryan - SFDC-369 && !u.Email.contains('lee.jordheim@doosan.com') //added by Ryan - NA Leads Testing && !u.Email.contains('john.lill@doosan.com') //added by Jim - Testing && !u.Email.contains('ania.stawiarska@doosan.com')//added by Mubarak - Request from Alison && !u.Email.contains('suzana.aleksovska@doosan.com')//added by Mubarak - Request from Alison && !u.Email.contains('sandra.digregorio@doosan.com')//added by Mubarak - Request from Alison && !u.Email.contains('scott.greff@doosan.com')//added by Aaron Olson - for testing && !u.Email.contains('linda.schoepp@doosan.com')//added by Aaron Olson - for testing && !u.Email.contains('srinivasa.g@tavant.com')//added by Badri Challa - SFDC-1343 && !u.Email.contains('gurditta.garg@tavant.com')//added by Badri Challa - SFC-1343 && !u.Email.contains('nathan.heinrich@doosan.com')//added by Badri Challa - SFC-1316 && !u.Email.contains('rebekah.lee')//added by jim b. && !u.Email.contains('robert.waletzko@doosan.com') //added by Aaron Olson && !u.Email.contains('robert.hoffman@doosan.com') //added by Aaron Olson && !u.Email.contains('jolene.muscha@doosan.com') // added by Badri Challa 12/14 && !u.Email.contains('belinda.forknell@doosan.com')// added by Badri Challa 12/14 && !u.Email.contains('jim_barrett2@yahoo.com') //added by Aaron Olson 2/21 && !u.Email.contains('katie.lemar') //added by Aaron Olson 2/23 && !u.Email.contains('agawande@apttus.com') && !u.Email.contains('amber.dekrey@doosan.com') && !u.Email.contains('jeahyo.jung@doosan.com') && !u.Email.contains('sandsekar@gmail.com') && !u.Email.contains('swarnaja.vatti@tavant.com') //BA user per Allison Wilson 8/8/17 && !u.Email.contains('jimbarrett2532@gmail.com') && !u.Email.contains('deb.luebchow@doosan.com') && !u.Email.contains('sfdc.system.user@doosan.com') && !u.Email.contains('hormese@standav.com') && !u.Email.contains('jolene.muscha@doosan.com') //added by Senthil for Co-op test && !u.Email.contains('mary.seiffert@doosan.com') //added by Senthil for Co-op test && !u.Email.contains('bobcatinternaluser@gmail.com') //added by Senthil for Co-op test && !u.Email.contains('bobcatdealeruser@gmail.com') //added by jim for Co-op test && !u.Email.contains('bobcatexternaluser1@gmail.com') //added by Madhavi for Floorplan Extension test && !u.Email.contains('bobcatexternaluser2@gmail.com') //added by Madhavi for Floorplan Extension test && !u.Email.contains('sandhya.katta@tavant.com') //added by jim && !u.Email.contains('kristal.kuhlaltendorf@doosan.com') //added by jim && !u.Email.contains('john.rensberger@doosan.com') //added by jim && !u.Email.contains('dld80999995058@doosan.com') //added by jim && !u.Email.contains('dld80999995376@doosan.com') //added by jim && !u.Email.contains('surveygizmo') //added by aaron && !u.Email.contains('garrett.stein@doosan.com') //added by Senthil - GSR# INC000010284465 && !u.Email.contains('robbie.lindstrom@doosan.com') && !u.Email.contains('ralph.johnson@doosan.com') // added by Madhavi for Extended Warranty Opportunity && !u.Email.contains('julie.miller@doosan.com') // added by Madhavi for Extended Warranty Opportunity && !u.Email.contains('nate.heinrich@doosan.com')// added Jim B. && !u.Email.contains('gitaanjali.r@doosan.com')// added by Senthil && !u.Email.contains('sfdc-support@doosan.com')// added Jim B. && !u.Email.contains('sfdc-preprod@doosan.com')// added Aaron O && !u.Email.contains('keshav.reddy@doosan.com')// added Jim B. && !u.Email.contains('hybrisqa@doosan.com')// added by Senthil - Requested by Gitaanjali for testing && !u.Email.contains('marsha.houston@doosan.com')// added by Senthil && !u.Email.contains('troy.underhill@doosan.com')// added by Senthil && !u.Email.contains('jonah.schmidt@doosan.com')// added by Senthil && !u.Email.contains('chad.kapfer@doosan.com')// added by Senthil && !u.Email.contains('olivier.cristol@doosan.com')// added by Senthil && !u.Email.contains('nathan.dykema@doosan.com')// added by Senthil && !u.Email.contains('jake.martel@doosan.com')// added by Senthil && !u.Email.contains('sue.gackle@doosan.com')// added by Senthil && !u.Email.contains('sfdc-preprod@doosan.com')// added by jim && !u.Email.contains('carolineh@2rm.com')// added by ao && !u.Email.contains('bburns@2rm.com')// added by ao && !u.Email.contains('lsorensen@2rm.com')// added by ao && !u.Email.contains('SFDCQA2@doosan.com')// added by ao && !u.Email.contains('bryce.roberson@doosan.com')// added by Badri && !u.Email.contains('vijayelisha.contractor@doosan.com') // added by Badri && !u.Email.contains('ben.rodriguez@doosan.com')// added by ao && !u.Email.contains('nathan.cain@doosan.com')// added by Badri && !u.Email.contains('william.zak@doosan.com')// added by Badri && !u.Email.contains('john.dickey@doosan.com')// added by Badri && !u.Email.contains('matthew.ayers@doosan.com')// added by Badri && !u.Email.contains('jw.seol@doosan.com')// added by Badri && !u.Email.contains('jennifer.cho@doosan.com')// added by Badri && !u.Email.contains('benjamin.criss@doosan.com')// added by Badri && !u.Email.contains('@thesudas.net')// added by Suda && !u.Email.contains('anthony.suda@doosan.com')// added by Robbie && !u.Email.contains('sanggu.kim@doosan.com')// added by Badri && !u.Email.contains('youngwoo1.kim@doosan.com')// added by Badri && !u.Email.contains('dan.steinlicht@doosan.com')// added by Badri && !u.Email.contains('jeffrey.cox')// added by Anthony for WO2000000614161 && !u.Email.contains('carl.wieland@doosan.com') // Wating on Parts Epic && !u.Email.contains('robert.waletzko@doosan.com') // Wating on Parts Epic && !u.Email.contains('jeff.sauer@doosan.com') // Wating on Parts Epic && !u.Email.contains('dana.nelson@doosan.com') // Wating on Parts Epic && !u.Email.contains('andrew.johnson@doosan.com') // Wating on Parts Epic && !u.Email.contains('ryan.pruess@doosan.com') // Wating on Parts Epic && !u.Email.contains('heather.messmer@doosan.com') // && !u.Email.contains('dan.steinlicht@doosan.com') // && !u.Email.contains('dana.nelson@doosan.com') // && !u.Email.contains('DLD80999995209@doosan.com') // Added by Suda - for the OBI team && !u.Email.contains('jeff.olson-tingelstad@doosan.com') // Added by Suda && !u.Email.contains('bryce.roberson@doosan.com') // Added by Bryce && !u.Email.contains('jeremy.levy') // Added by Suda for SF Maps && !u.Email.contains('jhoneycutt') // Added by Suda for SF Maps && !u.Email.contains('ademeter') // Added by Suda for SF Maps && !u.Email.contains('anarayanan') // Added by Suda for SF Maps/Lead Routing && !u.Email.contains('pdevalapalli@conga.com') // Added by Badri for Apptus Support team && !u.Email.contains('jdickow@tweddle.com') // Added by Suda for TSP && !u.Email.contains('joey.schwab@doosan.com') // Added by Thiru for WO2000000654216 && !u.Email.contains('mindy.hogness@doosan.com') // Added by Bryce R. && !u.Email.contains('lucie.kanokova@doosan.com') // Added by Suda && !u.Email.contains('jason.jordahl') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('jeremy.schmidt') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('adam.holte') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('john.wittenberg') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('carl.wieland') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('robert.backstrom') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('tom.bodlak') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('james.voegerl') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('nicolas.ellefson') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('olivier.gouletleduc') // Added by Suda for Dealer Assignment UAT && !u.Email.contains('lynelle.lindemyer@doosan.com') // Added by Suda && !u.Email.contains('ciaran.mcconville@doosan.com') //Added by Suda && !u.Email.contains('bryan.zent@doosan.com') //Added by Suda && !u.Email.contains('bhaskar.prasanth@doosan.com') //Added by Suda && !u.Email.contains('d.oneill@doosan.com') //Added by Suda && !u.Email.contains('integration-support@doosan.com') //Added by Suda && !u.Email.contains('keith.johnson') //Added by Suda && !u.Email.contains('alex.meier') //Added by Suda && !u.Email.contains('hayden.schulte@doosan.com') //Added by Suda for Rebate && !u.Email.contains('zach.mitzel@doosan.com') //Added By Suda && !u.Email.contains('revathy.haridas@doosan.com') //Added by Venkateswarlu Chirala && !u.Email.contains('sheryl.altobell@doosan.com') //Added By Suda && !u.Email.contains('sriharsha.kothamasu@doosan.com') //Added by Revathy Haridas for Bobcat modrnztn project //END BYPASS LIST ) { u.Email = u.Email + '.invalid'; } } } } }