Index: openacs-4/packages/news/www/item-create-3.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news/www/item-create-3.tcl,v diff -u -r1.19 -r1.20 --- openacs-4/packages/news/www/item-create-3.tcl 14 Jun 2015 00:38:59 -0000 1.19 +++ openacs-4/packages/news/www/item-create-3.tcl 7 Aug 2017 23:48:12 -0000 1.20 @@ -28,66 +28,60 @@ set package_id [ad_conn package_id] permission::require_permission -object_id $package_id -privilege news_create - set news_admin_p [permission::permission_p -object_id $package_id -privilege news_admin] + # get instance-wide approval policy : [closed|wait|open] set approval_policy [parameter::get -parameter ApprovalPolicy -default "wait"] +# # the news_admin or an open approval policy allow immediate publishing +# if { $news_admin_p == 1 || $approval_policy eq "open" } { - - set approval_user [ad_conn "user_id"] - set approval_ip [ad_conn "peeraddr"] + set approval_user [ad_conn user_id] + set approval_ip [ad_conn peeraddr] set approval_date [dt_sysdate] set live_revision_p "t" - } else { - set approval_user [db_null] set approval_ip [db_null] set approval_date [db_null] set live_revision_p "f" - } -# RAL: This was missing and allows the user to "never expire" a news -# item. +# Allow the user to "never expire" a news item. if {$permanent_p == "t"} { set archive_date_ansi [db_null] } # get creation_foo set creation_date [dt_sysdate] -set creation_ip [ad_conn "peeraddr"] -set user_id [ad_conn "user_id"] +set creation_ip [ad_conn peeraddr] +set user_id [ad_conn user_id] # avoid any db weirdness with the "." in the variable name. set mime_type ${publish_body.format} -# do insert: unfortunately the publish_body cannot be supplied through the PL/SQL function -# we therefore have to do this in a second step set news_id [db_exec_plsql create_news_item {}] # -# RAL: For postgres, we need NOT store the data in a blob. The -# news item body is stored in the prior news__new call. +# For postgres, the news # item body is stored in the prior news__new +# call. The blob stuff is just needed for Oracle. # set content_add [db_map content_add] -if {![string match $content_add ""]} { +if {$content_add ne ""} { db_dml content_add {} -blobs [list $publish_body] } -#update RSS if it is enabled - +# +# update RSS if it is enabled +# if { !$news_admin_p } { - if { "open" ne [parameter::get -parameter ApprovalPolicy -default "wait"] } { - # case: user submitted news item, is returned to a Thank-you page - set title "[_ news.News_item_submitted]" - set context [list $title] - ad_return_template item-create-thankyou + # case: user submitted news item, is returned to a Thank-you page + set title [_ news.News_item_submitted] + set context [list $title] + ad_return_template item-create-thankyou } - } else { # case: administrator returned to index page ad_returnredirect "" @@ -106,7 +100,13 @@ # send out notifications if { $live_revision_p } { - news_do_notification $package_id $news_id + news_do_notification $package_id $news_id } ad_returnredirect "" + +# Local variables: +# mode: tcl +# tcl-indent-level: 4 +# indent-tabs-mode: nil +# End: