Consider only generating dynamic list for all documents
if ($UserValidation eq "certificate" || $UserValidation eq "shibboleth" ||
(!$Public && $Preferences{Options}{DynamicFullList}{Private}) ||
( $Public && $Preferences{Options}{DynamicFullList}{Public})) {
push @OtherColumns,"<a href=\"$ListBy?alldocs=1\">All documents</a>";
} else {
push @OtherColumns,"<a href=\"$web_root/Static/Lists/$remote_user/FullList.html\">All documents</a>";
}
is in the code now and is quite complex (and more so once SSO goes in). While this may have been the right choice 18 years ago with defined password/groups and slow servers, it's probably not anymore with better authorization mechanisms and faster servers.
One report of someone being tripped up by these settings.
I agree that a dynamic list is usually better than a static list. The dynamic list does not take as long to generate anymore. Having cronjobs to generate static lists for various logons over ~60 DocDBs is less preferred (and we mostly are not generating these static lists for fnal DocDBs anymore).
Could you add checking for FNAL SSO UserValidation to the "if" that is the condition for doing the dynamic lists?
if ($UserValidation eq "certificate" || $UserValidation eq "shibboleth" || ...
It's there already. That was a quote from the release:
$ git grep -C 5 Dynamic
cgi/DocumentDatabase-if ($UserValidation eq "certificate" || $UserValidation eq "shibboleth" || $UserValidation eq "FNALSSO" ||
cgi/DocumentDatabase: (!$Public && $Preferences{Options}{DynamicFullList}{Private}) ||
cgi/DocumentDatabase: ( $Public && $Preferences{Options}{DynamicFullList}{Public})) {
cgi/DocumentDatabase- push @OtherColumns,"<a href=\"$ListBy?alldocs=1\">All documents</a>";
cgi/DocumentDatabase-} else {
cgi/DocumentDatabase- push @OtherColumns,"<a href=\"$web_root/Static/Lists/$remote_user/FullList.html\">All documents</a>";
cgi/DocumentDatabase-}
cgi/DocumentDatabase-
ok, great. (In the first posting in this issue, the FNALSSO part did not show up).
While this may have been the right choice 18 years ago with defined password/groups and slow servers, it's probably not anymore
indeed.
Moreover, the script which should be run from Cron to generate the lists does not work on newer systems (at least, on Ubuntu server).