function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
KhaledZeroKhaledZero 

Block updating some values in User with Trigger

Hey,

I want block change of some values in User with a trigger.

values to block:

LastName, FirstName ,Alias , Username ,Email, CompanyName, Department, Division ,UserRoleId ,Phone ,Extension ,Fax ,MobilePhone ,EmployeeNumber ,Street ,City, PostalCode  ,Country

 

trigger:

trigger UserBlockChange on User (before update) {
    
    if(trigger.IsUpdate){
    		
        
    }

}

 Thx.

Best Answer chosen by Admin (Salesforce Developers) 
sfdcfoxsfdcfox

You could use validation rules to accomplish that task.

 

Regardless, the trigger would generally look like this:

 

trigger UserBlockChange on User (before update) {
  Profile userprofile = [select id,permissionsmanageusers from profile where id = :userinfo.getprofileid()];
  if(!userprofile.permissionsmanageusers) {
    for(User record:Trigger.new) {
      User oldRecord = trigger.oldMap.get(record.Id);
      if(oldRecord.FirstName!=oldRecord.FirstName) {
        record.FirstName.addError('You cannot change this value.');
      }
      if(oldRecord.LastName!=oldRecord.LastName) {
        record.FirstName.addError('You cannot change this value.');
      }
      // Other fields here
    }
  }
}

This trigger allows only administrators permission to change values.