first commit
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
use Duplicator\Addons\ProBase\License\License;
|
||||
use Duplicator\Controllers\SettingsPageController;
|
||||
use Duplicator\Core\CapMng;
|
||||
use Duplicator\Core\Controllers\ControllersManager;
|
||||
use Duplicator\Core\Views\TplMng;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
?>
|
||||
<form id="dup-capabilites-form" action="<?php echo esc_url(ControllersManager::getCurrentLink()); ?>" method="post" data-parsley-validate>
|
||||
<?php $tplData['actions'][SettingsPageController::ACTION_CAPABILITIES_SAVE]->getActionNonceFileds(); ?>
|
||||
<div class="dup-capabilities-selector-wrapper" >
|
||||
<h3 class="title">
|
||||
<?php esc_html_e('Roles and Permissions', 'duplicator-pro') ?>
|
||||
</h3>
|
||||
<hr size="1" />
|
||||
<?php $tplMng->render('admin_pages/settings/capabilities/no_license_message'); ?>
|
||||
<p>
|
||||
<?php
|
||||
esc_html_e(
|
||||
'Select the user roles and/or users that are allowed to manage different aspects of Duplicator.',
|
||||
'duplicator-pro'
|
||||
); ?><br>
|
||||
<?php
|
||||
esc_html_e(
|
||||
'By default, all permissions are provided only to administrator users.',
|
||||
'duplicator-pro'
|
||||
); ?><br>
|
||||
<?php
|
||||
esc_html_e(
|
||||
'Some capabilities depend on others so if you select for example storage capability automatically the package read and package edit capabilities are assigned.', // phpcs:ignore Generic.Files.LineLength
|
||||
'duplicator-pro'
|
||||
);
|
||||
?><br>
|
||||
<b>
|
||||
<?php esc_html_e('It is not possible to self remove the manage settings capabilities.', 'duplicator-pro'); ?>
|
||||
</b>
|
||||
</p>
|
||||
<table class="form-table">
|
||||
<tbody>
|
||||
<?php
|
||||
$capList = CapMng::getCapsInfo();
|
||||
foreach ($capList as $cap => $capInfo) {
|
||||
if ($cap === CapMng::CAP_LICENSE && !CapMng::can(CapMng::CAP_LICENSE, false)) {
|
||||
continue;
|
||||
}
|
||||
$inputName = TplMng::getInputName('cap', $cap) . '[]';
|
||||
$inputId = TplMng::getInputId('cap', $cap);
|
||||
$tCont = $tplMng->render(
|
||||
'admin_pages/settings/capabilities/capabilites_info_tooltip',
|
||||
[
|
||||
'info' => $capInfo,
|
||||
'pLabel' => (strlen($capInfo['parent']) > 0 ? $capList[$capInfo['parent']]['label'] : ''),
|
||||
],
|
||||
false
|
||||
);
|
||||
|
||||
$nParents = 0;
|
||||
$pCeck = $capInfo;
|
||||
while (strlen($pCeck['parent']) > 0) {
|
||||
$nParents++;
|
||||
$pCeck = $capList[$pCeck['parent']];
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<label for="<?php echo esc_attr($inputId); ?>" >
|
||||
<?php echo esc_html(str_repeat('- ', $nParents)); ?>
|
||||
<?php echo esc_html($capInfo['label']); ?>
|
||||
</label>
|
||||
<i
|
||||
class="fas fa-question-circle fa-sm"
|
||||
data-tooltip-title="<?php echo esc_attr($capInfo['label']); ?>"
|
||||
data-tooltip="<?php echo esc_attr($tCont); ?>"
|
||||
data-tooltip-width="600"
|
||||
>
|
||||
</i>
|
||||
</th>
|
||||
<td>
|
||||
<select
|
||||
id="<?php echo esc_attr($inputId); ?>"
|
||||
name="<?php echo esc_attr($inputName); ?>"
|
||||
multiple
|
||||
<?php disabled(License::can(License::CAPABILITY_CAPABILITIES_MNG), false); ?>
|
||||
>
|
||||
<?php
|
||||
foreach (CapMng::getSelectableRoles() as $role => $roleName) {
|
||||
if (!in_array($role, CapMng::getInstance()->getCapRoles($cap))) {
|
||||
continue;
|
||||
}
|
||||
?>
|
||||
<option
|
||||
value="<?php echo esc_attr($role); ?>"
|
||||
<?php selected(true); ?>
|
||||
>
|
||||
<?php echo esc_html($roleName); ?>
|
||||
</option>
|
||||
<?php
|
||||
}
|
||||
foreach (CapMng::getInstance()->getCapUsers($cap) as $userId) {
|
||||
if (($user = get_user_by('id', $userId) ) == false) {
|
||||
continue;
|
||||
}
|
||||
?>
|
||||
<option
|
||||
value="<?php echo (int) $user->ID; ?>"
|
||||
<?php selected(true); ?>
|
||||
>
|
||||
<?php echo esc_html($user->user_email); ?>
|
||||
</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p>
|
||||
<input
|
||||
type="submit" name="submit" id="submit"
|
||||
class="button-primary"
|
||||
value="<?php esc_attr_e('Update Capabilities', 'duplicator-pro') ?>"
|
||||
<?php disabled(License::can(License::CAPABILITY_CAPABILITIES_MNG), false); ?>
|
||||
>
|
||||
|
||||
<button
|
||||
id="dup-capabilities-reset"
|
||||
class="button-secondary"
|
||||
>
|
||||
<?php esc_html_e('Reset to Default', 'duplicator-pro'); ?>
|
||||
</button>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<?php
|
||||
//Delete Dialog
|
||||
$dlgDelete = new DUP_PRO_UI_Dialog();
|
||||
$dlgDelete->title = __('Are you sure do you want to reset the capabilities to default?', 'duplicator-pro');
|
||||
$dlgDelete->message = '<p>' . __('This action will reassign all the capabilities of the Administrator role.', 'duplicator-pro') . '<p>';
|
||||
$dlgDelete->jsCallback = 'DupPro.Settings.CapabilitesReset()';
|
||||
$dlgDelete->initConfirm();
|
||||
?>
|
||||
|
||||
<script>
|
||||
jQuery(document).ready(function($) {
|
||||
DupPro.Settings.CapabilitesReset = function () {
|
||||
window.location.href = <?php echo json_encode($tplData['actions'][SettingsPageController::ACTION_CAPABILITIES_RESET]->getUrl()); ?>;
|
||||
};
|
||||
|
||||
$('.dup-capabilities-selector-wrapper select').select2({
|
||||
width: 'resolve',
|
||||
ajax: {
|
||||
type: "POST",
|
||||
url: ajaxurl,
|
||||
dataType: 'json',
|
||||
delay: 250,
|
||||
data: function (params) {
|
||||
let query = {
|
||||
search: params.term,
|
||||
page: params.page || 1,
|
||||
action: 'duplicator_settings_cap_users_list',
|
||||
nonce: '<?php echo esc_js(wp_create_nonce('duplicator_settings_cap_users_list')); ?>'
|
||||
}
|
||||
return query;
|
||||
},
|
||||
processResults: function (data) {
|
||||
return data.data.funcData;
|
||||
},
|
||||
cache: true
|
||||
},
|
||||
placeholder: <?php echo json_encode(__('Search roles or users', 'duplicator-pro')); ?>,
|
||||
minimumInputLength: <?php echo (License::can(License::CAPABILITY_CAPABILITIES_MNG_PLUS) ? 2 : 0); ?>
|
||||
});
|
||||
|
||||
$('#dup-capabilities-reset').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
<?php $dlgDelete->showConfirm(); ?>
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
use Duplicator\Core\CapMng;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
$info = $tplData['info'];
|
||||
?>
|
||||
<p>
|
||||
<?php echo esc_html($info['desc']); ?>
|
||||
</p>
|
||||
<?php if (strlen($info['parent']) > 0) { ?>
|
||||
<br>
|
||||
<?php esc_html_e('Parent', 'duplicator-pro'); ?>: <b><?php echo esc_html($tplData['pLabel']); ?></b>
|
||||
<?php } ?>
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Duplicator
|
||||
*/
|
||||
|
||||
use Duplicator\Addons\ProBase\License\License;
|
||||
use Duplicator\Addons\ProBase\Models\LicenseData;
|
||||
|
||||
defined("ABSPATH") or die("");
|
||||
|
||||
/**
|
||||
* Variables
|
||||
*
|
||||
* @var Duplicator\Core\Controllers\ControllersManager $ctrlMng
|
||||
* @var Duplicator\Core\Views\TplMng $tplMng
|
||||
* @var array<string, mixed> $tplData
|
||||
*/
|
||||
|
||||
if (License::can(License::CAPABILITY_CAPABILITIES_MNG)) {
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<p id="dup-no-license-message" class="dup-border-left-red-notice" >
|
||||
<b>
|
||||
<?php
|
||||
esc_html_e(
|
||||
'The current license does not allow to manage the capabilities. ',
|
||||
'duplicator-pro'
|
||||
);
|
||||
?>
|
||||
</b>
|
||||
<br>
|
||||
<?php
|
||||
if (License::getLicenseStatus() === LicenseData::STATUS_VALID) {
|
||||
printf(
|
||||
esc_html_x(
|
||||
'If you want to manage the capabilities please %1$supgrade your license%2$s.',
|
||||
'1: <a> tag, 2: </a> tag',
|
||||
'duplicator-pro'
|
||||
),
|
||||
'<a href="' . esc_url(License::getUpsellURL()) . '" target="_blank">',
|
||||
'</a>'
|
||||
);
|
||||
} else {
|
||||
printf(
|
||||
esc_html_x(
|
||||
'If you want to manage the capabilities please %1$srenew your license%2$s.',
|
||||
'1: <a> tag, 2: </a> tag',
|
||||
'duplicator-pro'
|
||||
),
|
||||
'<a href="' . esc_url(License::getUpsellURL()) . '" target="_blank">',
|
||||
'</a>'
|
||||
);
|
||||
}
|
||||
?>
|
||||
<br><br>
|
||||
<?php
|
||||
esc_html_e(
|
||||
'It\'s possible to reset the capabilities to the default values with "Reset to default" button.',
|
||||
'duplicator-pro'
|
||||
);
|
||||
?>
|
||||
|
||||
</p>
|
||||
Reference in New Issue
Block a user