Ljonka has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/280415

Change subject: PermissionManager: add config and handler for max num of backups
......................................................................

PermissionManager: add config and handler for max num of backups

Change-Id: I5e9dd812e9470d5585f8fd4c08842b19caa147b9
---
M PermissionManager/PermissionManager.class.php
M PermissionManager/i18n/de.json
M PermissionManager/i18n/en.json
M PermissionManager/i18n/qqq.json
4 files changed, 17 insertions(+), 0 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceExtensions 
refs/changes/15/280415/1

diff --git a/PermissionManager/PermissionManager.class.php 
b/PermissionManager/PermissionManager.class.php
index 731bd52..999f08a 100644
--- a/PermissionManager/PermissionManager.class.php
+++ b/PermissionManager/PermissionManager.class.php
@@ -130,6 +130,7 @@
                BsConfig::registerVar( 'MW::PermissionManager::Lockmode', 
false, BsConfig::LEVEL_PUBLIC | BsConfig::TYPE_BOOL, 
'bs-permissionmanager-pref-lockmode', 'toggle' );
                BsConfig::registerVar( 'MW::PermissionManager::SkipSystemNS', 
false, BsConfig::LEVEL_PUBLIC | BsConfig::TYPE_BOOL, 
'bs-permissionmanager-pref-skipsysns', 'toggle' );
                BsConfig::registerVar( 'MW::PermissionManager::RealityCheck', 
false, BsConfig::LEVEL_PUBLIC | BsConfig::TYPE_BOOL | 
BsConfig::RENDER_AS_JAVASCRIPT, 'bs-permissionmanager-pref-enablerealitycheck', 
'toggle' );
+               BsConfig::registerVar( 'MW::PermissionManager::MaxBackups', 
false, BsConfig::LEVEL_PUBLIC | BsConfig::TYPE_INT, 
'bs-permissionmanager-pref-max-backups' );
 
                $this->setHook( 'BSWikiAdminUserManagerBeforeUserListSend' );
                $this->setHook( 'BSGroupManagerGroupNameChanged' );
@@ -702,5 +703,18 @@
 
                        file_put_contents( $backupFile, file_get_contents( 
$bsgConfigFiles['PermissionManager'] ) );
                }
+
+               //remove old backup files if max number exceeded
+               $arrConfigFiles = scandir(dirname( 
$bsgConfigFiles['PermissionManager'] ) . "/", SCANDIR_SORT_ASCENDING );
+               $arrBackupFiles = array_filter($arrConfigFiles, function($elem){
+                       return (strpos($elem, "pm-settings-backup-") !== FALSE) 
? true : false;
+               } );
+
+               //backward compatible, if not set, default limit to 5 backups
+               $maxBackups = (BsConfig::get( 
"MW::PermissionManager::MaxBackups" ) > 0) ? BsConfig::get( 
"MW::PermissionManager::MaxBackups" ) : 5;
+               while( count( $arrBackupFiles ) > $maxBackups ) {
+                       $oldBackupFile = dirname( 
$bsgConfigFiles['PermissionManager'] ) . "/". array_shift( $arrBackupFiles );
+                       unlink( $oldBackupFile );
+               }
        }
 }
diff --git a/PermissionManager/i18n/de.json b/PermissionManager/i18n/de.json
index bcde542..d8b41f1 100644
--- a/PermissionManager/i18n/de.json
+++ b/PermissionManager/i18n/de.json
@@ -40,6 +40,7 @@
        "bs-permissionmanager-pref-lockmode": "Lockmode aktivieren",
        "bs-permissionmanager-pref-skipsysns": "Systemnamensräume bei 
eingschaltetem Lockmode ignorieren",
        "bs-permissionmanager-pref-enablerealitycheck": "Rechteprüfung 
aktivieren",
+       "bs-permissionmanager-pref-max-backups": "Maximale Anzahl an 
Sicherungen",
        "bs-permissionmanager-unsaved-changes": "Es existieren ungespeicherte 
Änderungen. Willst du die Seite wirklich verlassen? Die ungespeicherten 
Änderungen gehen in diesem Fall verloren",
        "bs-permissionmanager-error-lockout": "Mindestens eine Benutzergruppe 
muss das Recht \"$1\" besitzen.\nDie Änderungen konnten nicht gespeichert 
werden.",
        "log-name-bs-permission-manager": "Rechteverwaltung-Logbuch",
diff --git a/PermissionManager/i18n/en.json b/PermissionManager/i18n/en.json
index 379dd4b..d2456cd 100644
--- a/PermissionManager/i18n/en.json
+++ b/PermissionManager/i18n/en.json
@@ -39,6 +39,7 @@
        "bs-permissionmanager-pref-lockmode": "Activate lockmode",
        "bs-permissionmanager-pref-skipsysns": "Skip system namespaces if 
lockmode is active",
        "bs-permissionmanager-pref-enablerealitycheck": "Activate permission 
check",
+       "bs-permissionmanager-pref-max-backups": "Backup limit",
        "bs-permissionmanager-unsaved-changes": "There are unsaved changes. Do 
you really want to leave the page now? The unsaved changes will be lost.",
        "bs-permissionmanager-error-lockout": "At least one group must own the 
right \"$1\".\nChanges couldn't be saved.",
        "log-name-bs-permission-manager": "Permission manager log",
diff --git a/PermissionManager/i18n/qqq.json b/PermissionManager/i18n/qqq.json
index 2c81ef6..891169e 100644
--- a/PermissionManager/i18n/qqq.json
+++ b/PermissionManager/i18n/qqq.json
@@ -41,6 +41,7 @@
        "bs-permissionmanager-pref-lockmode": "Option in 
[{{canonicalurl:Special:WikiAdmin|mode=Preferences}} 
Special:WikiAdmin?mode=Preferences], checkbox label for activate lockmode",
        "bs-permissionmanager-pref-skipsysns": "Option in 
[{{canonicalurl:Special:WikiAdmin|mode=Preferences}} 
Special:WikiAdmin?mode=Preferences], checkbox label for skip system namespaces 
if lockmode is active",
        "bs-permissionmanager-pref-enablerealitycheck": "Option in 
[{{canonicalurl:Special:WikiAdmin|mode=Preferences}} 
Special:WikiAdmin?mode=Preferences], checkbox label for activate permission 
check",
+       "bs-permissionmanager-pref-max-backups": "Option in 
[{{canonicalurl:Special:WikiAdmin|mode=Preferences}} 
Special:WikiAdmin?mode=Preferences], label for number of maximum backups",
        "bs-permissionmanager-unsaved-changes": "Hint about data loss when a 
user leaves the page without saving her/his changes",
        "bs-permissionmanager-error-lockout": "Error message for changes in 
settings that couldn't be saved, because some essential rights are not enabled 
for any user group.",
        "log-name-bs-permission-manager": "Used in [[Special:Log]], title of 
the log type",

-- 
To view, visit https://gerrit.wikimedia.org/r/280415
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5e9dd812e9470d5585f8fd4c08842b19caa147b9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Ljonka <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to