REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 4.33 KB
Close
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/getgenie/app/Api/RoleManagement.php
Text
Base64
<?php namespace GenieAi\App\Api; class RoleManagement { public $prefix = ''; public $param = ''; public $request = null; /** * Constructor * * Registers the REST API route for saving role management configuration. * * @access public * @return void */ public function __construct() { add_action('rest_api_init', function () { register_rest_route('getgenie/v1', 'role-management', array( 'methods' => 'POST', 'callback' => [$this, 'save_role_management_config'], 'permission_callback' => '__return_true', )); register_rest_route('getgenie/v1', 'wp-roles', array( 'methods' => 'POST', 'callback' => [$this, 'get_wp_default_roles'], 'permission_callback' => '__return_true', )); }); } /** * Save role management configuration * * Handles the request to save the role management configuration. * * @access public * @param \WP_REST_Request $request The request object. * @return array The response data. */ public function save_role_management_config($request) { try { if (!wp_verify_nonce($request->get_header('X-WP-Nonce'), 'wp_rest')) { return [ 'status' => 'fail', 'message' => ['Nonce mismatch.'], ]; } if (!is_user_logged_in() || !current_user_can('manage_options')) { return [ 'status' => 'fail', 'message' => ['Access denied.'], ]; } $config_data = $request->get_json_params(); // Validate that required keys are present $required_keys = ['access_seo_insights', 'access_ai_writing', 'access_keyword_research']; foreach ($required_keys as $key) { if (!isset($config_data[$key])) { return [ 'status' => 'fail', 'message' => ["Missing required key: {$key}"], ]; } } // Save to WordPress options table update_option('genie_role_management_config', $config_data); return [ 'status' => 'success', 'message' => ['Role management config updated successfully.'], 'data' => $config_data, ]; } catch (\Exception $e) { return [ 'status' => 'fail', 'message' => ['An error occurred: ' . $e->getMessage()], ]; } } /** * Get all default WordPress roles * * Handles the request to get all default WordPress roles. * * @access public * @param \WP_REST_Request $request The request object. * @return array The response data. */ public function get_wp_default_roles($request) { try { if (!wp_verify_nonce($request->get_header('X-WP-Nonce'), 'wp_rest')) { return [ 'status' => 'fail', 'message' => ['Nonce mismatch.'], ]; } if (!is_user_logged_in() || !current_user_can('manage_options')) { return [ 'status' => 'fail', 'message' => ['Access denied.'], ]; } $wp_roles = \wp_roles()->get_names(); $roles = []; foreach ($wp_roles as $role => $label) { // Only include roles that have 'publish_posts' capability $role_obj = \wp_roles()->get_role($role); if ($role_obj && !empty($role_obj->capabilities['publish_posts'])) { $roles[] = [ 'role' => $role, 'label' => $label, ]; } } return [ 'status' => 'success', 'data' => $roles, ]; } catch (\Exception $e) { return [ 'status' => 'fail', 'message' => ['An error occurred: ' . $e->getMessage()], ]; } } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 12
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
AdminConfig.php
3.51 KB
lrw-r--r--
2026-06-07 13:34:58
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Feedback.php
2.07 KB
lrw-r--r--
2023-05-24 09:21:28
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
GetGenieChat.php
8.16 KB
lrw-r--r--
2026-06-07 13:34:58
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
History.php
6.85 KB
lrw-r--r--
2024-04-21 12:55:28
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
LeaseToken.php
1020 B
lrw-r--r--
2023-05-08 11:08:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
License.php
3.04 KB
lrw-r--r--
2024-11-24 17:04:50
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Parser.php
2.04 KB
lrw-r--r--
2023-05-08 11:08:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
RoleManagement.php
4.33 KB
lrw-r--r--
2026-06-07 13:34:58
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Store.php
2.50 KB
lrw-r--r--
2026-06-07 13:34:58
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SubscriptionUpgradeUrl.php
1.43 KB
lrw-r--r--
2023-05-08 11:08:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
UploadImage.php
3.99 KB
lrw-r--r--
2024-04-21 12:55:28
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
UsageLimitStats.php
2.21 KB
lrw-r--r--
2023-05-08 11:08:16
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).