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 ( ! \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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue