From 324fdf40557a0ca4e530cb06ebf760188b7459ec Mon Sep 17 00:00:00 2001 From: Tim Steiner <tsteiner2@unl.edu> Date: Wed, 29 Sep 2010 21:19:39 +0000 Subject: [PATCH] Prevent users from creating drupal sub-sites inside of drupal specific directories (ie: modules) git-svn-id: file:///tmp/wdn_thm_drupal/branches/drupal-7.x@203 20a16fea-79d4-4915-8869-1ea9d5ebf173 --- sites/all/modules/unl/unl_site_creation.php | 22 ++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/sites/all/modules/unl/unl_site_creation.php b/sites/all/modules/unl/unl_site_creation.php index 5860ec74..b29aea97 100644 --- a/sites/all/modules/unl/unl_site_creation.php +++ b/sites/all/modules/unl/unl_site_creation.php @@ -32,11 +32,9 @@ function unl_site_creation($form, &$form_state) return $form; } -function unl_site_creation_submit($form, &$form_state) -{ - //$php_path = $form_state['values']['php_path']; - $site_path = $form_state['values']['site_path']; - $clean_url = $form_state['values']['clean_url']; +function unl_site_creation_validate($form, &$form_state) +{ + $site_path = trim($form_state['values']['site_path']); if (substr($site_path, 0, 1) == '/') { $site_path = substr($site_path, 1); @@ -45,6 +43,20 @@ function unl_site_creation_submit($form, &$form_state) $site_path = substr($site_path, 0, -1); } + $site_path_parts = explode('/', $site_path); + $first_directory = array_shift($site_path_parts); + if (in_array($first_directory, array('includes', 'misc', 'modules', 'profiles', 'scripts', 'sites', 'themes'))) { + form_set_error('site_path', t('Drupal site paths must not start with the "' . $first_directory . '" directory.')); + } + + $form_state['values']['site_path'] = $site_path; +} + +function unl_site_creation_submit($form, &$form_state) +{ + $site_path = $form_state['values']['site_path']; + $clean_url = $form_state['values']['clean_url']; + $uri = url($site_path, array('absolute' => TRUE)); $clean_url = intval($clean_url); -- GitLab