IPF_Admin_App::loadAllModels();
- print "COLLECTED PERMS:\n----\n";
+ print "COLLECTED PERMISSIONS:\n";
$permissions = array();
foreach (IPF_Project::getInstance()->appList() as $appname => $app) {
foreach (IPF_Legacy_ORM_App::appModelList($app) as $modelName) {
foreach ($adminModel->getPerms(null) as $permName) {
$name = get_class($app).'|'.$modelName.'|'.$permName;
$permissions[$name] = array($app, $modelName, $permName);
- print $name."\n";
+ print ' '.$name."\n";
}
}
}
}
- print "\n";
-
- print "EXISTING PERMS:\n----\n";
- $existingPerms = array();
- foreach (Permission::table()->findAll() as $model) {
- $existingPerms[$model->name] = $model;
- print $model->name."\n";
- }
- print "\n";
- $toDel = array_diff(array_keys($existingPerms), array_keys($permissions));
+ $existing = \PFF\Container::databaseQuery()
+ ->from('auth_permission')
+ ->orderBy('name')
+ ->fetchAll('name');
+ print "\nEXISTING PERMISSIONS:\n ".implode("\n ", array_keys($existing))."\n";
- print "2DEL:\n----\n".implode("\n", $toDel)."\n----\n";
+ $toDel = array_diff(array_keys($existing), array_keys($permissions));
if (count($toDel)) {
- Permission::query()
- ->delete()
- ->where("name in ('".implode("','", $toDel)."')")
+ print "\nDELETING:\n ".implode("\n ", $toDel)."\n";
+ \PFF\Container::databaseQuery()
+ ->deleteFrom('auth_permission')
+ ->where('name', $toDel)
->execute();
}
- $toAdd = array_diff(array_keys($permissions), array_keys($existingPerms));
+ $toAdd = array_diff(array_keys($permissions), array_keys($existing));
+ if (count($toAdd)) {
+ print "\nADDING:\n ".implode("\n ", $toAdd)."\n";
- print "2ADD:\n----\n".implode("\n", $toAdd)."\n----\n";
+ foreach ($toAdd as $name) {
+ $app = $permissions[$name][0];
+ $admin = IPF_Admin_Model::getModelAdmin($permissions[$name][1]);
- foreach ($toAdd as $name) {
- $app = $permissions[$name][0];
- $admin = IPF_Admin_Model::getModelAdmin($permissions[$name][1]);
-
- $model = new Permission;
- $model->name = $name;
- $model->title = $app->getTitle().' | '.$admin->verbose_name().' | '.ucfirst($permissions[$name][2]);
- $model->save();
+ \PFF\Container::databaseQuery()
+ ->insertInto('auth_permission')
+ ->values(array(
+ 'name' => $name,
+ 'title' => $app->getTitle().' | '.$admin->verbose_name().' | '.ucfirst($permissions[$name][2]),
+ ))->execute();
+ }
}
}
}