FEAT Handling conseiller custom role

This commit is contained in:
Antoine M 2025-04-07 12:14:52 +02:00
parent 9a87cfb024
commit d531a46fad
2 changed files with 55 additions and 0 deletions

View File

@ -4,6 +4,7 @@
require_once(__DIR__ . '/includes/errorlog.php');
require_once(__DIR__ . '/includes/init.php');
require_once(__DIR__ . '/includes/roles.php');
require_once(__DIR__ . '/includes/post_types.php');
require_once(__DIR__ . '/includes/artisans.php');
require_once(__DIR__ . '/includes/artisans-columns-filters.php');

54
includes/roles.php Normal file
View File

@ -0,0 +1,54 @@
<?php
/* -----------------------------------------------------------
Création du rôle conseiller
-----------------------------------------------------------*/
function create_conseiller_role()
{
// Récupérer les capacités du rôle author
$author_role = get_role('author');
$capabilities = $author_role->capabilities;
$capabilities['export_artisans_datas'] = false;
$capabilities['edit_others_posts'] = true;
$capabilities['publish_posts'] = true;
$capabilities['read'] = true;
$capabilities['upload_files'] = true;
// Capacités pour la gestion des médias
// $capabilities['edit_posts'] = true;
// $capabilities['delete_posts'] = true;
// $capabilities['edit_published_posts'] = true;
// $capabilities['delete_published_posts'] = true;
// $capabilities['edit_others_posts'] = false; // Ne peut pas éditer les posts des autres
// $capabilities['delete_others_posts'] = false; // Ne peut pas supprimer les posts des autres
// $capabilities['edit_attachments'] = true; // Peut éditer ses propres médias
// $capabilities['delete_attachments'] = true; // Peut supprimer ses propres médias
// $capabilities['edit_others_attachments'] = false; // Ne peut pas éditer les médias des autres
// $capabilities['delete_others_attachments'] = false; // Ne peut pas supprimer les médias des autres
add_role('conseiller', 'Conseiller', $capabilities);
}
add_action('init', 'create_conseiller_role');
/* -----------------------------------------------------------
Masquer les widgets du tableau de bord pour le rôle conseiller
-----------------------------------------------------------*/
function hide_dashboard_widgets_for_conseiller()
{
$user = wp_get_current_user();
if (in_array('conseiller', (array) $user->roles)) {
remove_meta_box('dashboard_right_now', 'dashboard', 'normal');
remove_meta_box('dashboard_activity', 'dashboard', 'normal');
remove_meta_box('dashboard_quick_press', 'dashboard', 'side');
remove_meta_box('dashboard_primary', 'dashboard', 'side');
remove_meta_box('dashboard_secondary', 'dashboard', 'side');
remove_meta_box('dashboard_recent_drafts', 'dashboard', 'side');
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
remove_meta_box('dashboard_incoming_links', 'dashboard', 'normal');
remove_meta_box('dashboard_plugins', 'dashboard', 'normal');
remove_meta_box('dashboard_site_health', 'dashboard', 'normal');
}
}
add_action('wp_dashboard_setup', 'hide_dashboard_widgets_for_conseiller');