If I look at a profile that has been granted permission to all the Apex Classes listed for my org then the total number of classes allocated is 750. If however I go to the same page on a permission set the total number of classes listed to which I can grant permission is over 2000. I am interested in why the difference?

I have seen some comments that the class list for the profile may only show package classes that are marked a global. That makes some sense but in which case why is the filtering of classes for a permission set not using the same logic.

  • Different List Views? – Eric Nov 23 '16 at 4:39
  • Or they do not have a license for some packages that include apex classes? – Eric Nov 23 '16 at 4:55
  • Eric thanks for the feedback. The problem is that the lists in question are both controlled by salesforce and are not standard list views. The org I am looking at does have packages installed it's why there are so many apex classes in the fist place. However, it's my understanding that the licence controls whether I can see the objects used in the package, not the classes themselves. If it is a license issue I would then still have the question why the profile is different from the permission set. – Peter Worth Nov 27 '16 at 22:44
  • All list views can be modified so I am not sure what you mean. If you are looking at the Apex classes list there is a list view associated with it. They could be different. – Eric Nov 27 '16 at 22:58
  • Just to have all my bases covered I also raised a case with Salesforce on this question. The answer I received is that it is by design. The apex class list for a profile will only show classes marked as global. While the class list for a permission set will show all classes. Why there is a need for the designed difference was not explained. – Peter Worth Dec 4 '16 at 22:27

In response to comments....

This was using a list view on the Setup->Develop->Apex Classes

Image showing the class is not global:

enter image description here

Image showing the list view (BTW - All list view shows the class as well)

enter image description here

Profile was not system administrator. Profile had the "View Setup and Configuration" enabled which they must have to event get to the setup section so....No permission sets were assigned to the user. User License is a Salesforce License

You should really look at the list view the person is using to ensure they are not filtering out. Also, ensure that they have licenses for all managed packages....If they do not have a license then they will not see the class for the managed package classes but you will be able to assign them via permission sets.


I found out that if you use the Enhanced Profile User Interface, it will display all of the classes when editing the profile. Classic view seems to filter some classes out. In my org I can see it is filtering out non global classes just like Peter said in his comment.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.