Index: openacs-4/packages/imsld/tcl/imsld-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-procs.tcl,v diff -u -N -r1.31 -r1.32 --- openacs-4/packages/imsld/tcl/imsld-procs.tcl 7 Feb 2006 13:51:39 -0000 1.31 +++ openacs-4/packages/imsld/tcl/imsld-procs.tcl 8 Feb 2006 13:55:35 -0000 1.32 @@ -441,18 +441,8 @@ } set resources_activities_list [imsld::process_learning_activity -activity_item_id $activity_item_id -resource_mode "t"] - foreach resource_activity [join $resources_activities_list] { #grant permissions for newly appeared resources - foreach the_resource_id [join $resources_activities_list] { - if {![db_0or1row get_object_from_resource {}]} { - if { [db_0or1row get_cr_item_from_resource {}] } { - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" - } - } else { - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" - } - } - } + imsld::grant_permissions -resources_activities_list $resources_activities_list -user_id $user_id } ad_proc -public imsld::mark_act_finished { @@ -1997,15 +1987,8 @@ if { [string length "${prerequisites}${objectives}"] } { template::multirow append imsld_multirow $prerequisites $objectives {} {} {} {} - foreach the_resource_id [join [list $prerequisites_list_ids $objectives_list_ids]] { - if {![db_0or1row get_object_from_resource {}]} { - if { [db_0or1row get_cr_item_from_resource {}] } { - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" - } - } else { - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" - } - } + + imsld::grant_permissions -resources_activities_list [join [list $prerequisites_list_ids $objectives_list_ids]] -user_id $user_id } if { ![db_string get_last_entry { @@ -2303,22 +2286,10 @@ set activities_list [imsld::process_learning_activity -activity_item_id $activity_item_id] set resources_activities_list [imsld::process_learning_activity -activity_item_id $activity_item_id -resource_mode "t"] - foreach resource_activity [join $resources_activities_list] { -#grant permissions for newly appeared resources - foreach the_resource_id [join $resources_activities_list] { - if {![db_0or1row get_object_from_resource {}]} { - if { [db_0or1row get_cr_item_from_resource {}] } { - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" - } - } else { + #grant permissions for newly appeared resources + imsld::grant_permissions -resources_activities_list $resources_activities_list -user_id $user_id - permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" - } - } - } - - set prerequisites "" if { [llength [lindex $activities_list 0]] } { set prerequisites "[lindex [lindex $activities_list 0] 0]
" @@ -2683,5 +2654,28 @@ } +ad_proc -public imsld::grant_permissions { + -resources_activities_list + -user_id +} { +

Grant permissions to imsld files related to imsld resources

+ + @author Luis de la Fuente Valent�n (lfuente@it.uc3m.es) +} { + foreach the_resource_id [join $resources_activities_list] { + + if {![db_0or1row get_object_from_resource {}]} { + + set related_cr_items [db_list get_cr_item_from_resource {} ] + + foreach the_object_id $related_cr_items { + permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" + } + } else { + permission::grant -party_id $user_id -object_id $the_object_id -privilege "read" + } + } + +} ad_register_proc GET /finish-component-element* imsld::finish_component_element ad_register_proc POST /finish-component-element* imsld::finish_component_element Index: openacs-4/packages/imsld/tcl/imsld-procs.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/imsld/tcl/imsld-procs.xql,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/imsld/tcl/imsld-procs.xql 6 Feb 2006 18:12:50 -0000 1.7 +++ openacs-4/packages/imsld/tcl/imsld-procs.xql 8 Feb 2006 13:55:35 -0000 1.8 @@ -233,7 +233,7 @@ - + select acs_object_id as the_object_id from imsld_cp_resourcesi @@ -243,9 +243,9 @@ - + - select ar.object_id_two as the_object_id + select ar.object_id_two as related_cr_items from acs_rels ar where ar.object_id_one=:the_resource_id and ar.rel_type='imsld_res_files_rel' @@ -1719,25 +1719,7 @@ - - - select ar.object_id_two as the_object_id - from acs_rels ar - where ar.object_id_one=:the_resource_id and - ar.rel_type='imsld_res_files_rel' - - - - - - select acs_object_id as the_object_id - from imsld_cp_resourcesi - where item_id = :the_resource_id and - acs_object_id is not null - - - select resource_id