<?php
// Phase-1 verification: per-type capability landscape. Temporary; deleted after testing.
$c = get_post_type_object( 'bw_career' )->cap;
echo "bw_career: edit_post={$c->edit_post} edit_posts={$c->edit_posts} create={$c->create_posts} publish={$c->publish_posts}\n";
$s = get_post_type_object( 'staff' )->cap;
echo "staff: edit_posts={$s->edit_posts} create={$s->create_posts}\n";
$h = get_post_type_object( 'bw_hundred' )->cap;
echo "bw_hundred: edit_posts={$h->edit_posts} create={$h->create_posts}\n";
$t = get_taxonomy( 'course_subject' )->cap;
echo "course_subject: assign={$t->assign_terms} manage={$t->manage_terms} delete={$t->delete_terms}\n";
$t2 = get_taxonomy( 'department' )->cap;
echo "department: assign={$t2->assign_terms}\n";
$t3 = get_taxonomy( 'livestream_category' )->cap;
echo "livestream_category: assign={$t3->assign_terms}\n";
$t4 = get_taxonomy( 'category' )->cap;
echo "blog category (untouched): assign={$t4->assign_terms}\n";

foreach ( array( 'administrator', 'editor', 'bw_site_editor', 'bw_blog_manager' ) as $slug ) {
	$r = get_role( $slug );
	printf(
		"%-16s careers=%d courses=%d staffs=%d livestreams=%d landings=%d hundreds=%d others_careers=%d create_careers=%d LEGACY=%d\n",
		$slug,
		(int) $r->has_cap( 'edit_bw_careers' ),
		(int) $r->has_cap( 'edit_bw_courses' ),
		(int) $r->has_cap( 'edit_bw_staffs' ),
		(int) $r->has_cap( 'edit_bw_livestreams' ),
		(int) $r->has_cap( 'edit_bw_landings' ),
		(int) $r->has_cap( 'edit_bw_hundreds' ),
		(int) $r->has_cap( 'edit_others_bw_careers' ),
		(int) $r->has_cap( 'create_bw_careers' ),
		(int) $r->has_cap( 'edit_bw_contents' )
	);
}

// The real-user consequence: can an existing editor still open a career? A site_editor their own?
$editors = get_users( array( 'role' => 'editor', 'number' => 1, 'fields' => 'ID' ) );
if ( $editors ) {
	$career = get_posts( array( 'post_type' => 'bw_career', 'numberposts' => 1, 'post_status' => 'any' ) );
	if ( $career ) {
		echo 'editor user can edit career #' . $career[0]->ID . ': ' . ( user_can( $editors[0], 'edit_post', $career[0]->ID ) ? 'YES' : 'NO' ) . "\n";
	}
}
echo "DONE\n";
