You need to sign in to do that
Don't have an account?
sfg1
Disable or Hide commandbutton for two public groups in visualforce page
I want to disable or hide commandbutton for users belong to two public groups "MMC: L1" and "MMC: L2". Please guide me.
VF page:
<apex:pageBlockButtons >
<apex:commandButton value="Save & Unlock" action="{!saveAndUnlock}" styleClass="saveButton"/>
</apex:pageBlockButtons>
Controller:
public PageReference saveAndUnlock() {
if(!isNotAllwToSave())
return null;
if(!isOkToSave())
return null;
// update medical chart record...
this.codingChart.Record_Lock__c = false;
codingChart.Record_Lock_User__c = null;
try {
this.codingChart.Record_Lock__c = false;
this.codingChart.Record_Lock_User__c = null;
this.codingChart.Status__c = selectedStatusOption;
this.codingChart.Saved_Record_Status_Check__c = false;
update this.codingChart;
saveDxCodes();
} catch(Exception ex) {
Apexpages.addMessages(ex);
return null;
}
deleteWorkingCodes();
return new PageReference('/apex/MC_ChartsTab'); //Redirect to charts queue
}
VF page:
<apex:pageBlockButtons >
<apex:commandButton value="Save & Unlock" action="{!saveAndUnlock}" styleClass="saveButton"/>
</apex:pageBlockButtons>
Controller:
public PageReference saveAndUnlock() {
if(!isNotAllwToSave())
return null;
if(!isOkToSave())
return null;
// update medical chart record...
this.codingChart.Record_Lock__c = false;
codingChart.Record_Lock_User__c = null;
try {
this.codingChart.Record_Lock__c = false;
this.codingChart.Record_Lock_User__c = null;
this.codingChart.Status__c = selectedStatusOption;
this.codingChart.Saved_Record_Status_Check__c = false;
update this.codingChart;
saveDxCodes();
} catch(Exception ex) {
Apexpages.addMessages(ex);
return null;
}
deleteWorkingCodes();
return new PageReference('/apex/MC_ChartsTab'); //Redirect to charts queue
}
public NameOfController(){
advID = UserInfo.getUserId(); // gets ID of person logged in
//renders Email Button
List<GroupMember> getGroup = [SELECT UserOrGroupId FROM GroupMember WHERE UserOrGroupId =:advid and group.name = 'Group Name'];
if (getGroup.size()>0){
showButton=true;
}else{
showButton=false;
}
}
Use the showButton in rendered attribute of the button
<apex:commandButton value="Save & Unlock" action="{!saveAndUnlock}" styleClass="saveButton" rendered="{!showButton}"/>
All Answers
public NameOfController(){
advID = UserInfo.getUserId(); // gets ID of person logged in
//renders Email Button
List<GroupMember> getGroup = [SELECT UserOrGroupId FROM GroupMember WHERE UserOrGroupId =:advid and group.name = 'Group Name'];
if (getGroup.size()>0){
showButton=true;
}else{
showButton=false;
}
}
Use the showButton in rendered attribute of the button
<apex:commandButton value="Save & Unlock" action="{!saveAndUnlock}" styleClass="saveButton" rendered="{!showButton}"/>
User A is member of public group L1
User B is member of public group L1,L2
User C is member of public group L1,L2,L3
User D is member of public group L1,L2,L3,L4
I am able to hide for User A and B. But User C not able to see button. I want to hide only for member belong Groups
L1 and L2. I want to display button even if user is part of group L1,L2,L3 AND L4. Please guide me in this.
My Query:
List<GroupMember> getGroup = [SELECT UserOrGroupId FROM GroupMember WHERE UserOrGroupId = :advID and (group.name IN ('L3','L4')) and (group.name NOT IN ('L1','L2'))];
Also i have Boolean variable for users L1User,L2User,L3User and L4User in Controller.