}
- $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();
+ }
+}