includes/pageprocess.php
changeset 511 f88c8c79d784
parent 507 586fd7d3202d
child 536 218a627eb53e
equal deleted inserted replaced
510:290fa071842a 511:f88c8c79d784
   174     
   174     
   175     profiler_log("PageProcessor [{$this->namespace}:{$this->page_id}]: Started send process");
   175     profiler_log("PageProcessor [{$this->namespace}:{$this->page_id}]: Started send process");
   176     
   176     
   177     if ( !$this->perms->get_permissions('read') )
   177     if ( !$this->perms->get_permissions('read') )
   178     {
   178     {
   179       $this->err_access_denied();
   179       // Permission denied to read page. Is this one of our core pages that must always be allowed?
   180       profiler_log("PageProcessor [{$this->namespace}:{$this->page_id}]: Finished send process");
   180       // NOTE: Not even the administration panel will work if ACLs deny access to it.
   181       return false;
   181       if ( $this->namespace == 'Special' && in_array($this->page_id, array('Login', 'Logout', 'LangExportJSON', 'CSS')) )
       
   182       {
       
   183         // Do nothing; allow execution to continue
       
   184       }
       
   185       else
       
   186       {
       
   187         // Page isn't whitelisted, behave as normal
       
   188         $this->err_access_denied();
       
   189         profiler_log("PageProcessor [{$this->namespace}:{$this->page_id}]: Finished send process");
       
   190         return false;
       
   191       }
   182     }
   192     }
   183     $pathskey = $paths->nslist[ $this->namespace ] . $this->page_id;
   193     $pathskey = $paths->nslist[ $this->namespace ] . $this->page_id;
   184     $strict_no_headers = false;
   194     $strict_no_headers = false;
   185     if ( $this->namespace == 'Admin' && strstr($this->page_id, '/') )
   195     if ( $this->namespace == 'Admin' && strstr($this->page_id, '/') )
   186     {
   196     {