Index: openacs-4/packages/news-aggregator/www/subscription-copy.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/subscription-copy.tcl,v diff -u -r1.2 -r1.2.2.1 --- openacs-4/packages/news-aggregator/www/subscription-copy.tcl 25 Jan 2005 23:17:09 -0000 1.2 +++ openacs-4/packages/news-aggregator/www/subscription-copy.tcl 4 Jan 2006 16:50:30 -0000 1.2.2.1 @@ -18,6 +18,10 @@ set package_id [ad_conn package_id] set package_url [ad_conn package_url] +set page_title "Copy subscription" +array set ag_info [news_aggregator::aggregator::aggregator_info -aggregator_id $aggregator_id] +set context [list [list "." "$ag_info(aggregator_name)"] "$page_title"] + if { [exists_and_not_null copy_to] } { foreach source_id $source_ids { @@ -45,11 +49,18 @@ ad_script_abort } -set page_title "Copy subscription" -set context [list $page_title] +set sources [list] +foreach source $source_id { + lappend sources '$source' +} +set sources [join $sources ","] -set package_id [ad_conn package_id] -set list_of_aggregators [db_list_of_lists select_aggregators {}] +set list_of_aggregators [list] +db_foreach select_aggregators {} { + if { $write_p eq "t" } { + lappend list_of_aggregators [list $move_to_name $move_to_id] + } +} ad_form -name copy_subscription -form { {aggregator_id:integer(hidden) Index: openacs-4/packages/news-aggregator/www/subscription-copy.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/subscription-copy.xql,v diff -u -r1.1.1.1 -r1.1.1.1.2.1 --- openacs-4/packages/news-aggregator/www/subscription-copy.xql 20 Mar 2004 11:04:39 -0000 1.1.1.1 +++ openacs-4/packages/news-aggregator/www/subscription-copy.xql 4 Jan 2006 16:50:30 -0000 1.1.1.1.2.1 @@ -4,14 +4,15 @@ - select a.aggregator_name, - a.aggregator_id - from na_aggregators a join - acs_objects o on (o.object_id = a.aggregator_id) join - na_user_preferences u on (o.creation_user = u.user_id) + select a.aggregator_name as move_to_name, + a.aggregator_id as move_to_id, + acs_permission__permission_p(a.aggregator_id,:user_id,'write') as write_p + from na_aggregators a where a.package_id = :package_id - and u.user_id = :user_id - and a.aggregator_id != :aggregator_id + and not exists (select 1 + from na_subscriptions s + where a.aggregator_id = s.aggregator_id + and source_id in ($sources)) order by aggregator_name Index: openacs-4/packages/news-aggregator/www/subscription-move.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/subscription-move.tcl,v diff -u -r1.1.1.1 -r1.1.1.1.2.1 --- openacs-4/packages/news-aggregator/www/subscription-move.tcl 20 Mar 2004 11:04:39 -0000 1.1.1.1 +++ openacs-4/packages/news-aggregator/www/subscription-move.tcl 4 Jan 2006 16:50:30 -0000 1.1.1.1.2.1 @@ -18,8 +18,11 @@ set package_id [ad_conn package_id] set package_url [ad_conn package_url] -if { [exists_and_not_null move_to] } { +set page_title "Move subscription" +array set ag_info [news_aggregator::aggregator::aggregator_info -aggregator_id $aggregator_id] +set context [list [list "." "$ag_info(aggregator_name)"] "$page_title"] +if { [exists_and_not_null move_to] } { foreach source_id $source_ids { news_aggregator::subscription::move \ -source_id $source_id \ @@ -47,11 +50,18 @@ ad_script_abort } -set page_title "Move subscription" -set context [list $page_title] +set sources [list] +foreach source $source_id { + lappend sources '$source' +} +set sources [join $sources ","] -set package_id [ad_conn package_id] -set list_of_aggregators [db_list_of_lists select_aggregators {}] +set list_of_aggregators [list] +db_foreach select_aggregators {} { + if { $write_p eq "t" } { + lappend list_of_aggregators [list $move_to_name $move_to_id] + } +} ad_form -name move_subscription -form { {aggregator_id:integer(hidden) Index: openacs-4/packages/news-aggregator/www/subscription-move.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/subscription-move.xql,v diff -u -r1.1.1.1 -r1.1.1.1.2.1 --- openacs-4/packages/news-aggregator/www/subscription-move.xql 20 Mar 2004 11:04:39 -0000 1.1.1.1 +++ openacs-4/packages/news-aggregator/www/subscription-move.xql 4 Jan 2006 16:50:30 -0000 1.1.1.1.2.1 @@ -4,14 +4,15 @@ - select a.aggregator_name, - a.aggregator_id - from na_aggregators a join - acs_objects o on (o.object_id = a.aggregator_id) join - na_user_preferences u on (o.creation_user = u.user_id) + select a.aggregator_name as move_to_name, + a.aggregator_id as move_to_id, + acs_permission__permission_p(a.aggregator_id,:user_id,'write') as write_p + from na_aggregators a where a.package_id = :package_id - and u.user_id = :user_id - and a.aggregator_id != :aggregator_id + and not exists (select 1 + from na_subscriptions s + where a.aggregator_id = s.aggregator_id + and source_id in ($sources)) order by aggregator_name Index: openacs-4/packages/news-aggregator/www/subscriptions.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/subscriptions.tcl,v diff -u -r1.7.2.2 -r1.7.2.3 --- openacs-4/packages/news-aggregator/www/subscriptions.tcl 4 Jan 2006 05:26:29 -0000 1.7.2.2 +++ openacs-4/packages/news-aggregator/www/subscriptions.tcl 4 Jan 2006 16:50:30 -0000 1.7.2.3 @@ -53,7 +53,11 @@ ad_script_abort } -set aggregator_count [db_string count_aggregators {}] +# find aggregators user has write privs on +set aggregator_count 0 +db_foreach count_aggregators {} { + if { $write_p eq "t" } { incr aggregator_count } +} set bulk_actions { Unsubscribe subscriptions Unsubscribe Index: openacs-4/packages/news-aggregator/www/subscriptions.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/news-aggregator/www/subscriptions.xql,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/news-aggregator/www/subscriptions.xql 4 Jan 2006 05:29:20 -0000 1.3.2.1 +++ openacs-4/packages/news-aggregator/www/subscriptions.xql 4 Jan 2006 16:50:30 -0000 1.3.2.2 @@ -4,11 +4,8 @@ - select count(*) - from na_aggregators a, - acs_objects o - where a.aggregator_id = o.object_id - and o.creation_user = :user_id + select acs_permission__permission_p(aggregator_id,:user_id,'write') as write_p + from na_aggregators