RequirePermission not working
You want:

{% requirePermission("editSite:#{currentSite.id}") %}


The way you have it now, the permission it's checking is the literal string editSite: (currentSite.id) which no one will have permission for.

Edit: 

Craft 3.1 doesn't store IDs anymore for permissions, instead it uses always the uids because of the project config. This is a breaking change for many existing projects so keep that in mind.

{% requirePermission("editSite:#{currentSite.uid}") %}


c.f.: Twig string interpolation