Thursday, July 12, 2018

System Administrator Only Delete The Records

trigger SAonlydelete on Account (before delete) {
    List<Profile> PROFILE = [SELECT Id, Name FROM Profile WHERE Id=:userinfo.getProfileId() LIMIT 1];
    String MyProflieName = PROFILE[0].Name;
    for(Account A : Trigger.old){
        if(MyProflieName != 'System Administrator'){
            A.adderror('U R NOT System Administrator');
        }
    }
}

Update The Records Based On Queue Members


Preworks : Create the Queue on Lead object with name "LeadQueue" and select the mumbers.

trigger triggerOnTask on Task (before insert) {
    Group groupDetail = [SELECT Id, Name, DeveloperName, Email, Type FROM Group where Type='Queue' And Name ='LeadQueue' limit 1];
    id SpamOwnerId = groupDetail.Id;
    map<id,GroupMember> Mapuser = new map<id,GroupMember>();
    for(GroupMember Gm : [select g.UserOrGroupId From GroupMember g where groupId =: SpamOwnerId ]){
        Mapuser.put(Gm.UserOrGroupId,Gm);     
    }
    system.debug('Mapuser '+Mapuser);
    for(Task L : Trigger.New){
        if(!Mapuser.containsKey(L.OwnerId)){
            L.addError('You Are Not On the Queue');
        }
    }
 
}