1) Change the link on the register welcome dialog to use the change password form.
thanks to TAZattitude for pointing the way.
2) Address the issue that default change password form, expects the user to know
the old password. As this is the first login, they might not write down the
generated password, so when they get to form, they are screwed, as they can't
change the password w/o the old one. So we register will generate a clone
of the password change form, where the old password is supplied as a hidden
field.
Here's a summary of the changes I made:
1) html::specialchars --> html::chars
2) ORM::orderby() -> ORM::order_by()
3) ORM::where() now takes 3 parameters including a comparator. So
ORM::where("a", $b) is now ORM::where("a", "=", $b) and the middle
value can be any comparator.
4) ORM::$loaded --> ORM::loaded()
5) Database::instance() --> db::build() (and there are some other
subtle differences, like now you always call execute() at the end
of the chain)
6) form::close() and form::close_fieldset() are now gone. Use
</form> and </fieldset> respectively.
7) Controller::$input is gone. Use Input::instance() instead.
I've done very rudimentary testing so far.
This change implements all the modes:
* Visitors cannot create users
* Visitors can create an account without confirmation nor admin approval
* Visitors can create an account with conformation and admin approval
* Visitors can create an account with confirmation and no admin approval
Move the admin menu under the Settings dropdown
Implement:
* Vistors can create accounts but administrator approval is required
* Email confirmations can be used or not used with above
* Welcome email is sent when the user is created
* Random password is generated when the user created and this is included in the welcome email.