PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 2.5.5
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v2.5.5
4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.5.2 All 199 releases
betterdocs / includes / Core / Roles.php

Roles.php in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 2.5.5, at includes/Core/Roles.php

119 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPDeveloper\BetterDocs\Core;
4
5 use WPDeveloper\BetterDocs\Utils\Base;
6 use WPDeveloper\BetterDocs\Utils\Database;
7
8 class Roles extends Base {
9 /**
10 * Summary of Database
11 * @var Database
12 */
13 public $database;
14
15 public function __construct( Database $database ) {
16 $this->database = $database;
17 }
18
19 /**
20 * Default Roles Capabilities
21 *
22 * @var array
23 */
24 public function defaults_capabilities() {
25 $default_capabilities = [
26 'administrator' => [
27 // post type related caps
28 'edit_docs',
29 'edit_others_docs',
30 'edit_private_docs',
31 'edit_published_docs',
32 'read_private_docs',
33 'publish_docs',
34 'delete_docs',
35 'delete_private_docs',
36 'delete_published_docs',
37 'delete_others_docs',
38
39 // doc_terms related caps
40 'manage_doc_terms',
41 'edit_doc_terms',
42 'delete_doc_terms',
43
44 // kb terms related caps
45 'manage_knowledge_base_terms',
46 'edit_knowledge_base_terms',
47 'delete_knowledge_base_terms',
48
49 // Settings and Analytics Related caps
50 'edit_docs_settings',
51 'read_docs_analytics'
52 ],
53 'editor' => [
54 // post type related caps
55 'edit_docs',
56 'edit_others_docs',
57 'edit_private_docs',
58 'edit_published_docs',
59 'read_private_docs',
60 'publish_docs',
61 'delete_docs',
62 'delete_private_docs',
63 'delete_published_docs',
64 'delete_others_docs',
65
66 // doc_terms related caps
67 'manage_doc_terms',
68 'edit_doc_terms',
69 'delete_doc_terms',
70
71 // kb terms related caps
72 'manage_knowledge_base_terms',
73 'edit_knowledge_base_terms',
74 'delete_knowledge_base_terms'
75 ],
76 'author' => [
77 'edit_docs',
78 'edit_published_docs',
79 'publish_docs',
80 'delete_docs',
81 'delete_published_docs'
82 ],
83 'contributor' => [
84 'edit_docs',
85 'delete_docs'
86 ]
87 ];
88
89 return apply_filters( 'betterdocs_default_caps', $default_capabilities );
90 }
91
92 public function setup( $remove = false ) {
93 if ( $this->database->get( '_betterdocs_caps_initialized', false ) && ! $remove ) {
94 return;
95 }
96
97 global $wp_roles;
98
99 $capabilities = $this->defaults_capabilities();
100
101 if( $remove ) {
102 unset( $capabilities['administrator'] );
103 }
104
105 foreach ( $capabilities as $role => $caps ) {
106 foreach ( $caps as $cap ) {
107 if ( $remove ) {
108 $wp_roles->remove_cap( $role, $cap );
109 continue;
110 }
111
112 $wp_roles->add_cap( $role, $cap );
113 }
114 }
115
116 $this->database->get( '_betterdocs_caps_initialized', ! $remove );
117 }
118 }
119