You need to sign in to do that
Don't have an account?
Need Test class for trigger Urgent Plz help
trigger users on User (before insert, before update) {
if(Test.isrunningtest()) {
system.debug('Allowing user create/edit.');
} else {
List<User> oUser = [SELECT Id, Security_user__c, ProfileId, UserName FROM User WHERE Id = :System.UserInfo.getUserId() LIMIT 1];
If(oUser[0].UserName.endsWith('.dev10')){
system.debug('IS DEV USER: Allowing user create/edit.');
} else {
Boolean isSecurityUser = oUser[0].Security_user__c;
if(isSecurityUser) {
} else {
if(Trigger.isUpdate) {
List<Profile> list_pAdmin = [SELECT Id FROM Profile WHERE Name IN ('System Administrator','SL: System Administrator','SL: Sys Admin ','SL: Read Only Admin','SL: Read Only Admin Non ') LIMIT 5];
Set<String> set_pAdmin = new Set<String>();
for(Profile pAdmin : list_pAdmin) {
set_pAdmin.add(pAdmin.Id);
}
for(User oUserRec : Trigger.New) {
if((oUserRec.Id == System.UserInfo.getUserId()) && (!set_pAdmin.contains(oUser[0].ProfileId))) {
system.debug('IS THE USERS OWN RECORD AND THEY ARE NOT A SYS ADMIN: Allowing user create/edit.');
} else {
system.debug('IS NOT A TEST, DEV ENVIRONMENT, A SECURITY USER OR THE USERS OWN RECORD: Forbidding user create/edit.');
oUserRec .addError('You do not have permission to create or edit user records!');
}
}
} else {
for(User oUserRec : Trigger.New) {
system.debug('IS NOT A TEST, DEV ENVIRONMENT, A SECURITY USER OR THE USERS OWN RECORD: Forbidding user create/edit.');
oUserRec .addError('You do not have permission to create or edit user records!');
}
}
}
}
}
}
What is the use case here
Implement some custom permissions around users?
You will not get much coverage as your trigger is written as it bypasses the majority of the code with the first If