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

137 lines 3.1 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 $this->assgin_faq_builder_capability_to_admin(); //will run when it is called
19 }
20
21 /**
22 * Assign FAQ Builder Capability To The Admin
23 */
24 public function assgin_faq_builder_capability_to_admin() {
25 if( current_user_can('administrator') && ! current_user_can('read_faq_builder') ) { // if the current user is admin, and current user does not have faq menu visibility option, then assign the faq menu visibility capability
26 $current_user_role = get_role('administrator');
27 $current_user_role->add_cap('read_faq_builder');
28 }
29 }
30
31 /**
32 * Default Roles Capabilities
33 *
34 * @var array
35 */
36 public function defaults_capabilities() {
37 $default_capabilities = [
38 'administrator' => [
39 // post type related caps
40 'edit_docs',
41 'edit_others_docs',
42 'edit_private_docs',
43 'edit_published_docs',
44 'read_private_docs',
45 'publish_docs',
46 'delete_docs',
47 'delete_private_docs',
48 'delete_published_docs',
49 'delete_others_docs',
50
51 // doc_terms related caps
52 'manage_doc_terms',
53 'edit_doc_terms',
54 'delete_doc_terms',
55
56 // kb terms related caps
57 'manage_knowledge_base_terms',
58 'edit_knowledge_base_terms',
59 'delete_knowledge_base_terms',
60
61 // Settings and Analytics Related caps
62 'edit_docs_settings',
63 'read_docs_analytics',
64 'read_faq_builder'
65 ],
66 'editor' => [
67 // post type related caps
68 'edit_docs',
69 'edit_others_docs',
70 'edit_private_docs',
71 'edit_published_docs',
72 'read_private_docs',
73 'publish_docs',
74 'delete_docs',
75 'delete_private_docs',
76 'delete_published_docs',
77 'delete_others_docs',
78
79 // doc_terms related caps
80 'manage_doc_terms',
81 'edit_doc_terms',
82 'delete_doc_terms',
83
84 // kb terms related caps
85 'manage_knowledge_base_terms',
86 'edit_knowledge_base_terms',
87 'delete_knowledge_base_terms'
88 ],
89 'author' => [
90 'edit_docs',
91 'edit_published_docs',
92 'publish_docs',
93 'delete_docs',
94 'delete_published_docs'
95 ],
96 'contributor' => [
97 'edit_docs',
98 'delete_docs'
99 ],
100 'other' => [
101 // post type related caps
102 'edit_docs',
103 'delete_docs'
104 ]
105 ];
106
107 return apply_filters( 'betterdocs_default_caps', $default_capabilities );
108 }
109
110 public function setup( $remove = false ) {
111 if ( $this->database->get( '_betterdocs_caps_initialized', false ) && ! $remove ) {
112 return;
113 }
114
115 global $wp_roles;
116
117 $capabilities = $this->defaults_capabilities();
118
119 if ( $remove ) {
120 unset( $capabilities['administrator'] );
121 }
122
123 foreach ( $capabilities as $role => $caps ) {
124 foreach ( $caps as $cap ) {
125 if ( $remove ) {
126 $wp_roles->remove_cap( $role, $cap );
127 continue;
128 }
129
130 $wp_roles->add_cap( $role, $cap );
131 }
132 }
133
134 $this->database->get( '_betterdocs_caps_initialized', ! $remove );
135 }
136 }
137