Files
Digital-Dabei-Hamburg-Job-M…/includes/class-roles.php
Viktor Miller 79b13895fc feat(01-03): register ddhh_provider role with restricted capabilities
- Add DDHH_JM_Roles class with add_roles() and remove_roles() methods
- Role 'ddhh_provider' (Anbieter) can edit/delete own job_offers only
- Jobs go to pending status (publish_job_offers: false)
- No access to regular posts/pages (edit_posts/edit_pages: false)
- Can upload files for logos
- Integrated with Activator and Deactivator hooks
2026-01-14 19:00:50 +09:00

63 lines
1.4 KiB
PHP

<?php
/**
* User roles handler
*
* @package DDHH_Job_Manager
*/
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
/**
* Handles custom user roles
*/
class DDHH_JM_Roles {
/**
* Add custom roles
* Called on plugin activation
*/
public static function add_roles() {
// Register ddhh_provider role
add_role(
'ddhh_provider',
__( 'Anbieter', 'ddhh-job-manager' ),
array(
// Basic WordPress access
'read' => true,
// Job offer capabilities (own only)
'edit_job_offers' => true,
'delete_job_offers' => true,
'upload_files' => true,
// Explicitly deny publishing (jobs go to pending for admin approval)
'publish_job_offers' => false,
// Explicitly deny editing others' content
'edit_others_job_offers' => false,
// Explicitly deny access to regular posts/pages
'edit_posts' => false,
'edit_pages' => false,
'edit_others_posts' => false,
'edit_others_pages' => false,
'publish_posts' => false,
'publish_pages' => false,
// Explicitly deny admin functions
'manage_categories' => false,
'manage_options' => false,
)
);
}
/**
* Remove custom roles
* Called on plugin deactivation
*/
public static function remove_roles() {
remove_role( 'ddhh_provider' );
}
}