For a private Elgg set up put the following somewhere in the engine/settings.php file:
$CONFIG->disable_registration = true;
The settings file was created by the install script and I couldn’t edit it. I managed to get in by copying it and renaming the uneditable version settings-original.php just in case. The added line has disabled public user registration from the home page and anywhere else it used to appear. I find admin can still create new users and a notification email is sent to the new users email address with the username and password.
I found this by Googling “elgg disabling user registration”. This came up with http://groups.google.com/group/elgg-development/browse_thread/thread/ec973efbb4b021de which also makes mention of a ‘walled garden’ plugin that might be worth a look. But further research suggest that this plugin disables admin’s ability to manually create new users.
Other possible tweaks for the config.php file are (none of which I have tried):
// The following should be set to false if you don’t want the
// general public to be able to register accounts with your
// Elgg site.
$CFG->publicreg = false;
// The following should be set to false if you don’t want users
// to be able to invite new users into the system.
$CFG->publicinvite = false;
// Set this to 1 to enable a walled garden – i.e., if you’re not logged in,
// all you can see is the login page.
$CFG->walledgarden = 0;
Does this last one need a plugin?
All these found with many others in:
http://cepadev.if.usp.br/trac/stoa/browser/trunk/elgg/config-dist.php