]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/Blacklist/BlacklistPlugin.php
Drop debug statements on every regex match from Blacklist plugin; filling the logs...
[quix0rs-gnu-social.git] / plugins / Blacklist / BlacklistPlugin.php
index fb8f7306f51e4a4747e670294fbd2a136ebcd975..c2b60b7d265ef2536328e045e3e2e2652549d0a4 100644 (file)
@@ -62,13 +62,56 @@ class BlacklistPlugin extends Plugin
     {
         $confNicknames = $this->_configArray('blacklist', 'nicknames');
 
+        $dbNicknames = Nickname_blacklist::getPatterns();
+
         $this->_nicknamePatterns = array_merge($this->nicknames,
-                                               $confNicknames);
+                                               $confNicknames,
+                                               $dbNicknames);
 
         $confURLs = $this->_configArray('blacklist', 'urls');
 
+        $dbURLs = Homepage_blacklist::getPatterns();
+
         $this->_urlPatterns = array_merge($this->urls,
-                                          $confURLs);
+                                          $confURLs,
+                                          $dbURLs);
+    }
+
+    /**
+     * Database schema setup
+     *
+     * @return boolean hook value
+     */
+
+    function onCheckSchema()
+    {
+        $schema = Schema::get();
+
+        // For storing blacklist patterns for nicknames
+
+        $schema->ensureTable('nickname_blacklist',
+                             array(new ColumnDef('pattern',
+                                                 'varchar',
+                                                 255,
+                                                 false,
+                                                 'PRI'),
+                                   new ColumnDef('created',
+                                                 'datetime',
+                                                 null,
+                                                 false)));
+
+        $schema->ensureTable('homepage_blacklist',
+                             array(new ColumnDef('pattern',
+                                                 'varchar',
+                                                 255,
+                                                 false,
+                                                 'PRI'),
+                                   new ColumnDef('created',
+                                                 'datetime',
+                                                 null,
+                                                 false)));
+
+        return true;
     }
 
     /**
@@ -223,7 +266,6 @@ class BlacklistPlugin extends Plugin
     private function _checkUrl($url)
     {
         foreach ($this->_urlPatterns as $pattern) {
-            common_debug("Checking $url against $pattern");
             if (preg_match("/$pattern/", $url)) {
                 return false;
             }
@@ -245,7 +287,6 @@ class BlacklistPlugin extends Plugin
     private function _checkNickname($nickname)
     {
         foreach ($this->_nicknamePatterns as $pattern) {
-            common_debug("Checking $nickname against $pattern");
             if (preg_match("/$pattern/", $nickname)) {
                 return false;
             }
@@ -280,6 +321,10 @@ class BlacklistPlugin extends Plugin
     {
         switch (strtolower($cls))
         {
+        case 'nickname_blacklist':
+        case 'homepage_blacklist':
+            include_once INSTALLDIR.'/plugins/Blacklist/'.ucfirst($cls).'.php';
+            return false;
         case 'blacklistadminpanelaction':
             $base = strtolower(mb_substr($cls, 0, -6));
             include_once INSTALLDIR.'/plugins/Blacklist/'.$base.'.php';
@@ -391,20 +436,14 @@ class BlacklistPlugin extends Plugin
 
     function onEndDeleteUser($action, $user)
     {
-        common_debug("Action args: " . print_r($action->args, true));
-
         if ($action->boolean('blacklisthomepage')) {
             $pattern = $action->trimmed('blacklisthomepagepattern');
-            $confURLs = $this->_configArray('blacklist', 'urls');
-            $confURLs[] = $pattern;
-            Config::save('blacklist', 'urls', implode("\r\n", $confURLs));
+            Homepage_blacklist::ensurePattern($pattern);
         }
 
         if ($action->boolean('blacklistnickname')) {
             $pattern = $action->trimmed('blacklistnicknamepattern');
-            $confNicknames = $this->_configArray('blacklist', 'nicknames');
-            $confNicknames[] = $pattern;
-            Config::save('blacklist', 'nicknames', implode("\r\n", $confNicknames));
+            Nickname_blacklist::ensurePattern($pattern);
         }
 
         return true;