* Installer now prompts for admin name and password
* Initial temporary password email suppressed
* You are using default password nag suppressed
Signed-off-by: Ian Smith <ismith@mit.edu>
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
get marked as conflicted. Maybe we should say for certain files "if they're
gone, they're gone forever"? What is the proper resolution?
get marked as conflicted. Maybe we should say for certain files "if they're
gone, they're gone forever"? What is the proper resolution?
-- wizard install wordpress should ask for password. One problem with this is that
- Wordpress will still send mail with the wrong username and password, so Wordpress
- will need to be patched to not do that. Alternatively we can initally set the admin
- email to a null address and then fix it manually.
- Parse output HTML for class="error" and give those errors back to the user (done),
then boot them back into configure so they can enter in something different
- Parse output HTML for class="error" and give those errors back to the user (done),
then boot them back into configure so they can enter in something different
import logging
import distutils
import urlparse
import logging
import distutils
import urlparse
from wizard import app, install, resolve, sql, util
from wizard.app import php
from wizard import app, install, resolve, sql, util
from wizard.app import php
extractors.update(php.extractors)
substitutions = app.make_substitutions(seed)
substitutions.update(php.substitutions)
extractors.update(php.extractors)
substitutions = app.make_substitutions(seed)
substitutions.update(php.substitutions)
- install_schema = install.ArgSchema("db", "email", "title")
+ install_schema = install.ArgSchema("db", "admin", "email", "title")
deprecated_keys = set(['WIZARD_SECRETKEY'])
random_keys = set(['WIZARD_SECRETKEY', 'WIZARD_AUTH_KEY', 'WIZARD_SECURE_AUTH_KEY', 'WIZARD_LOGGED_IN_KEY', 'WIZARD_NONCE_KEY'])
def download(self, version):
deprecated_keys = set(['WIZARD_SECRETKEY'])
random_keys = set(['WIZARD_SECRETKEY', 'WIZARD_AUTH_KEY', 'WIZARD_SECURE_AUTH_KEY', 'WIZARD_LOGGED_IN_KEY', 'WIZARD_NONCE_KEY'])
def download(self, version):
}
old_mode = os.stat(".").st_mode
os.chmod(".", 0777) # XXX: squick squick
}
old_mode = os.stat(".").st_mode
os.chmod(".", 0777) # XXX: squick squick
+
+ # we need to disable the wp_mail function in wp-includes/pluggable[-functions].php
+ pluggable_path = os.path.exists('wp-includes/pluggable.php') and 'wp-includes/pluggable.php' or 'wp-includes/pluggable-functions.php'
+ pluggable = open(pluggable_path, 'r').read()
+ wp_mail_noop = "<?php function wp_mail( $to, $subject, $message, $headers = '', $attachments = array() ) { /*noop*/ } ?> \n\n"
+ pluggable_file = open(pluggable_path,'w')
+ pluggable_file.write(wp_mail_noop)
+ pluggable_file.write(pluggable)
+ pluggable_file.close()
+
result = install.fetch(options, "wp-admin/setup-config.php?step=2", post_setup_config)
logging.debug("setup-config.php output\n\n" + result)
result = install.fetch(options, "wp-admin/install.php?step=2", post_install)
result = install.fetch(options, "wp-admin/setup-config.php?step=2", post_setup_config)
logging.debug("setup-config.php output\n\n" + result)
result = install.fetch(options, "wp-admin/install.php?step=2", post_install)
wp_options.update().where(wp_options.c.option_name == 'siteurl').values(option_value=options.web_path).execute()
wp_options.update().where(wp_options.c.option_name == 'home').values(option_value="http://%s%s" % (options.web_host, options.web_path)).execute() # XXX: what if missing leading slash; this should be put in a function
# should also set the username and admin password
wp_options.update().where(wp_options.c.option_name == 'siteurl').values(option_value=options.web_path).execute()
wp_options.update().where(wp_options.c.option_name == 'home').values(option_value="http://%s%s" % (options.web_host, options.web_path)).execute() # XXX: what if missing leading slash; this should be put in a function
# should also set the username and admin password
+
+ wp_users = meta.tables["wp_users"]
+ hashed_pass = hashlib.md5(options.admin_password).hexdigest()
+ wp_users.update().where(wp_users.c.ID == 1).values(user_login=options.admin_name,user_nicename=options.admin_name,display_name=options.admin_name,user_pass=hashed_pass).execute()
+ wp_usermeta = meta.tables["wp_usermeta"]
+ wp_usermeta.delete().where(wp_usermeta.c.user_id==1 and wp_usermeta.c.meta_key == "default_password_nag").execute()
+
+ # now we can restore the wp_mail function in wp-includes/pluggable[-functions].php
+ pluggable_file = open(pluggable_path,'w')
+ pluggable_file.write(pluggable)
+ pluggable_file.close()
+
php.ini_replace_vars()
def upgrade(self, d, version, options):
result = d.fetch("wp-admin/upgrade.php?step=1")
php.ini_replace_vars()
def upgrade(self, d, version, options):
result = d.fetch("wp-admin/upgrade.php?step=1")