feat: Add CPT capabilities to roles

This commit is contained in:
Ruben Ramirez 2025-04-03 22:27:11 -05:00
parent 4f136b3222
commit e26f9ec54f

View file

@ -10,7 +10,7 @@ namespace Quiztech\AssessmentPlatform\Includes;
// If this file is called directly, abort.
if ( ! \defined( 'WPINC' ) ) {
\die;
die;
}
/**
@ -25,23 +25,85 @@ function quiztech_add_roles_and_capabilities() {
'quiz_manager',
\__( 'Quiz Manager', 'quiztech' ),
array(
'read' => true, // Basic read access
'read' => true, // Basic read access
// Add specific capabilities for Quiztech CPTs later
// 'edit_questions' => true,
// 'publish_questions' => true,
// 'delete_questions' => true,
// ... etc for assessments, jobs, evaluations
// Question CPT Capabilities
'edit_question' => true,
'read_question' => true,
'delete_question' => true,
'edit_questions' => true,
'edit_others_questions' => true,
'publish_questions' => true,
'read_private_questions' => true,
'delete_questions' => true,
'delete_private_questions' => true,
'delete_published_questions'=> true,
'delete_others_questions' => true,
'edit_private_questions' => true,
'edit_published_questions' => true,
// Assessment CPT Capabilities
'edit_assessment' => true,
'read_assessment' => true,
'delete_assessment' => true,
'edit_assessments' => true,
'edit_others_assessments' => true,
'publish_assessments' => true,
'read_private_assessments' => true,
'delete_assessments' => true,
'delete_private_assessments'=> true,
'delete_published_assessments'=> true,
'delete_others_assessments' => true,
'edit_private_assessments' => true,
'edit_published_assessments'=> true,
// Job CPT Capabilities (Placeholder - Add as needed)
'edit_job' => true,
'read_job' => true,
'delete_job' => true,
'edit_jobs' => true,
'edit_others_jobs' => true,
'publish_jobs' => true,
'read_private_jobs' => true,
'delete_jobs' => true,
'delete_private_jobs' => true,
'delete_published_jobs' => true,
'delete_others_jobs' => true,
'edit_private_jobs' => true,
'edit_published_jobs' => true,
// User Evaluation CPT Capabilities (Placeholder - Add as needed)
'edit_user_evaluation' => true,
'read_user_evaluation' => true,
'delete_user_evaluation' => true,
'edit_user_evaluations' => true,
'edit_others_user_evaluations' => true,
'publish_user_evaluations' => true, // Maybe restrict this?
'read_private_user_evaluations' => true,
'delete_user_evaluations' => true,
'delete_private_user_evaluations' => true,
'delete_published_user_evaluations' => true,
'delete_others_user_evaluations' => true,
'edit_private_user_evaluations' => true,
'edit_published_user_evaluations' => true,
// Custom Capabilities
'manage_quiztech_settings' => true, // For accessing settings page
)
);
// Add capabilities to Administrator role as well
$admin_role = \get_role( 'administrator' );
if ( $admin_role ) {
// Add specific capabilities later
// $admin_role->add_cap( 'manage_quiztech_settings' );
// $admin_role->add_cap( 'edit_questions' );
// ... etc
// Add all the same capabilities as quiz_manager
$quiz_manager_role = \get_role('quiz_manager');
if ($quiz_manager_role) {
foreach ($quiz_manager_role->capabilities as $cap => $grant) {
if ($grant) { // Only add granted capabilities
$admin_role->add_cap($cap);
}
}
}
}
}