_oacs-dav__oacs_dav_children_have_permission_p (private)

 _oacs-dav__oacs_dav_children_have_permission_p

Defined in packages/oacs-dav/tcl/test/oacs-dav-procs.tcl

Partial Call Graph (max 5 caller/called nodes):
%3 aa_false aa_false (public) aa_log aa_log (public) aa_log_result aa_log_result (public) aa_run_with_teardown aa_run_with_teardown (public) aa_section aa_section (public) _oacs-dav__oacs_dav_children_have_permission_p _oacs-dav__oacs_dav_children_have_permission_p _oacs-dav__oacs_dav_children_have_permission_p->aa_false _oacs-dav__oacs_dav_children_have_permission_p->aa_log _oacs-dav__oacs_dav_children_have_permission_p->aa_log_result _oacs-dav__oacs_dav_children_have_permission_p->aa_run_with_teardown _oacs-dav__oacs_dav_children_have_permission_p->aa_section

Testcases:
No testcase defined.
Source code:
        
        set _aa_export {}
        set body_count 1
        foreach testcase_body {{
    aa_run_with_teardown -rollback -test_code {
        set user [acs::test::user::create]
        set user_id [dict get $user user_id]

        set admin [acs::test::user::create -admin]
        set admin_id [dict get $admin user_id]

        aa_section {Create a folder containing a cr_item with a few revisions}

        set root_folder_id [db_string get_root_folder {
            select min(item_id) from cr_items
            where content_type = 'content_folder'
            and parent_id <= 0
        }]

        set name __OACS_DAV_TEST_FOLDER
        set folder_id [content::folder::new  -label $name  -name $name]

        content::folder::register_content_type  -folder_id $folder_id  -content_type "content_revision"

        set item_id [content::item::new  -name "test_item_one"  -parent_id $folder_id  -storage_type "text"]

        set title "Test Title"
        set revision_id [content::revision::new  -item_id $item_id  -title $title  -description "Test Description"  -content "Test Content"]

        set title "Test Title2"
        set revision_id [content::revision::new  -item_id $item_id  -title $title  -description "Test Description2"  -content "Test Content2"]

        foreach priv {read write delete admin} {
            aa_false "User does not have permission to '$priv' on the folder"  [oacs_dav::children_have_permission_p  -user_id $user_id -item_id $folder_id -privilege $priv]
            aa_true "Admin has permission to '$priv' on the folder"  [oacs_dav::children_have_permission_p  -user_id $admin_id -item_id $folder_id -privilege $priv]
        }

        aa_section "Set cr_item to not inherit permissions from the folder"
        db_dml query {update acs_objects set security_inherit_p = 'f' where object_id = :item_id}

        aa_log "Grant read permission on the folder"
        permission::grant -party_id $user_id -object_id $folder_id -privilege read

        aa_false "User does still not have permission to 'read' on the folder (no permissions on item)"  [oacs_dav::children_have_permission_p  -user_id $user_id -item_id $folder_id -privilege read]

        aa_log "Grant read permission on the item"
        permission::grant -party_id $user_id -object_id $item_id -privilege read

        aa_false "User still does not have permission 'read' on the item (no delete permission on the revisions)"  [oacs_dav::children_have_permission_p  -user_id $user_id -item_id $item_id -privilege read]

        aa_log "Grant delete permission on the item"
        permission::grant -party_id $user_id -object_id $item_id -privilege delete
        aa_true "User has now permission 'read' on the item (revision inherit from item)"  [oacs_dav::children_have_permission_p  -user_id $user_id -item_id $item_id -privilege read]

        aa_log "Grant delete permission singularly to the revisions"
        foreach revision_id [db_list q {select revision_id from cr_revisions where item_id = :item_id}] {
            permission::grant -party_id $user_id -object_id $revision_id -privilege delete
        }

        aa_true "User now havs permission 'read' on the item"  [oacs_dav::children_have_permission_p  -user_id $user_id -item_id $item_id -privilege read]

        aa_section "Set cr_item to inherit permissions from the folder"
        db_dml query {update acs_objects set security_inherit_p = 't' where object_id = :item_id}

        aa_true "User now has permission 'read' on the folder"  [oacs_dav::children_have_permission_p  -user_id $user_id -item_id $folder_id -privilege read]

        aa_log "Revoke read permission on the item"
        permission::revoke -party_id $user_id -object_id $item_id -privilege read

        aa_true "User still has permission 'read' on the folder"  [oacs_dav::children_have_permission_p  -user_id $user_id -item_id $folder_id -privilege read]
    }
}} {
          aa_log "Running testcase body $body_count"
          set ::__aa_test_indent [info level]
          set catch_val [catch $testcase_body msg]
          if {$catch_val != 0 && $catch_val != 2} {
              aa_log_result "fail" "oacs_dav_children_have_permission_p (body $body_count): Error during execution: $msg, stack trace: \n$::errorInfo"
          }
          incr body_count
        }
XQL Not present:
Oracle
Generic XQL file:
packages/oacs-dav/tcl/test/oacs-dav-procs.xql

PostgreSQL XQL file:
packages/oacs-dav/tcl/test/oacs-dav-procs-postgresql.xql

[ hide source ] | [ make this the default ]
Show another procedure: