| @@ -129,8 +129,12 @@ | ||
| 129 | 129 | */ |
| 130 | 130 | public function post_elementor_rollback() { |
| 131 | 131 | check_admin_referer( 'elementor_rollback' ); |
| 132 | 132 | |
| 133 | + if ( ! static::can_user_rollback_versions() ) { | |
| 134 | + wp_die( esc_html__( 'Not allowed to rollback versions', 'elementor' ) ); | |
| 135 | + } | |
| 136 | + | |
| 133 | 137 | $rollback_versions = $this->get_rollback_versions(); |
| 134 | 138 | if ( empty( $_GET['version'] ) || ! in_array( $_GET['version'], $rollback_versions ) ) { |
| 135 | 139 | wp_die( esc_html__( 'Error occurred, The version selected is invalid. Try selecting different version.', 'elementor' ) ); |
| 136 | 140 | } |
| @@ -308,8 +312,9 @@ | ||
| 308 | 312 | ], |
| 309 | 313 | ], |
| 310 | 314 | ], |
| 311 | 315 | 'versions' => [ |
| 316 | + 'show_if' => static::can_user_rollback_versions(), | |
| 312 | 317 | 'label' => esc_html__( 'Version Control', 'elementor' ), |
| 313 | 318 | 'sections' => [ |
| 314 | 319 | 'rollback' => [ |
| 315 | 320 | 'label' => esc_html__( 'Rollback to Previous Version', 'elementor' ), |
| @@ -394,6 +399,15 @@ | ||
| 394 | 399 | * @return string Tools page title. |
| 395 | 400 | */ |
| 396 | 401 | protected function get_page_title() { |
| 397 | 402 | return __( 'Tools', 'elementor' ); |
| 403 | + } | |
| 404 | + | |
| 405 | + /** | |
| 406 | + * Check if the current user can access the version control tab and rollback versions. | |
| 407 | + * | |
| 408 | + * @return bool | |
| 409 | + */ | |
| 410 | + public static function can_user_rollback_versions() { | |
| 411 | + return current_user_can( 'activate_plugins' ) && current_user_can( 'update_plugins' ); | |
| 398 | 412 | } |
| 399 | 413 | } |