[pmwiki-users] Working solution for CMS style interface with IMS caching
Henrik Bechmann
henrik at bechmannsoftware.com
Sat Aug 12 00:37:13 CDT 2006
Patrick,
This is to confirm that I find the behaviour of login/logout is exactly
the same (in farmconfig.php) with
include_once('local/config.php'); # required in farmconfig.php to initialize
$pagename = ResolvePageName($pagename);
$isEditAuthorized = CondAuth($pagename, 'edit');
instead of
include_once('local/config.php');
$pagename = ResolvePageName($pagename);
$isEditAuthorized = (boolean)RetrieveAuthPage($pagename, 'edit', false,
READPAGE_CURRENT);
and without
$HandleActions['logout'] = 'CacheLogoutHandler';
function CacheLogoutHandler($pagename, $auth = 'read') {
global $EnableIMSCaching;
$EnableIMSCaching = 0;
HandleLogoutA($pagename, $auth); # call the legit handler
}
(That is to say IE responds to login/logout with immediate fetch of
revised page layouts; FF requires a Shift/Refresh-button after
login/logout to effect the fetch.)
Good. Simpler.
It would be *very* nice if you could find a way to solve this FF
problem, as you have indicated!
Thanks as always for your attentiveness.
Best,
- Henrik
Henrik Bechmann
www.osscommons.ca
www.bechmannsoftware.com
Webmaster, www.dufferinpark.ca
Patrick R. Michaud wrote:
> On Sun, Aug 06, 2006 at 06:08:08PM -0400, Henrik Bechmann wrote:
>
>> Patrick,
>>
>> I have implemented a working solution for differentiation of page layout
>> based on native PmWiki password protection state, in the presence of IMS
>> caching, as follows:
>>
>> In my farmconfig.php I have:
>>
>> $HandleActions['logout'] = 'CacheLogoutHandler';
>> function CacheLogoutHandler($pagename, $auth = 'read') {
>> global $EnableIMSCaching;
>> $EnableIMSCaching = 0;
>> HandleLogoutA($pagename, $auth); # call the legit handler
>> }
>>
>
> I don't think this function really does anything, because
> $EnableIMSCaching only has an effect for the actions given
> by $CacheActions (which defaults to 'browse', 'diff', and 'print').
> So, ?action=logout *already* acts as if $EnableIMSCaching is set to zero,
> even without the above function.
>
>
>> include_once('local/config.php');
>> $pagename = ResolvePageName($pagename);
>> $isEditAuthorized = (boolean)RetrieveAuthPage($pagename, 'edit', false,
>> READPAGE_CURRENT);
>>
>
> Having looked at the pmwiki code a bit more, it occurs to me
> that a far better way to get $isEditAuthorized is to use
> PmWiki's built-in function for it (which I had forgotten about):
>
> $pagename = ResolvePageName($pagename);
> $isEditAuthorized = CondAuth($pagename, 'edit');
>
> I'd also like to go through the pmwiki.org pages and replace
> any recommendations we've made to use RetrieveAuthPage() to
> instead use CondAuth (which is more robust).
>
>
>
>> All of this works as expected in Internet Explorer. The Firefox cache is
>> not as responsive however, and requires special procedures. Also, it
>> turns out that PmWiki deletes the Author Name cookie with the logout
>> operation (which I do not think is desirable in most situations).
>>
>
> I'll answer the author name cookie issue in my next message.
>
> However, for now I'll just note that as currently written, IMS
> caching simply won't work with login/logout, but I'll fix that
> for 2.1.13. This should eliminate the need to put any special
> notices for authors, or require authors to manually refresh
> pages.
>
> Thanks,
>
> Pm
>
>
>
More information about the pmwiki-users
mailing list