]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Updating walled garden to register public pages as regular expressions.
authornickw <nickw@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 27 May 2010 19:44:55 +0000 (19:44 +0000)
committernickw <nickw@36083f99-b078-4883-b0ff-0f9b5a30f544>
Thu, 27 May 2010 19:44:55 +0000 (19:44 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@6255 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/lib/cron.php
engine/lib/sites.php
mod/sitepages/start.php

index 75897fb21ebdaa01e6847981883202f0489d7ea6..223b6774f66c9860b976b246782ce1fd292bbd7c 100644 (file)
@@ -57,18 +57,16 @@ function cron_page_handler($page) {
 }
 
 function cron_public_pages($hook, $type, $return_value, $params) {
-       global $CONFIG;
-       
-       $return_value[] = "{$CONFIG->url}pg/cron/minute";
-       $return_value[] = "{$CONFIG->url}pg/cron/fiveminute";
-       $return_value[] = "{$CONFIG->url}pg/cron/fifteenmin";
-       $return_value[] = "{$CONFIG->url}pg/cron/halfhour";
-       $return_value[] = "{$CONFIG->url}pg/cron/hourly";
-       $return_value[] = "{$CONFIG->url}pg/cron/daily";
-       $return_value[] = "{$CONFIG->url}pg/cron/weekly";
-       $return_value[] = "{$CONFIG->url}pg/cron/monthly";
-       $return_value[] = "{$CONFIG->url}pg/cron/yearly";
-       $return_value[] = "{$CONFIG->url}pg/cron/reboot";
+       $return_value[] = 'pg/cron/minute';
+       $return_value[] = 'pg/cron/fiveminute';
+       $return_value[] = 'pg/cron/fifteenmin';
+       $return_value[] = 'pg/cron/halfhour';
+       $return_value[] = 'pg/cron/hourly';
+       $return_value[] = 'pg/cron/daily';
+       $return_value[] = 'pg/cron/weekly';
+       $return_value[] = 'pg/cron/monthly';
+       $return_value[] = 'pg/cron/yearly';
+       $return_value[] = 'pg/cron/reboot';
        
        return $return_value;
 }
index e6eb71afc50b85f1c26b47bcf8c8904fe01134e9..c17154f3da77953d5a32201f4e057c9de35bc442 100644 (file)
@@ -270,18 +270,22 @@ class ElggSite extends ElggEntity {
                        }
                }
                
+               // always allow index page
+               if ($url == $CONFIG->url) {
+                       return TRUE;
+               }
+               
                // default public pages
                $defaults = array(
-                       $CONFIG->url,
-                       "{$CONFIG->url}action/login",
-                       "{$CONFIG->url}pg/register/",
-                       "{$CONFIG->url}action/register",
-                       "{$CONFIG->url}account/forgotten_password.php",
-                       "{$CONFIG->url}action/user/requestnewpassword",
-                       "{$CONFIG->url}pg/resetpassword",
-                       "{$CONFIG->url}upgrade.php",
-                       "{$CONFIG->url}xml-rpc.php",
-                       "{$CONFIG->url}mt/mt-xmlrpc.cgi",
+                       'action/login',
+                       'pg/register',
+                       'action/register',
+                       'account/forgotten_password\.php',
+                       'action/user/requestnewpassword',
+                       'pg/resetpassword',
+                       'upgrade\.php',
+                       'xml-rpc\.php',
+                       'mt/mt-xmlrpc\.cgi',
                );
                
                // include a hook for plugin authors to include public pages
@@ -290,8 +294,11 @@ class ElggSite extends ElggEntity {
                // lookup admin-specific public pages
                
                // allow public pages
-               if (in_array($url, array_merge($defaults, $plugins))) {
-                       return TRUE;
+               foreach (array_merge($defaults, $plugins) as $public) {
+                       $pattern = "`^{$CONFIG->url}$public/*$`i";
+                       if (preg_match($pattern, $url)) {
+                               return TRUE;
+                       }
                }
                
                // non-public page
index 9436880205a8083fb7af9e396bd739eb684b972f..2974d3036e6eea678a66307f1503d4df3d4d1645 100644 (file)
@@ -201,11 +201,9 @@ function sitepages_ecml_views_hook($hook, $entity_type, $return_value, $params)
 }
 
 function sitepages_public_pages($hook, $type, $return_value, $params) {
-       global $CONFIG;
-       
-       $return_value[] = "{$CONFIG->url}pg/sitepages/read/About/";
-       $return_value[] = "{$CONFIG->url}pg/sitepages/read/Terms/";
-       $return_value[] = "{$CONFIG->url}pg/sitepages/read/Privacy/";
+       $return_value[] = 'pg/sitepages/read/About';
+       $return_value[] = 'pg/sitepages/read/Terms';
+       $return_value[] = 'pg/sitepages/read/Privacy';
        
        return $return_value;
 }