+ Start a Discussion
AndrewNerneyAndrewNerney 

Managed Package: giving All Users access after installing for Admins Only

Hi everyone,

We are working on a beta release for an AppExchange product, and I am installing the managed package in various dev orgs. I have noticed that if I select "Install for Admins Only" during setup, all elements are installed with access given only to System Administrator users, but if I later reinstall the same package and select "Install for All Users," nothing changes. If I install the package in a new org and select "Install for All Users," then all users are given access to the package. Is this how things are supposed to be?

Example:
I install the managed package and select "Install for Admins Only"
The field security for the custom field faxType on the Case object is set to Visible for the System Administrator profile only
I then reinstall the managed package and select "Install for All Users."
Salesforce gives the message "Installing and granting access for all users," but the field security on faxType remains Visible for System Administrators only.
If I want to grant all users access to the package, I have to first uninstall it.

I did a quick test by creating a small managed package with a single field, and I got the same results.

Is this right? If not, then what could be the reason for this behavior?
Best Answer chosen by AndrewNerney
Agustina GarciaAgustina Garcia
Found the documentation that helps me with push upgrades, just in case someone else is wondering the same: https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/push_upgrade_assigning_access.htm

All Answers

Jeff OnsrudJeff Onsrud
Did you find an answer to your question? I was wonder if there was an easy way to do this as well and not have to go into each element one by one and assign the appropriate rights?
AndrewNerneyAndrewNerney

Hi Jeff - very late response here as I never noticed your reply.

Unfortunately the answer is that once a package is installed, re-installing it and selecting a different "Install for..." option doesn't change existing rights. So if you install something for admins only, but later want to make it available to more profiles, you must manually add the appropriate permissions. Likewise, if you initially install a package for all profiles, and then install an upgrade for Admins Only, all users will still have access.

Agustina GarciaAgustina Garcia
Hi Andrew,
I was trying to find your answer on any document but no luck at all. How did you realized? Research or did you read it somewhere I'm not able to find?
Another question. After installation, if you do a push ugprade, this will be perform against same you have selected during installation right? As far as I know there is no way to select something duirng the push.

Thanks!!
Agustina GarciaAgustina Garcia
Found the documentation that helps me with push upgrades, just in case someone else is wondering the same: https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/push_upgrade_assigning_access.htm
This was selected as the best answer
AndrewNerneyAndrewNerney
Hi Augustina. Sorry, I didn't see your earlier question. But I see that you have found the answer. We came to the same conclusion. If you install a package for Admins Only but later want to grant permissions to other profiles, you must do so manually by either assigning the appropriate permissions to the profiles or by creating a permission set and assigning it to the appropriate users. Also, as is indicated in the documentation that you found, any new features added to the package must be handled this way as well.
Agustina GarciaAgustina Garcia
Cannot mark you answer as a solution but it is for others ;)
AndrewNerneyAndrewNerney
:-) I makred yours as such.
AndrewNerneyAndrewNerney
Funny that Agustina bumped this recently. Today while doing exam prep I came across some good resources for this.

See the ISVforce Guide for SF partners:
https://resources.docs.salesforce.com/214/latest/en-us/sfdc/pdf/salesforce_packaging_guide.pdf

It's a big document but it contains lots of details about creating and managing packages, and it gives specifics as to what kinds of changes and maintenance activities are possible.