antoniop
committed
on 19 Mar 21
Update italian localization
openacs-4/.../test/oacs-dav-procs.tcl (+108 -1)
109 109         oacs_dav::conn -set extra_url $name
110 110         oacs_dav::conn -set urlv [split $uri "/"]
111 111         oacs_dav::conn -set package_id $package_id
112 112         set parent_folder_id [db_string get_parent_folder "" -default "-100"]
113 113         oacs_dav::conn -set folder_id $parent_folder_id
114 114         oacs_dav::register_folder $parent_folder_id $sn(node_id)
115 115         foreach fname [split $name "/"] {
116 116             set uri "$uri${fname}/"
117 117             oacs_dav::conn -set item_name $fname
118 118             oacs_dav::conn -set uri $uri
119 119             oacs_dav::conn -set extra_url $fname
120 120             oacs_dav::conn -set urlv [split $uri "/"]
121 121             aa_log "name $fname uri $uri"
122 122             set response [oacs_dav::impl::content_folder::mkcol]
123 123             set new_folder_id [db_string folder_exists "" -default ""]
124 124             aa_true "Content Folder $fname created" {$new_folder_id ne ""}
125 125         }
126 126     }
127 127 }
128 128
  129 aa_register_case -procs {
  130     oacs_dav::children_have_permission_p
  131 } oacs_dav_children_have_permission_p {
  132     Test the api that checks whether one has permissions on all
  133     children.
  134 } {
  135     aa_run_with_teardown -rollback -test_code {
  136         set user [acs::test::user::create]
  137         set user_id [dict get $user user_id]
  138
  139         set admin [acs::test::user::create -admin]
  140         set admin_id [dict get $admin user_id]
  141
  142         aa_section {Create a folder containing a cr_item with a few revisions}
  143
  144         set root_folder_id [db_string get_root_folder {
  145             select min(item_id) from cr_items
  146             where content_type = 'content_folder'
  147             and parent_id <= 0
  148         }]
  149
  150         set name __OACS_DAV_TEST_FOLDER
  151         set folder_id [content::folder::new \
  152                                  -label $name \
  153                                  -name $name]
  154
  155         content::folder::register_content_type \
  156             -folder_id $folder_id \
  157             -content_type "content_revision"
  158
  159         set item_id [content::item::new \
  160                                -name "test_item_one" \
  161                                -parent_id $folder_id \
  162                                -storage_type "text"]
  163
  164         set title "Test Title"
  165         set revision_id [content::revision::new \
  166                              -item_id $item_id \
  167                              -title $title \
  168                              -description "Test Description" \
  169                              -content "Test Content"]
  170
  171         set title "Test Title2"
  172         set revision_id [content::revision::new \
  173                              -item_id $item_id \
  174                              -title $title \
  175                              -description "Test Description2" \
  176                              -content "Test Content2"]
  177
  178         foreach priv {read write delete admin} {
  179             aa_false "User does not have permission to '$priv' on the folder" \
  180                 [oacs_dav::children_have_permission_p \
  181                      -user_id $user_id -item_id $folder_id -privilege $priv]
  182             aa_true "Admin has permission to '$priv' on the folder" \
  183                 [oacs_dav::children_have_permission_p \
  184                      -user_id $admin_id -item_id $folder_id -privilege $priv]
  185         }
  186
  187         aa_section "Set cr_item to not inherit permissions from the folder"
  188         db_dml query {update acs_objects set security_inherit_p = 'f' where object_id = :item_id}
  189
  190         aa_log "Grant read permission on the folder"
  191         permission::grant -party_id $user_id -object_id $folder_id -privilege read
  192
  193         aa_false "User does still not have permission to 'read' on the folder (no permissions on item)" \
  194             [oacs_dav::children_have_permission_p \
  195                  -user_id $user_id -item_id $folder_id -privilege read]
  196
  197         aa_log "Grant read permission on the item"
  198         permission::grant -party_id $user_id -object_id $item_id -privilege read
  199
  200         aa_false "User still does not have permission 'read' on the item (no delete permission on the revisions)" \
  201             [oacs_dav::children_have_permission_p \
  202                  -user_id $user_id -item_id $item_id -privilege read]
  203
  204         aa_log "Grant delete permission on the item"
  205         permission::grant -party_id $user_id -object_id $item_id -privilege delete
  206         aa_true "User has now permission 'read' on the item (revision inherit from item)" \
  207             [oacs_dav::children_have_permission_p \
  208                  -user_id $user_id -item_id $item_id -privilege read]
  209
  210         aa_log "Grant delete permission singularly to the revisions"
  211         foreach revision_id [db_list q {select revision_id from cr_revisions where item_id = :item_id}] {
  212             permission::grant -party_id $user_id -object_id $revision_id -privilege delete
  213         }
  214
  215         aa_true "User now havs permission 'read' on the item" \
  216             [oacs_dav::children_have_permission_p \
  217                  -user_id $user_id -item_id $item_id -privilege read]
  218
  219         aa_section "Set cr_item to inherit permissions from the folder"
  220         db_dml query {update acs_objects set security_inherit_p = 't' where object_id = :item_id}
  221
  222         aa_true "User now has permission 'read' on the folder" \
  223             [oacs_dav::children_have_permission_p \
  224                  -user_id $user_id -item_id $folder_id -privilege read]
  225
  226         aa_log "Revoke read permission on the item"
  227         permission::revoke -party_id $user_id -object_id $item_id -privilege read
  228
  229         aa_true "User still has permission 'read' on the folder" \
  230             [oacs_dav::children_have_permission_p \
  231                  -user_id $user_id -item_id $folder_id -privilege read]
  232     }
  233 }
  234
  235
129 236 # Local variables:
130 237 #    mode: tcl
131 238 #    tcl-indent-level: 4
132 239 #    indent-tabs-mode: nil
133 240 # End: