If the user is logging in to AGOL, is there any reason they couldn't use the built in tools to add data to the basemap? AGOL is built for users being able to add their own services.
if you are wanting to control this in a custom way, you may want to lol at using the developers editing o the
Wbe AppBuilder. There is a custom widget that can help either add a shape, or add a service. I have not tried either yet, but you can find this and other community custom widgets list in Web AppBuilder Developer Edition - Customization Resource List