PluginProbe
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards / 5.5.85
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards v5.5.85
5.5.85 5.5.84 5.5.83 5.5.82 5.5.81 5.5.80 5.5.79 5.5.77 5.5.76 5.5.75 5.5.73 5.5.72 5.5.22 5.5.23 5.5.29 5.5.3 5.5.31 5.5.32 5.5.34 5.5.35 5.5.36 5.5.37 5.5.4 5.5.40 5.5.41 All 161 releases
wp-data-access / WPDataAccess / Settings / WPDA_Settings_Legacy_Dashboard.php

WPDA_Settings_Legacy_Dashboard.php in WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards 5.5.85, at WPDataAccess/Settings/WPDA_Settings_Legacy_Dashboard.php

249 lines 12.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPDataAccess\Settings {
4
5 use WPDataAccess\Utilities\WPDA_Message_Box;
6 use WPDataAccess\WPDA;
7
8 class WPDA_Settings_Legacy_Dashboard extends WPDA_Settings_Legacy_Page {
9
10 const DASHBOARD_ROLES = 'wpda_dashboard_roles';
11 const DASHBOARD_USERS = 'wpda_dashboard_users';
12 const DASHBOARD_ROLES_HIDE_DEFAULT = 'wpda_dashboard_roles_hide_default';
13 const DASHBOARD_USERS_HIDE_DEFAULT = 'wpda_dashboard_users_hide_default';
14 const DASHBOARD_ROLES_CREATE = 'wpda_dashboard_roles_create';
15 const DASHBOARD_USERS_CREATE = 'wpda_dashboard_users_create';
16
17 public function show() {
18
19 if ( isset( $_REQUEST['action'] ) ) {
20 $action = sanitize_text_field( wp_unslash( $_REQUEST['action'] ) ); // input var okay.
21
22 // Security check.
23 $wp_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ) : ''; // input var okay.
24 if ( ! wp_verify_nonce( $wp_nonce, 'wpda-dashboard-settings-' . WPDA::get_current_user_login() ) ) {
25 wp_die( esc_attr__( 'ERROR: Not authorized', 'wp-data-access' ) );
26 }
27
28 if ( 'save' === $action ) {
29 $this->update( 'dashboard_roles', self::DASHBOARD_ROLES );
30 $this->update( 'dashboard_users', self::DASHBOARD_USERS );
31 $this->update( 'hide_default_roles', self::DASHBOARD_ROLES_HIDE_DEFAULT );
32 $this->update( 'hide_default_users', self::DASHBOARD_USERS_HIDE_DEFAULT );
33 $this->update( 'create_roles', self::DASHBOARD_ROLES_CREATE );
34 $this->update( 'create_users', self::DASHBOARD_USERS_CREATE );
35 } elseif ( 'setdefaults' === $action ) {
36 delete_option( self::DASHBOARD_ROLES );
37 delete_option( self::DASHBOARD_USERS );
38 delete_option( self::DASHBOARD_ROLES_HIDE_DEFAULT );
39 delete_option( self::DASHBOARD_USERS_HIDE_DEFAULT );
40 delete_option( self::DASHBOARD_ROLES_CREATE );
41 delete_option( self::DASHBOARD_USERS_CREATE );
42 }
43
44 $msg = new WPDA_Message_Box(
45 array(
46 'message_text' => __( 'Settings saved', 'wp-data-access' ),
47 )
48 );
49 $msg->box();
50 }
51
52 global $wp_roles;
53 $roles = $wp_roles->roles;
54 unset( $roles['administrator'] );
55
56 $users = get_users();
57
58 $granted_roles = get_option( self::DASHBOARD_ROLES );
59 $granted_users = get_option( self::DASHBOARD_USERS );
60
61 $hide_default_roles = get_option( self::DASHBOARD_ROLES_HIDE_DEFAULT );
62 $hide_default_users = get_option( self::DASHBOARD_USERS_HIDE_DEFAULT );
63
64 $create_roles = get_option( self::DASHBOARD_ROLES_CREATE );
65 $create_users = get_option( self::DASHBOARD_USERS_CREATE );
66 ?>
67 <form id="wpda_settings_dashboard" method="post"
68 action="?page=<?php echo esc_attr( $this->page ); ?>&tab=legacy&vtab=dashboard">
69 <table class="wpda-table-settings">
70 <tr style="border-top: 1px solid #ccc">
71 <th><?php esc_html_e( 'Dashboard role access', 'wp-data-access' ); ?></th>
72 <td>
73 <div class="wpda_separator_bottom">
74 Select roles to grant dashboard access:
75 </div>
76 <select name="dashboard_roles[]" multiple size="<?php echo esc_attr( min( 5, count( $roles ) ) ); ?>">
77 <?php
78 foreach ( $roles as $key => $role ) {
79 $selected = false !== strpos( $granted_roles, $key ) ? 'selected' : '';
80 ?>
81 <option value="<?php echo esc_attr( $key ); ?>" <?php echo esc_attr( $selected ); ?>>
82 <?php echo esc_attr( $role['name'] ); ?>
83 </option>
84 <?php
85 }
86 ?>
87 </select>
88 <ul>
89 <li>Administrators have access by default</li>
90 <li>Hold the control key to select multiple</li>
91 </ul>
92 </td>
93 </tr>
94 <tr>
95 <th><?php esc_html_e( 'Dashboard user access', 'wp-data-access' ); ?></th>
96 <td>
97 <div class="wpda_separator_bottom">
98 Select users to grant dashboard access:
99 </div>
100 <select name="dashboard_users[]" multiple size="<?php echo esc_attr( min( 5, count( $users ) ) ); ?>">
101 <?php
102 foreach ( $users as $user ) {
103 $selected = false !== strpos( $granted_users, $user->data->user_login ) ? 'selected' : '';
104 ?>
105 <option value="<?php echo esc_attr( $user->data->user_login ); ?>" <?php echo esc_attr( $selected ); ?>>
106 <?php echo esc_attr( $user->data->display_name ); ?>
107 </option>
108 <?php
109 }
110 ?>
111 </select>
112 <ul>
113 <li>No role access needed to grant access to specific users</li>
114 <li>Hold the control key to select multiple</li>
115 </ul>
116 </td>
117 </tr>
118 <tr>
119 <th><?php esc_html_e( 'Hide default tab', 'wp-data-access' ); ?></th>
120 <td>
121 <div class="wpda_separator_bottom">
122 Hide default tab for the following roles:
123 </div>
124 <select name="hide_default_roles[]" multiple size="<?php echo esc_attr( min( 5, count( $roles ) ) ); ?>">
125 <?php
126 foreach ( $roles as $key => $role ) {
127 $selected = false !== strpos( $hide_default_roles, $key ) ? 'selected' : '';
128 ?>
129 <option value="<?php echo esc_attr( $key ); ?>" <?php echo esc_attr( $selected ); ?>>
130 <?php echo esc_attr( $role['name'] ); ?>
131 </option>
132 <?php
133 }
134 ?>
135 </select>
136 <div class="wpda_separator_top wpda_separator_bottom">
137 Hide default tab for the following users:
138 </div>
139 <select name="hide_default_users[]" multiple size="<?php echo esc_attr( min( 5, count( $users ) ) ); ?>">
140 <?php
141 foreach ( $users as $user ) {
142 $selected = false !== strpos( $hide_default_users, $user->data->user_login ) ? 'selected' : '';
143 ?>
144 <option value="<?php echo esc_attr( $user->data->user_login ); ?>" <?php echo esc_attr( $selected ); ?>>
145 <?php echo esc_attr( $user->data->display_name ); ?>
146 </option>
147 <?php
148 }
149 ?>
150 </select>
151 <ul>
152 <li>Widgets currently added the users default tab will not be delete (user can readd them to another tab)</li>
153 </ul>
154 </td>
155 </tr>
156 <tr>
157 <th><?php esc_html_e( 'Create dashboard', 'wp-data-access' ); ?></th>
158 <td>
159 <div class="wpda_separator_bottom">
160 All dashboard users are allowed to create new dashboards by default.
161 Select only roles and users NOT allowed to create dashboards.
162 </div>
163 <div class="wpda_separator_bottom">
164 The following roles are NOT allowed to create dashboards:
165 </div>
166 <select name="create_roles[]" multiple size="<?php echo esc_attr( min( 5, count( $roles ) ) ); ?>">
167 <?php
168 foreach ( $roles as $key => $role ) {
169 $selected = false !== strpos( $create_roles, $key ) ? 'selected' : '';
170 ?>
171 <option value="<?php echo esc_attr( $key ); ?>" <?php echo esc_attr( $selected ); ?>>
172 <?php echo esc_attr( $role['name'] ); ?>
173 </option>
174 <?php
175 }
176 ?>
177 </select>
178 <div class="wpda_separator_top wpda_separator_bottom">
179 The following users are NOT allowed to create dashboards:
180 </div>
181 <select name="create_users[]" multiple size="<?php echo esc_attr( min( 5, count( $users ) ) ); ?>">
182 <?php
183 foreach ( $users as $user ) {
184 $selected = false !== strpos( $create_users, $user->data->user_login ) ? 'selected' : '';
185 ?>
186 <option value="<?php echo esc_attr( $user->data->user_login ); ?>" <?php echo esc_attr( $selected ); ?>>
187 <?php echo esc_attr( $user->data->display_name ); ?>
188 </option>
189 <?php
190 }
191 ?>
192 </select>
193 </td>
194 </tr>
195 </table>
196
197 <div class="wpda-table-settings-button">
198 <input type="hidden" name="action" value="save"/>
199 <button type="submit" class="button button-primary">
200 <i class="fas fa-check wpda_icon_on_button"></i>
201 <?php esc_html_e( 'Save Dashboard Settings', 'wp-data-access' ); ?>
202 </button>
203 <a href="javascript:void(0)"
204 onclick="if (confirm('<?php esc_html_e( 'Reset to defaults?', 'wp-data-access' ); ?>')) {
205 jQuery('input[name=&quot;action&quot;]').val('setdefaults');
206 jQuery('#wpda_settings_dashboard').trigger('submit')
207 }"
208 class="button">
209 <i class="fas fa-times-circle wpda_icon_on_button"></i>
210 <?php esc_html_e( 'Reset Dashboard Settings To Defaults', 'wp-data-access' ); ?>
211 </a>
212 </div>
213 <?php wp_nonce_field( 'wpda-dashboard-settings-' . WPDA::get_current_user_login(), '_wpnonce', false ); ?>
214 </form>
215
216 <style>
217 #wpda_settings_dashboard ul {
218 list-style-type: disc;
219 margin-left: 20px;
220 margin-bottom: 0;
221 }
222 #wpda_settings_dashboard ul li {
223 margin-bottom: 0;
224 }
225 </style>
226 <?php
227
228 }
229
230 private function update( $key, $option ) {
231
232 if ( isset( $_REQUEST[ $key ] ) ) { // phpcs:ignore
233 $request = isset( $_REQUEST[ $key ] ) ? $_REQUEST[ $key ] : null; // phpcs:ignore
234 if ( is_array( $request ) ) {
235 $value = sanitize_text_field( wp_unslash( implode( ',', $request ) ) );
236 } else {
237 $value = '';
238 }
239 } else {
240 $value = '';
241 }
242
243 update_option( $option, $value );
244
245 }
246
247 }
248
249 }