diff --git a/ee/cli/plugins/site.py b/ee/cli/plugins/site.py index 8aa160d1..5303091c 100644 --- a/ee/cli/plugins/site.py +++ b/ee/cli/plugins/site.py @@ -249,11 +249,16 @@ class EESiteCreateController(CementBaseController): wpsubdir=False, webroot=ee_site_webroot, ee_db_name='', ee_db_user='', ee_db_pass='') - setup_domain(self, data) + # setup NGINX configuration, and webroot + SetupDomain(self, data) + # Setup database for MySQL site if 'ee_db_name' in data.keys() and not data['wp']: - data = setup_database(self, data) + data = SetupDatabase(self, data) + # Setup WordPress if Wordpress site if data['wp']: - setup_wordpress(self, data) + ee_wp_creds = SetupWordpress(self, data) + + # TODO setup Perissions for webroot class EESiteUpdateController(CementBaseController): diff --git a/ee/cli/plugins/site_functions.py b/ee/cli/plugins/site_functions.py index 9377e712..c0262688 100644 --- a/ee/cli/plugins/site_functions.py +++ b/ee/cli/plugins/site_functions.py @@ -9,7 +9,7 @@ from ee.core.shellexec import EEShellExec from ee.core.variables import EEVariables -def setup_domain(self, data): +def SetupDomain(self, data): ee_domain_name = data['site_name'] ee_site_webroot = data['webroot'] @@ -56,7 +56,7 @@ def setup_domain(self, data): .format(ee_site_webroot)]) -def setup_database(self, data): +def SetupDatabase(self, data): ee_domain_name = data['site_name'] ee_random = (''.join(random.sample(string.ascii_uppercase + string.ascii_lowercase + string.digits, 15))) @@ -121,7 +121,7 @@ def setup_database(self, data): return data -def setup_wordpress(self, data): +def SetupWordpress(self, data): ee_domain_name = data['site_name'] ee_site_webroot = data['webroot'] prompt_wpprefix = self.app.config.get('wordpress', 'prefix') @@ -139,7 +139,7 @@ def setup_wordpress(self, data): EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) EEShellExec.cmd_exec(self, "wp --allow-root core download") - data = setup_database(self, data) + data = SetupDatabase(self, data) if prompt_wpprefix == 'True' or prompt_wpprefix == 'true': try: ee_wp_prefix = input('Enter the WordPress table prefix [wp_]: ' @@ -219,25 +219,29 @@ def setup_wordpress(self, data): "/%year%/%monthnum%/%day%/%postname%/") """Install nginx-helper plugin """ - install_wp_plugin(self, 'nginx-helper', data) + InstallWP_Plugin(self, 'nginx-helper', data) """Install Wp Super Cache""" if data['wpsc']: - install_wp_plugin(self, 'wp-super-cache', data) + InstallWP_Plugin(self, 'wp-super-cache', data) """Install W3 Total Cache""" if data['w3tc'] or data['wpfc']: - install_wp_plugin(self, 'w3-total-cache', data) + InstallWP_Plugin(self, 'w3-total-cache', data) + wp_creds = dict(wp_user=ee_wp_user, wp_pass=ee_wp_pass, + wp_email=ee_wp_email) + return wp_creds -def setup_wordpress_network(self, data): + +def SetupWordpressNetwork(self, data): ee_site_webroot = data['webroot'] EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) EEShellExec.cmd_exec(self, 'wp --allow-root core multisite-convert' '--title=') -def install_wp_plugin(self, plugin_name, data): +def InstallWP_Plugin(self, plugin_name, data): ee_site_webroot = data['webroot'] print("Installing plugin {0}".format(plugin_name)) EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) diff --git a/ee/core/fileutils.py b/ee/core/fileutils.py index 9740ca42..c220f3a9 100644 --- a/ee/core/fileutils.py +++ b/ee/core/fileutils.py @@ -79,3 +79,33 @@ class EEFileUtils(): self.app.log.error('Unable to Change Directory {err}' .format(err=e.strerror)) sys.exit(1) + + def chown(self, path, user, group, recursive=False): + try: + if recursive: + for root, dirs, files in os.walk(path): + for d in dirs: + shutil.chown(os.path.join(root, d), user=user, + group=group) + for f in files: + shutil.chown(os.path.join(root, f), user=user, + group=group) + else: + shutil.chown(path, user=user, group=group) + except shutil.Error as e: + self.log.error("Unable to change owner {0}".format(e.strerror)) + sys.exit(1) + + def chmod(self, path, perm, recursive=False): + try: + if recursive: + for root, dirs, files in os.walk(path): + for d in dirs: + os.chmod(os.path.join(root, d), perm) + for f in files: + os.chmod(os.path.join(root, f), perm) + else: + os.chmod(path, perm) + except OSError as e: + self.log.error("Unable to change owner {0}".format(e.strerror)) + sys.exit(1) diff --git a/ee/core/permissions.py b/ee/core/permissions.py index d0f93623..9de98330 100644 --- a/ee/core/permissions.py +++ b/ee/core/permissions.py @@ -6,3 +6,6 @@ class EESetPermission(): def ___init__(): # TODO method for set permission pass + + def setPermissions(self, user, group, path, recursive=False): + pass