I found a work around for this. First I hided the Create Site from header for everyone except admin. I added the following files.
I created file in shared/classes/alfresco/web-extension/site-data/extension/remove-create-site-extension.xml
and typed
<extension>
<modules>
<module>
<id>Remove create site menu option for non admin users</id>
<version>1.0</version>
<customizations>
<customization>
<targetPackageRoot>org.alfresco.share.header</targetPackageRoot>
<sourcePackageRoot>ingen.header</sourcePackageRoot>
</customization>
<customization>
<targetPackageRoot>org.alfresco.components.dashlets</targetPackageRoot>
<sourcePackageRoot>ingen.dashlets</sourcePackageRoot>
</customization>
</customizations>
</module>
</modules>
</extension>
Then I created file in shared/classes/alfresco/web-extension/site-webscripts/ingen/header/share-header.get.js
and added
//Find the "Sites" menu...
var sitesMenu = widgetUtils.findObject(model.jsonModel, "id", "HEADER_SITES_MENU");
if (sitesMenu != null) {
if (!user.isAdmin) {
sitesMenu.config.showCreateSite = false;
}
}
Then I created file shared/classes/alfresco/web-extension/site-webscripts/ingen/dashlets/my-sites.get.js
if (!user.isAdmin) {
model.showCreateSite = false;
}