Added feature that connects cache-control headers with whether user-logins are allowe...
authorKasper Skårhøj <kasper@typo3.org>
Thu, 10 Mar 2005 14:03:23 +0000 (14:03 +0000)
committerKasper Skårhøj <kasper@typo3.org>
Thu, 10 Mar 2005 14:03:23 +0000 (14:03 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@577 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
typo3/sysext/cms/tslib/class.tslib_fe.php

index 6d42727..82bdcb2 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-03-10  Kasper Skårhøj,,,  <kasper@typo3.com>
+
+       * Added feature that connects cache-control headers with whether user-logins are allowed in a branch or not. Makes mixing of cached and dynamic user-dependant content easier.
+
 2005-03-08  Kasper Skårhøj,,,  <kasper@typo3.com>
 
        * New feature for page records: Frontend Login Mode. Makes it possible to disable (and enable later) frontend logins for branches of the page tree. Disabling will make it look like no user is authenticated. This feature is very useful if you wish a highly performant website using cache control headers while specifying sections where user logins are accepted (for dynamic content)
index 3b98e3e..b91be63 100755 (executable)
        var $loginUser='';                                      // Global falg indicating that a front-end user is logged in. This is set only if a user really IS logged in. The group-list may show other groups (like added by IP filter or so) even though there is no user.
        var $gr_list='';                                        // (RO=readonly) The group list, sorted numerically. Group '0,-1' is the default group, but other groups may be added by other means than a user being logged in though...
        var $beUserLogin='';                            // Flag that indicates if a Backend user is logged in!
+       var $loginAllowedInBranch = TRUE;       // Shows whether logins are allowed in branch
 
                // PREVIEW
        var $fePreview='';                                      // Flag indication that preview is active. This is based on the login of a backend user and whether the backend user has read access to the current page.
                }
 
                        // Checks if user logins are blocked for a certain branch and if so, will unset user login and re-fetch ID.
-               if (is_array($this->fe_user->user))     {       // Only if there is a login will we run this...
-                       if (!$this->checkIfLoginAllowedInBranch())      {
+               $this->loginAllowedInBranch = $this->checkIfLoginAllowedInBranch();
+               if (!$this->loginAllowedInBranch)       {       // Logins are not allowed:
+                       if (is_array($this->fe_user->user))     {       // Only if there is a login will we run this...
                                unset($this->fe_user->user);
-
                                        // Fetching the id again, now with the preview settings reset.
                                $this->fetch_the_id();
                        }
                }
 
-
                        // Final cleaning.
                $this->id = $this->contentPid = intval($this->id);      // Make sure it's an integer
                $this->type = intval($this->type);      // Make sure it's an integer
@@ -2597,9 +2597,13 @@ if (version == "n3") {
                        // Getting status whether we can send cache control headers for proxy caching:
                $doCache = $this->isStaticCacheble();
 
+                       // This variable will be TRUE unless cache headers are configured to be sent ONLY if a branch does not allow logins and logins turns out to be allowed anyway...
+               $loginsDeniedCfg = !$this->config['config']['sendCacheHeaders_onlyWhenLoginDeniedInBranch'] || !$this->loginAllowedInBranch;
+
                        // Finally, when backend users are logged in, do not send cache headers at all (Admin Panel might be displayed for instance).
                if ($doCache
-                               && !$this->beUserLogin) {
+                               && !$this->beUserLogin
+                               && $loginsDeniedCfg)    {
 
                                // Build headers:
                        $headers = array(