]> git.andy128k.dev Git - ipf.git/commitdiff
use PDO in syncperms command
authorAndrey Kutejko <andy128k@gmail.com>
Sat, 30 Dec 2017 15:08:30 +0000 (16:08 +0100)
committerAndrey Kutejko <andy128k@gmail.com>
Sat, 30 Dec 2017 15:08:30 +0000 (16:08 +0100)
ipf/admin/commands/syncperms.php

index c2a43197e5fe4ee9a97fed84de03ed6a7737f421..3fa8e7b8eadc0606f48fca0707f6ba88c504fa2b 100644 (file)
@@ -30,34 +30,53 @@ class IPF_Admin_Command_SyncPerms
         }
 
 
-        $existing = \PFF\Container::databaseQuery()
-            ->from('auth_permission')
-            ->orderBy('name')
-            ->fetchAll('name');
-        print "\nEXISTING PERMISSIONS:\n  ".implode("\n  ", array_keys($existing))."\n";
+        $existing = $this->fetchExistingPermissions();
+        print "\nEXISTING PERMISSIONS:\n  ".implode("\n  ", $existing)."\n";
 
 
-        $toDel = array_diff(array_keys($existing), array_keys($permissions));
+        $toDel = array_diff($existing, array_keys($permissions));
         if (count($toDel)) {
             print "\nDELETING:\n  ".implode("\n  ", $toDel)."\n";
-            \PFF\Container::databaseQuery()
-                ->deleteFrom('auth_permission')
-                ->where('name', $toDel)
-                ->execute();
+            foreach ($toDel as $name) {
+                $this->deletePermission($name);
+            }
         }
 
 
-        $toAdd = array_diff(array_keys($permissions), array_keys($existing));
+        $toAdd = array_diff(array_keys($permissions), $existing);
         if (count($toAdd)) {
             print "\nADDING:\n  ".implode("\n  ", $toAdd)."\n";
-
             foreach ($toAdd as $name) {
-                \PFF\Container::databaseQuery()
-                    ->insertInto('auth_permission')
-                    ->values(array('name' => $name))
-                    ->execute();
+                $this->addPermission($name);
             }
         }
     }
-}
 
+    private function fetchExistingPermissions()
+    {
+        $connection = \PFF\Container::databaseConnection();
+        $stmt = $connection->prepare('SELECT name FROM auth_permission ORDER BY name');
+        $stmt->execute();
+        $existing = [];
+        foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
+            $existing[] = $row['name'];
+        }
+        return $existing;
+    }
+
+    private function addPermission($permission)
+    {
+        $connection = \PFF\Container::databaseConnection();
+        $stmt = $connection->prepare('INSERT INTO auth_permission (name) VALUES (:name)');
+        $stmt->bindValue('name', $permission, PDO::PARAM_STR);
+        $stmt->execute();
+    }
+
+    private function deletePermission($permission)
+    {
+        $connection = \PFF\Container::databaseConnection();
+        $stmt = $connection->prepare('DELETE FROM auth_permission WHERE name = :name');
+        $stmt->bindValue('name', $permission, PDO::PARAM_STR);
+        $stmt->execute();
+    }
+}