feat: Add CPT capabilities to roles
This commit is contained in:
parent
4f136b3222
commit
e26f9ec54f
1 changed files with 73 additions and 11 deletions
|
|
@ -10,7 +10,7 @@ namespace Quiztech\AssessmentPlatform\Includes;
|
||||||
|
|
||||||
// If this file is called directly, abort.
|
// If this file is called directly, abort.
|
||||||
if ( ! \defined( 'WPINC' ) ) {
|
if ( ! \defined( 'WPINC' ) ) {
|
||||||
\die;
|
die;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -25,23 +25,85 @@ function quiztech_add_roles_and_capabilities() {
|
||||||
'quiz_manager',
|
'quiz_manager',
|
||||||
\__( 'Quiz Manager', 'quiztech' ),
|
\__( 'Quiz Manager', 'quiztech' ),
|
||||||
array(
|
array(
|
||||||
'read' => true, // Basic read access
|
'read' => true, // Basic read access
|
||||||
|
|
||||||
// Add specific capabilities for Quiztech CPTs later
|
// Question CPT Capabilities
|
||||||
// 'edit_questions' => true,
|
'edit_question' => true,
|
||||||
// 'publish_questions' => true,
|
'read_question' => true,
|
||||||
// 'delete_questions' => true,
|
'delete_question' => true,
|
||||||
// ... etc for assessments, jobs, evaluations
|
'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
|
// Add capabilities to Administrator role as well
|
||||||
$admin_role = \get_role( 'administrator' );
|
$admin_role = \get_role( 'administrator' );
|
||||||
if ( $admin_role ) {
|
if ( $admin_role ) {
|
||||||
// Add specific capabilities later
|
// Add all the same capabilities as quiz_manager
|
||||||
// $admin_role->add_cap( 'manage_quiztech_settings' );
|
$quiz_manager_role = \get_role('quiz_manager');
|
||||||
// $admin_role->add_cap( 'edit_questions' );
|
if ($quiz_manager_role) {
|
||||||
// ... etc
|
foreach ($quiz_manager_role->capabilities as $cap => $grant) {
|
||||||
|
if ($grant) { // Only add granted capabilities
|
||||||
|
$admin_role->add_cap($cap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue