I had a user contact me about an issue where he was trying to add a web part to a page on the subsite that he was an owner on. When I mention Owner I mean he literally was in the owners group, and the owners group had full control permissions (literally all the check boxes selected in the Permissions Matrix). He was trying to get this to work on a subsite. Anytime the user went to add a web part the categories only showed 1 Folder (Apps) available.
When I went to the page I could see a full listing of Folders Web parts etc.
I was thinking it surely had to be an issue with his account. So I gave a test user the same access this user had then tested it on my machine, and sure enough I ran into the same issue. It took a little digging and finally I realized that this user was an owner on a subsite, but a subsites web part gallery list is actually on the top level root site in the site collection.
So to resolve this, you first need to Go to Site Settings, then click the “Go to top level site settings” link under the Site Collection Administration Section.
Next click the “Web parts” link under the Web Designer Galleries section.
The click the “Library Settings” Link
Then click “Permissions for this gallery” link
Once you’re in the Permissions for this gallery, you can see the permissions and groups that have access to the web part gallery. In my case, I noticed that my users group was missing. You can either add the user with read access to this gallery, or the better method would be to grant the users group read access to this list.
If your list is currently inheriting Permissions, then click the “Stop Inheriting Permissions” Link
Click “Ok” to validate you really do want to create unique permissions. (Note the existing permissions are copied over. This is safe, but the thing to remember is this list now no longer inherits permissions added in the future to the top level site. This is not an issue as long as the SharePoint Groups from the top level has been added and have permissions)
Now click “Grant Permissions” and add your SharePoint Group granting it Read Access.
That is all the user will need to be able to add the web part to their page on the subsite below.