Compare commits

..

No commits in common. "master" and "v1.5" have entirely different histories.
master ... v1.5

7 changed files with 64 additions and 78 deletions

View File

@ -1,15 +1,3 @@
dcAdvancedCleaner 1.6.1 - 2023.11.04
===========================================================
* Require Dotclear 2.28
* Require PHP 8.1
* Cosmetic fix
dcAdvancedCleaner 1.6 - 2023.10.18
===========================================================
* Require Dotclear 2.28
* Require PHP 8.1
* Upgrade plugin acitivtyReport
dcAdvancedCleaner 1.5 - 2023.10.13
===========================================================
* Require Dotclear 2.28

View File

@ -1,7 +1,7 @@
# README
[![Release](https://img.shields.io/badge/release-1.6.1-a2cbe9.svg)](https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/releases)
![Date](https://img.shields.io/badge/date-2023.11.04-c44d58.svg)
[![Release](https://img.shields.io/badge/release-1.5-a2cbe9.svg)](https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/releases)
![Date](https://img.shields.io/badge/date-2023.10.13-c44d58.svg)
[![Dotclear](https://img.shields.io/badge/dotclear-v2.28-137bbb.svg)](https://fr.dotclear.org/download)
[![Dotaddict](https://img.shields.io/badge/dotaddict-official-9ac123.svg)](https://plugins.dotaddict.org/dc2/details/dcAdvancedCleaner)
[![License](https://img.shields.io/badge/license-GPL--2.0-ececec.svg)](https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/src/branch/master/LICENSE)
@ -16,8 +16,8 @@ _dcAdvancedCleaner_ is a plugin for the open-source web publishing software call
* Dotclear 2.28
* PHP 8.1+
* Plugin Uninstaller (from distribution)
* Dotclaer superadmin permission
* Plugin Uninstaller
* Permissions superadmin
## USAGE

View File

@ -18,7 +18,7 @@ $this->registerModule(
'Advanced cleaner',
'Make a huge cleaning of dotclear',
'Jean-Christian Denis and Contributors',
'1.6.1',
'1.5',
[
'requires' => [
['core', '2.28'],

View File

@ -2,10 +2,10 @@
<modules xmlns:da="http://dotaddict.org/da/">
<module id="dcAdvancedCleaner">
<name>Advanced cleaner</name>
<version>1.6.1</version>
<version>1.5</version>
<author>Jean-Christian Denis and Contributors</author>
<desc>Make a huge cleaning of dotclear</desc>
<file>https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/releases/download/v1.6.1/plugin-dcAdvancedCleaner.zip</file>
<file>https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/releases/download/v1.5/plugin-dcAdvancedCleaner.zip</file>
<da:dcmin>2.28</da:dcmin>
<da:details>https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/src/branch/master/README.md</da:details>
<da:support>https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/issues</da:support>

View File

@ -1,54 +0,0 @@
<?php
declare(strict_types=1);
namespace Dotclear\Plugin\dcAdvancedCleaner;
use Dotclear\Core\Process;
use Dotclear\Plugin\activityReport\{
Action,
ActivityReport,
Group
};
use Dotclear\Plugin\Uninstaller\Uninstaller;
/**
* @brief dcAdvancedCleaner plugin activityReport class.
* @ingroup dcAdvancedCleaner
*
* @author Jean-Christian Denis (author)
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
*/
class ActivityReportAction extends Process
{
public static function init(): bool
{
return self::status(true);
}
public static function process(): bool
{
if (!self::status()) {
return false;
}
$group = new Group(My::id(), My::name());
$group->add(new Action(
'uninstall',
__('Uninstalling module'),
'%s',
'UninstallerBeforeAction',
function (string $id, string $action, string $ns): void {
$success = Uninstaller::instance()->cleaners->get($id)?->get($action)?->success;
if (!is_null($success)) {
ActivityReport::instance()->addLog(My::id(), 'uninstall', [sprintf($success, $ns)]);
}
}
));
ActivityReport::instance()->groups->add($group);
return true;
}
}

View File

@ -18,10 +18,7 @@ class My extends MyPlugin
{
public static function checkCustomContext(int $context): ?bool
{
return match ($context) {
// Limit to super admin
self::MODULE => App::auth()->isSuperAdmin(),
default => null,
};
// Limit to backend and super admin
return App::task()->checkContext('BACKEND') && App::auth()->isSuperAdmin();
}
}

55
src/Prepend.php Normal file
View File

@ -0,0 +1,55 @@
<?php
declare(strict_types=1);
namespace Dotclear\Plugin\dcAdvancedCleaner;
use Dotclear\Core\Process;
use Dotclear\Plugin\activityReport\{
Action,
ActivityReport,
Group
};
use Dotclear\Plugin\Uninstaller\Uninstaller;
/**
* @brief dcAdvancedCleaner prepend class.
* @ingroup dcAdvancedCleaner
*
* @author Jean-Christian Denis (author)
* @copyright GPL-2.0 https://www.gnu.org/licenses/gpl-2.0.html
*/
class Prepend extends Process
{
public static function init(): bool
{
return self::status(My::checkContext(My::PREPEND));
}
public static function process(): bool
{
if (!self::status()) {
return false;
}
// log plugin Uninstaller actions
if (defined('ACTIVITY_REPORT') && ACTIVITY_REPORT == 3) {
$group = new Group(My::id(), My::name());
$group->add(new Action(
'uninstaller',
__('Uninstalling module'),
'%s',
'UninstallerBeforeAction',
function (string $id, string $action, string $ns): void {
$success = Uninstaller::instance()->cleaners->get($id)?->get($action)?->success;
if (!is_null($success)) {
ActivityReport::instance()->addLog(My::id(), 'uninstaller', [sprintf($success, $ns)]);
}
}
));
ActivityReport::instance()->groups->add($group);
}
return true;
}
}