| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.2/wp-content/plugins/fluentform/app/Services/Roles/ |
Upload File : |
<?php
namespace FluentForm\App\Services\Roles;
use FluentForm\Framework\Support\Arr;
class RolesService
{
public function getRoles($attributes = [])
{
if (!current_user_can('manage_options')) {
return ([
'capability' => [],
'roles' => [],
]);
}
$formatted = $this->getFormattedRoles();
$capability = get_option('_fluentform_form_permission');
if (is_string($capability)) {
$capability = [];
}
return ([
'capability' => $capability,
'roles' => $formatted,
]);
}
public function setCapability($attributes = [])
{
if (current_user_can('manage_options')) {
$capability = wp_unslash(Arr::get($attributes, 'capability', []));
foreach ($capability as $item) {
if ('subscriber' == strtolower($item)) {
return ([
'message' => __('Sorry, you can not give access to the Subscriber role.', 'fluentform'),
]);
}
}
update_option('_fluentform_form_permission', $capability, 'no');
return ([
'message' => __('Successfully saved the role(s).', 'fluentform'),
]);
} else {
return ([
'message' => __('Sorry, You can not update permissions. Only administrators can update permissions',
'fluentform')
]);
}
}
private function getFormattedRoles()
{
if (!function_exists('get_editable_roles')) {
require_once ABSPATH . 'wp-admin/includes/user.php';
}
$formatted = [];
$roles = \get_editable_roles();
foreach ($roles as $key => $role) {
if ('administrator' == $key) {
continue;
}
if ('subscriber' != $key) {
$formatted[] = [
'name' => $role['name'],
'key' => $key,
];
}
}
return $formatted;
}
}