return $perms;
}
+
+ public function commands()
+ {
+ return array(
+ new IPF_Admin_Command_SyncPerms,
+ );
+ }
}
--- /dev/null
+<?php
+
+class IPF_Admin_Command_SyncPerms
+{
+ public $command = 'syncperms';
+ public $description = 'Create/Update permissions from model classes';
+
+ public function run($args=null)
+ {
+ print "Create/Update permissions from model classes\n";
+
+ $project = IPF_Project::getInstance();
+ $project->loadAllModels();
+
+ print "COLLECTED PERMS:\n----\n";
+ $permissions = array();
+ foreach ($project->appList() as $appname => $app) {
+ foreach ($app->modelList() as $modelName) {
+ $adminModel = IPF_Admin_Model::getModelAdmin($modelName);
+ if ($adminModel) {
+ foreach ($adminModel->getPerms(null) as $permName) {
+ $name = get_class($app).'|'.$modelName.'|'.$permName;
+ $permissions[$name] = array($app, $modelName, $permName);
+ 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));
+
+ print "2DEL:\n----\n".implode("\n", $toDel)."\n----\n";
+
+ if (count($toDel)) {
+ Permission::query()
+ ->delete()
+ ->where("name in ('".implode("','", $toDel)."')")
+ ->execute();
+ }
+
+
+ $toAdd = array_diff(array_keys($permissions), array_keys($existingPerms));
+
+ 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]);
+
+ $model = new Permission;
+ $model->name = $name;
+ $model->title = $app->getTitle().' | '.$admin->verbose_name().' | '.ucfirst($permissions[$name][2]);
+ $model->save();
+ }
+ }
+}
+
);
}
- static function createPermissionsFromModels()
- {
- $permsTable = Permission::table();
-
- $project = IPF_Project::getInstance();
- $project->loadAllModels();
-
- print "COLLECTED PERMS:\n----\n";
- $permissions = array();
- foreach ($project->appList() as $appname => $app) {
- foreach ($app->modelList() as $modelName) {
- $adminModel = IPF_Admin_Model::getModelAdmin($modelName);
- if ($adminModel) {
- foreach ($adminModel->getPerms(null) as $permName) {
- $name = get_class($app).'|'.$modelName.'|'.$permName;
- $permissions[$name] = array($app, $modelName, $permName);
- print $name."\n";
- }
- }
- }
- }
- print "\n";
-
- print "EXISTING PERMS:\n----\n";
- $existingPerms = array();
- foreach ($permsTable->findAll() as $model) {
- $existingPerms[$model->name] = $model;
- print $model->name."\n";
- }
- print "\n";
-
-
- $toDel = array_diff(array_keys($existingPerms), array_keys($permissions));
-
- print "2DEL:\n----\n".implode("\n", $toDel)."\n----\n";
-
- if (count($toDel)) {
- $permsTable->createQuery()
- ->delete()
- ->where("name in ('".implode("','", $toDel)."')")
- ->execute();
- }
-
-
- $toAdd = array_diff(array_keys($permissions), array_keys($existingPerms));
-
- 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]);
-
- $model = new Permission;
- $model->name = $name;
- $model->title = $app->getTitle().' | '.$admin->verbose_name().' | '.ucfirst($permissions[$name][2]);
- $model->save();
- }
- }
-
static function ArePermissionsEnabled()
{
try {
new IPF_Command_Unpack,
new IPF_Command_CreateMigration,
new IPF_Command_Migrate,
- new IPF_Command_SyncPerms,
),
);
+++ /dev/null
-<?php
-
-class IPF_Command_SyncPerms
-{
- public $command = 'syncperms';
- public $description = 'Create/Update permissions from model classes';
-
- public function run($args=null)
- {
- print "Create/Update permissions from model classes\n";
- IPF_Auth_App::createPermissionsFromModels();
- }
-}
-