+ Start a Discussion
JeriMorrisJeriMorris 

Permission Sets and Profile Settings

I'm developing an AppExchange app. The app contains a Setup Visualforce page, a tab for that page, an app, a couple of custom objects, and some Apex code. There are two types of users: admins and end-users. 

Ideally, I'd develop one Permission Set for each type of user, and tell the person installing the app to assign the correct Permission Set to each user. However, Permission Sets in a managed package can't grant users visibility to tabs or apps, so they're not very useful to me. 

I can include two Profiles Settings in my app, and tell the person installing the app to assign the correct Profile Setting to each existing Profile. That gets me past the tab and app visibility issue. However, it's kind of lousy in that it grants access to all users with a particular Profile - it doesn't have the user-by-user flexibility that Permission Sets has.

Also, I've read that Profile Settings are not upgradeable. Does that mean that, with each version of the app in which the Profile settings have changed (maybe because I've added a new field to one of my custom objects), I have to include a new Profile Setting so that orgs that are upgrading will pick up the new permission?

Also, if someone installs my app, assigning the correct Profile Setting to each of their existing Profile, and then, later on, they create a new Profile, how can they apply one of my Profile Settings to that new Profile? 

Finally, is it just me, or does it seem like this is all very awkward? I expected that getting the right users configured with the right permissions would be a basic setup task for all apps, yet Permission Sets and Profile Settings both seem to have significant flaws. How do other app authors handle getting their users configured with the right permissions, tabs, apps, etc.?
ShashankShashank (Salesforce Developers) 
Please see if this helps: https://help.salesforce.com/HTViewHelpDoc?id=distribution_perm_sets_profile_settings.htm&language=en_US