PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 3.6.2
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v3.6.2
6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 3.6.66 All 195 releases
fluentform / app / Modules / Acl / RoleManager.php

RoleManager.php in Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder 3.6.2, at app/Modules/Acl/RoleManager.php

105 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentForm\App\Modules\Acl;
4
5 class RoleManager
6 {
7 public function getRoles() {
8 if(!current_user_can('manage_options')) {
9 wp_send_json_success(array(
10 'capability' => array(),
11 'roles' => array()
12 ), 200);
13 }
14
15 $roles = \get_editable_roles();
16 $formatted = array();
17 foreach ($roles as $key => $role) {
18 if($key == 'administrator') {
19 continue;
20 }
21 if($key != 'subscriber') {
22 $formatted[] = array(
23 'name' => $role['name'],
24 'key' => $key
25 );
26 }
27 }
28
29 $capability = get_option('_fluentform_form_permission');
30
31 if (is_string($capability)) {
32 $capability = [];
33 }
34
35 wp_send_json_success(array(
36 'capability' => $capability,
37 'roles' => $formatted
38 ), 200);
39 }
40
41 public function setRoles() {
42 if(current_user_can('manage_options')) {
43 $capability = isset($_REQUEST['capability']) ? $_REQUEST['capability'] : [];
44 update_option('_fluentform_form_permission', $capability, 'no');
45 wp_send_json_success( array(
46 'message' => __('Successfully saved the role(s).', 'fluentform')
47 ), 200 );
48 } else {
49 wp_send_json_error(array(
50 'message' => __('Sorry, You can not update permissions. Only administrators can update permissions', 'fluentform')
51 ), 423);
52 }
53 }
54
55 public function verifyPermissionSet()
56 {
57 $availablePermissions = Acl::getPermissionSet();
58 $currentCapability = $this->currentUserFormFormCapability();
59 if(!$currentCapability) {
60 return;
61 }
62
63 // Give permission to internal issues
64 foreach ($availablePermissions as $permission) {
65 add_filter('fluentform_verify_user_permission_'.$permission, function ($allowed) {
66 return true;
67 });
68 }
69
70 // Give permission to menu items
71 add_filter('fluentform_dashboard_capability', function ($capability) use ($currentCapability) {
72 return $currentCapability;
73 });
74
75 add_filter('fluentform_settings_capability', function ($capability) use ($currentCapability) {
76 return $currentCapability;
77 });
78 }
79
80 public function currentUserFormFormCapability() {
81
82 if(current_user_can('manage_options')) {
83 return 'manage_options';
84 }
85 if(!is_user_logged_in()) {
86 return false;
87 }
88
89 $capabilities = get_option('_fluentform_form_permission');
90 if (is_string($capabilities)) {
91 $capabilities = [];
92 }
93 if(!$capabilities) {
94 return;
95 }
96 foreach ($capabilities as $capability) {
97 if(current_user_can($capability)) {
98 return $capability;
99 }
100 }
101 return false;
102 }
103
104 }
105