PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 3.5.1
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v3.5.1
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 3.5.1, at includes/Core/Roles.php

124 lines 3.4 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 'other' => [
88 // post type related caps
89 'edit_docs',
90 'delete_docs'
91 ]
92 ];
93
94 return apply_filters( 'betterdocs_default_caps', $default_capabilities );
95 }
96
97 public function setup( $remove = false ) {
98 if ( $this->database->get( '_betterdocs_caps_initialized', false ) && ! $remove ) {
99 return;
100 }
101
102 global $wp_roles;
103
104 $capabilities = $this->defaults_capabilities();
105
106 if ( $remove ) {
107 unset( $capabilities['administrator'] );
108 }
109
110 foreach ( $capabilities as $role => $caps ) {
111 foreach ( $caps as $cap ) {
112 if ( $remove ) {
113 $wp_roles->remove_cap( $role, $cap );
114 continue;
115 }
116
117 $wp_roles->add_cap( $role, $cap );
118 }
119 }
120
121 $this->database->get( '_betterdocs_caps_initialized', ! $remove );
122 }
123 }
124