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 dcAdvancedCleaner 1.5 - 2023.10.13
=========================================================== ===========================================================
* Require Dotclear 2.28 * Require Dotclear 2.28

View File

@ -1,7 +1,7 @@
# README # README
[![Release](https://img.shields.io/badge/release-1.6.1-a2cbe9.svg)](https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/releases) [![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.11.04-c44d58.svg) ![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) [![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) [![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) [![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 * Dotclear 2.28
* PHP 8.1+ * PHP 8.1+
* Plugin Uninstaller (from distribution) * Plugin Uninstaller
* Dotclaer superadmin permission * Permissions superadmin
## USAGE ## USAGE

View File

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

View File

@ -2,10 +2,10 @@
<modules xmlns:da="http://dotaddict.org/da/"> <modules xmlns:da="http://dotaddict.org/da/">
<module id="dcAdvancedCleaner"> <module id="dcAdvancedCleaner">
<name>Advanced cleaner</name> <name>Advanced cleaner</name>
<version>1.6.1</version> <version>1.5</version>
<author>Jean-Christian Denis and Contributors</author> <author>Jean-Christian Denis and Contributors</author>
<desc>Make a huge cleaning of dotclear</desc> <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:dcmin>2.28</da:dcmin>
<da:details>https://git.dotclear.watch/JcDenis/dcAdvancedCleaner/src/branch/master/README.md</da:details> <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> <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 public static function checkCustomContext(int $context): ?bool
{ {
return match ($context) { // Limit to backend and super admin
// Limit to super admin return App::task()->checkContext('BACKEND') && App::auth()->isSuperAdmin();
self::MODULE => App::auth()->isSuperAdmin(),
default => null,
};
} }
} }

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;
}
}