Index: openacs-4/packages/dotlrn-fs/tcl/dotlrn-fs-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-fs/tcl/dotlrn-fs-procs.tcl,v diff -u -r1.29 -r1.30 --- openacs-4/packages/dotlrn-fs/tcl/dotlrn-fs-procs.tcl 21 Feb 2002 21:55:33 -0000 1.29 +++ openacs-4/packages/dotlrn-fs/tcl/dotlrn-fs-procs.tcl 22 Feb 2002 20:31:57 -0000 1.30 @@ -150,6 +150,50 @@ return [db_string select_folder_id {} -default ""] } + ad_proc -public get_user_root_folder_name { + {-user_id:required} + } { + Get the internal name for a user's root folder. + } { + return "dotlrn_fs_${user_id}_root_folder" + } + + ad_proc -public get_user_root_folder { + {-user_id:required} + } { + Get the folder_id of a user's root folder. + } { + set name [get_user_root_folder_name -user_id $user_id] + + return [db_string get_user_root_folder { + select item_id + from cr_items + where name = :name + } -default ""] + } + + ad_proc -public get_user_shared_folder_name { + {-user_id:required} + } { + Get the internal name for a user's root folder. + } { + return "dotlrn_fs_${user_id}_shared_folder" + } + + ad_proc -public get_user_shared_folder { + {-user_id:required} + } { + Get the folder_id of a user's shared folder. + } { + set name [get_user_shared_folder_name -user_id $user_id] + + return [db_string get_user_root_folder { + select item_id + from cr_items + where name = :name + } -default ""] + } + ad_proc -public add_user { user_id } { @@ -174,15 +218,15 @@ # does this user already have a root folder? set user_root_folder_id [fs::get_folder \ - -name "${user_id}_folder" \ + -name [get_user_root_folder_name -user_id $user_id] \ -parent_id $root_folder_id \ ] if {[empty_string_p $user_root_folder_id]} { # create the user's root folder set user_root_folder_id [fs::new_folder \ - -name "${user_id}_folder" \ + -name [get_user_root_folder_name -user_id $user_id] \ -parent_id $root_folder_id \ -pretty_name "${user_name}'s Files" \ -creation_user $user_id \ @@ -209,24 +253,25 @@ -page_id $page_id $portal_id $package_id $user_root_folder_id } - # does this user already have a root folder? + # does this user already have a shared folder? set user_shared_folder_id [fs::get_folder \ - -name "${user_id}_shared_folder" \ + -name [get_user_shared_folder_name -user_id $user_id] \ -parent_id $user_root_folder_id \ ] if {[empty_string_p $user_shared_folder_id]} { # create the user's shared folder set user_shared_folder_id [fs::new_folder \ - -name "${user_id}_shared_folder" \ + -name [get_user_shared_folder_name -user_id $user_id] \ -parent_id $user_root_folder_id \ -pretty_name "${user_name}'s Shared Files" \ -creation_user $user_id \ ] # set the permissions for this folder; only the user has access to it - ad_permission_grant [dotlrn::get_full_users_rel_segment_id] $user_shared_folder_id "read" + # ad_permission_grant [dotlrn::get_full_users_rel_segment_id] $user_shared_folder_id "read" + ad_permission_grant [acs_magic_object "the_public"] $user_shared_folder_id "read" } }