Index: openacs-4/packages/news/www/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news/www/index.tcl,v diff -u -r1.22.2.3 -r1.22.2.4 --- openacs-4/packages/news/www/index.tcl 7 Dec 2020 12:41:20 -0000 1.22.2.3 +++ openacs-4/packages/news/www/index.tcl 12 Jun 2023 13:40:38 -0000 1.22.2.4 @@ -8,8 +8,8 @@ } { - {view:trim "live"} - page:naturalnum,optional + {view:oneof(live|archive),trim "live"} + page:naturalnum,optional } -properties { @@ -30,13 +30,23 @@ set actions_list [list] -# view switch in live | archived news -if {"live" eq $view} { +set news_admin_p [permission::permission_p -object_id $package_id -privilege news_admin] +set news_create_p [permission::permission_p -object_id $package_id -privilege news_create] +# +# We do not let "regular users" see archived news. +# +set can_see_archived_p [expr {$news_admin_p || $news_create_p}] + +# +# View switch in live | archived news +# +if {!$can_see_archived_p || "live" eq $view} { + set title [apm_instance_name_from_id $package_id] set view_clause [db_map view_clause_live] - if { [db_0or1row archived_p {}]} { + if { $can_see_archived_p && [db_0or1row archived_p {}]} { lappend actions_list [_ news.Show_archived_news] \ [export_vars -base [ad_conn url] {{view archive}}] \ [_ news.Show_archived_news] @@ -54,23 +64,21 @@ } } -# switches for privilege-enabled links: admin for news_admin, submit for registered users -set news_admin_p [permission::permission_p -object_id $package_id -privilege news_admin] -set news_create_p [permission::permission_p -object_id $package_id -privilege news_create] - +# +# Switches for privilege-enabled links: admin for news_admin, submit +# for registered users +# if { $news_admin_p } { lappend actions_list [_ news.Create_a_news_item] \ "item-create" \ [_ news.Create_a_news_item] lappend actions_list [_ news.Administer] \ "admin/" \ [_ news.Administer] -} else { - if { $news_create_p } { - lappend actions_list [_ news.Submit_a_news_item] \ - "item-create" \ - [_ news.Submit_a_news_item] - } +} elseif { $news_create_p } { + lappend actions_list [_ news.Submit_a_news_item] \ + "item-create" \ + [_ news.Submit_a_news_item] }