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